性能优化在数据库级别的有几个因素:1.表,2查询,3是数据库的配置。
还有就是在硬件级别的优化包含 cpu和io优化
要尽可能的在软件层面优化,并且尽可能的使用真实时钟时间测试性能,当你成为一个专家的时候在去学习更多的内部原理并且开始使用cpu和io测量mysql的性能
Optimizing at the Database Level
最重要的因素是数据库系统的基本设计<br /> 比如说:所有表的结构是否合适<br /> 字段的类型是否合适<br /> 数据库的列是否合适<br /> 是否频繁的更新很多的表,但是字段只有少数几个<br /> 是否频繁的更新少数几个表但是字段缺非常的多<br /> 是否使用了正确的索引 <br /> 是否使用了正确的存储引擎<br /> 是否使用了正确的行的格式<br /> compressed 采用了更少的存储空间以及较少的io和写数据<br /> Compression 则<br /> 是否使用了正确的锁策略<br /> 是否使用了正确的缓存策略
Optimizing at the Hardware Level
随着系统越来越繁忙,最终这些限制还是会落在硬件中,通常瓶颈是由以下的几种情况导致的:
Disk seeks:磁盘查找
Disk reading and writing. 磁盘的读和写
CPU cycles CPU周期
Memory bandwidth:
Balancing Portability and Performance
总结
mysql的优化分为软件和硬件优化,建议先了解软件优化,在熟悉了之后呢在去了解内部的原理,再去学习硬件优化。
软件优化是从整个表的设计,以及字段的选择,还有row format ,字段长度,表中的字段是否合适,锁,索引,存储引擎等层面展开
硬件优化更多的是从cpu和io展开,还有就是内存
tip: wall-clock time 墙上挂的钟,表示真实的时间
