mysql用户手册优化篇读书笔记
可以从两个大的方面来着手优化mysql
首先是从mysql数据库层面来优化,包括以下几个方面
1.表结构的设计。包括表的字段类型时否合适;表的列数是否合适,OLTP的应用应设计为多表少列,OLAP的应用应设计为多列少表;
(频繁更新的表的列数不宜太多)
2.是否设计了正确的索引。
3.是否为每个表选择了合适的存储引擎,并充分利用了存储引擎的特性。
4.是否为每个表选择了合适的行存储格式。比如压缩存储占用少的磁盘空间,减少I/O操作,但占用更多的cpu。
5.是否选用了合适的锁策略。(选择合适的存储引擎是关键,锁策略由存储引擎控制)
6.缓存的使用。足够大的缓存来容纳经常访问的对象,同时也要考虑到实际可用的内存。缓存配置有INNODB buffer pool,MyISAM key cache以及MySQL query cache
其次从硬件层面来优化
1.磁盘查找速度。 单个磁盘查找一块数据的时间基本少于10ms,一秒内可以做100次查询,在此基础上很难再有效的优化。考虑到成本,提高查找速度的方法是把数据分布在多块磁盘上,做并行查找。
2.磁盘的读写速度。
3.CPU的频率
4.内存带宽
使用hint优化
在sql语句中使用 /*! MySQL-specific code */来添加hint