2009年4月9日星期四

关于数据库优化

虽然创建一个数据库数据库非常简单,数据库查询语句也只有Select、Insert、Update、Delete这几个很简单的操作,但是要真正地让数据库发挥重大作用,并且能够提供数据库负载能力,必须做数据库优化。
数据库的优化对于数据库的性能影响是巨大的,而对于数据库的优化最为重要的是:数据库设计架构(数据库读写分离)是否合理,数据库索引是否合理,数据库分表是否合理、数据库查询语句是否合理。
这段时间做的项目数据量巨大,数据库文件已经接近了10G,整个数据库的记录数也达到了接近1亿条,这样带来了很多的问题。对于这样巨大的数据库,我们有自己的策略:
1、实行数据库分表:把每一个月的数据存放起来,每个月数据有60万条,共三张大表(都是60万条记录数),这样很大缓解了数据库的压力;
2、施行了读写分离:对已经不需要改版的数据库表进行存档;
3、建立合理的索引:我们每个月都对数据库进行索引重设,根据sql语句对CPU、磁盘IO的使用情况来设定表的索引;
4、建立了一套数据库缓存机制:目前仅仅是在IIS做缓存,不过已经考虑使用Memcached缓存。
通过上面的这些策略,目前能够抗住网站日均300万的PV。

没有评论: