其实mysql何时不使用索引的问题并不复杂,但是又很多的朋友都不太了解mysql什么样的字段不需要建索引,因此呢,今天小编就来为大家分享mysql何时不使用索引的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
文章目录:
MySQL什么时候适合建索引,什么时候不适合建索引
1、更新频繁的字段不适合创建索引,不会出现在where子句中的字段不应该创建索引。最左前缀原则。尽量使用前缀索引。
2、尽量的扩展索引,不要新建索引。比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。一个顶三个。
3、因此,为这样的字段建立索引,可以提高整个表的查询速度。4.限制索引的数目索引的数目不是越多越好。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。修改表时,对索引的重构和更新很麻烦。
4、频繁更新的字段不要使用索引 比如logincount次数,频繁变化导致索引也频繁变化,数据库工作量,降低效率。
5、in查询操作,查询字段在第一个字段时 ,使用索引,查询字段在第二个字段时,不使用索引(not in在表中的查询数量大于30%的时候是全表扫描的,用不到索引。所以没有可以优化的。
mysql索引的应用场景以及如何使用
它有以下几种创建方式:(1)创建索引:CREATE INDEX indexName ONtableName(tableColumns(length);如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须指定 length,下同。
当然也可以用 ALTER 命令。记住:一个表只能有一个主键。
为了快速查找匹配WHERE条件的行。为了从考虑的条件中消除行。如果在多个索引之间选择一个,正常情况下,MySql使用找到行的最小数量的那个索引。
这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。
mysql中哪些字段不需要使用索引
1、数据唯一性差的字段不要使用索引 比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。
2、频繁更新的字段不要使用索引 比如logincount次数,频繁变化导致索引也频繁变化,数据库工作量,降低效率。
3、如果使用memory/heap表,并且where语句中不适用“=”进行索引,则不会使用索引。heap表只有在“=”的条件下,才使用索引。用or分割开的条件,如果or左右两个条件中有一个列没有索引,则不会使用索引。
好了,文章到这里就结束啦,如果本次分享的mysql何时不使用索引和mysql什么样的字段不需要建索引问题对您有所帮助,还望关注下本站哦!