MySQL性能和优化在一个配置文件页面上的多个查询,可以减少它们


MySQL performance and optimization with multiple queries on a profile page, can they be reduced?

我在社交网站上工作,该网站为每个用户提供个人资料页。

配置文件页面包含:

  • 关于用户、头像、爱好等信息;等
  • 他们的视频和照片
  • 他们的朋友
  • 他们的书签
  • 他们观看的视频

目前,每次加载配置文件页面时,我执行14个不同的查询,其中一些列在下面:

  • 检查查看器是否被允许查看配置文件页面
  • 获取配置文件信息
  • 获取个人资料视频
  • 获取个人资料照片
  • 获取好友列表
  • 获取书签列表
  • 获取他们观看的视频

我想知道最好的方法来提高性能和优化我的网站,或者我可以减少查询的数量我运行。

MySQL可以处理这么多的负载吗?

如果它有助于我使用innodb引擎,我需要更快的更新速度以及关系。

谢谢:)

如果它确实成为性能问题,这里有一些简单的事情可以帮助您:

  • 缓存数据库服务器上的查询
  • 缓存web应用程序中的查询结果
  • 缓存整个配置文件页面,或不经常更改的部分。

如果您需要更认真,您可以在数据库中创建一个新表,将您的一些查询结果存储在一行中,并定期重新生成它。然后让您的页面从中选择(然后您在一个查询中拥有所需的一切)。

但最重要的是:@Jason说了什么。如果性能确实成为一个问题(因为您变成了下一个twitter或其他什么),那么抛出硬件来解决问题将比重写更便宜。

只要它们是短时间运行的查询,就可以。做任何优化速度的事情都可能至多给您带来一些额外的毫秒。如果它仍然困扰你,你可以做一些缓存。

查找也是memcache