我在社交网站上工作,该网站为每个用户提供个人资料页。
配置文件页面包含:
- 关于用户、头像、爱好等信息;等
- 他们的视频和照片
- 他们的朋友 他们的书签
- 他们观看的视频
目前,每次加载配置文件页面时,我执行14个不同的查询,其中一些列在下面:
- 检查查看器是否被允许查看配置文件页面
- 获取配置文件信息
- 获取个人资料视频
- 获取个人资料照片
- 获取好友列表
- 获取书签列表
- 获取他们观看的视频
我想知道最好的方法来提高性能和优化我的网站,或者我可以减少查询的数量我运行。
MySQL可以处理这么多的负载吗?
如果它有助于我使用innodb引擎,我需要更快的更新速度以及关系。
谢谢:)
如果它确实成为性能问题,这里有一些简单的事情可以帮助您:
- 缓存数据库服务器上的查询
- 缓存web应用程序中的查询结果
- 缓存整个配置文件页面,或不经常更改的部分。
如果您需要更认真,您可以在数据库中创建一个新表,将您的一些查询结果存储在一行中,并定期重新生成它。然后让您的页面从中选择(然后您在一个查询中拥有所需的一切)。
但最重要的是:@Jason说了什么。如果性能确实成为一个问题(因为您变成了下一个twitter或其他什么),那么抛出硬件来解决问题将比重写更便宜。
只要它们是短时间运行的查询,就可以。做任何优化速度的事情都可能至多给您带来一些额外的毫秒。如果它仍然困扰你,你可以做一些缓存。
查找也是memcache