前言
优化一个设计不当或者错误使用索引的Schema,可以数量级的提高性能。如果需要高性能,你必须对于将要执行的具体语句设计Schema和索引。你也应该对于不同种类的语句进行性能的评估,因为修改成一个语句或者schema的一部分可能会引发其他的一些连带效应。优化往往涉及到了折中。比如,添加索引会增加查询速度,但会降低更新速度。同样的,非范式的schema能提高一些语句的执行速度,但是可能在其他的速度就会降低。添加计数和汇总表是个好的优化语句的方式,但是他们增加了维护的难度。
一些时候你可能已经超出了开发人员的角色了以及你会有一些有疑问的需求。那些并不是数据库系统专家的人常常写一些业务需求并不会考虑性能。如果你说明一些小功能会需要两倍于当前服务器的配置,那么他们可能会决定取消这个功能。
Schema和索引的优化不但需要注意细节,也要有个大局观。你需要知道整个系统,这样才能理解每一部分对另外一些的影响。这一章节首先讨论数据类型,之后涵盖了索引策略以及数据库范式。最后一些关于存储引擎的信息。
在阅读完语句优化那张之后,你可能需要重新回顾下这一章。许多这一章讨论的主题,尤其是索引,都不是独立的。你必须熟悉语句优化以及服务器的调整,才能正确的使用索引。
http://www.hh010.com/bencandy-htm-fid-77-id-48155.html