数据库的优化

一、优化你的sql和索引(Innodb索引比Myisam索引慢,因为一个是聚集索引一个是非聚集索引)

二、加缓存,memcached,redis,命中缓存就可以不用查询数据库。

三、就做主从复制或主主复制,读写分离。

四、垂直拆分,其实就是根据你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统。

五、水平切分,针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理的sharding key,为了有好的查询效率,表结构也要改动,做一定的冗余,应用也要改,sql中尽量带sharding key,将数据定位到限定的表上去查,而不是扫描全部的表。

数据库的最左查询,MySQL采用b+树原理查询,每次查询复合字段从左到右的属性,依次查询。
例如在没有优化的情况下。 数据表student根据id和score建立复合索引为id _score,现在使用以下查询结果为

(id,score)    可以查询到
(score,id)    不能查询到

如果有优化,那么数据库引擎可以把(score,id)优化为(id,score),从而支持查询。

你可能感兴趣的:(数据库的优化)