如何为MySQL查询优化选择最佳索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为MySQL查询优化选择最佳索引相关的知识,希望对你有一定的参考价值。

参考技术A 说一下不同引擎的优化,myisam读的效果好,写的效率差,这和它数据存储格式,索引的指针和锁的策略有关的,它的数据是顺序存储的(innodb数据存储方式是聚簇索引),他的索引btree上的节点是一个指向数据物理位置的指针,所以查找起来很快,(innodb索引节点存的则是数据的主键,所以需要根据主键二次查找);myisam锁是表锁,只有读读之间是并发的,写写之间和读写之间(读和插入之间是可以并发的,去设置concurrent_insert参数,定期执行表优化操作,更新操作就没有办法了)是串行的,所以写起来慢,并且默认的写优先级比读优先级高,高到写操作来了后,可以马上插入到读操作前面去,如果批量写,会导致读请求饿死,所以要设置读写优先级或设置多少写操作后执行读操作的策略;myisam不要使用查询时间太长的sql,如果策略使用不当,也会导致写饿死,所以尽量去拆分查询效率低的sql,

MySQL如何为表字段添加索引

参考技术A 1.添加PRIMARY KEY(主键索引):

2.添加UNIQUE(唯一索引) :

3.添加INDEX(普通索引) :

4.添加FULLTEXT(全文索引) :

5.添加多列索引:

以上是关于如何为MySQL查询优化选择最佳索引的主要内容,如果未能解决你的问题,请参考以下文章

查询成本是 MySQL 查询优化的最佳指标吗?

夯实Mysql基础MySQL性能优化的21个最佳实践 和 mysql使用索引

Mysql 索引:查询生成器的最佳实践

mysql索引和查询优化

mysql索引和查询优化

鲸技术:MySql数据库之性能优化