标签:
mysql优化续:
1:show index from table_name查看索引使用情况其中cardinality基数,即value group索引区分度,当cardinality越小时需要扫描的行数越多,越大是则越小。
2:mysql评价索引扫描数据量非常大时可能会放弃使用,当使用limit时,情况可以改变,mysql会采用索引
3:针对mysql的行格式row format。innodb最新版本采用COMPACT,老版本是REDUNDANT,使用新的格式或减少20%的磁盘空间,相应的会增加cpu时间,在char类型存储utf-8字符时,老版本都是3*N的字节,新版本是N ~ 3*N
4:在低于8KB的字段存储是尽量使用varchar而不是blob,在group by 和order by可以产生临时表,在没有blob字段的情况下临时表可以使用memory 引擎。
5:在有许多并不常用的字段表时,通常建议将这些字段拆开到另外的表中,通过join去处理,特别是blob、text类型时。
6:optimizer_switch该参数可以查看mysql采用的一些优化策略,如MRR,ICP等是否打开,都可以手动设置
7:index hints 可以使用use index ,force index, ignore index来影响mysql的所以选择
8:innodb_buffer_pool可以存储select、insert、update等操作数据(包括索引跟数据库数据),来提升性能,采用LRU算法替换相应的block,将数据块插入到list中间默认大概在5/8左右可以手动调整,这样可以防止数据频繁刷新。
9:myisam key_cache存储索引数据,数据库数据则由本地的操作系统文件系统缓存,myisam也可以采用Midpoint Insertion Strategy,在key_cache不可用时(如重建)mysql会启用本地的文件系统缓存(当然性能上会有所降低)。
标签:
原文地址:http://www.cnblogs.com/hike2008/p/4721659.html