mysql索引建立原则

看了网上一些网上关于创建索引的原则,在这里做一下总结:

1.尽量创建在使用频率较高的字段上,比如主键,外键,where总用到的字段,join是相关联的字段

2.如果表过大,一定要创建索引。

3.索引应该尽量建在一些长度比较小的字段上,减少索引查询时间

4.删除不用的,或很少使用的索引

5.欢迎补充

原文地址:https://www.cnblogs.com/duodushuduokanbao/p/9629745.html

时间: 2024-11-05 23:23:41

mysql索引建立原则的相关文章

MySQL 索引优化原则

一.索引优化原则 1.最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整. 2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优

mysql 索引建立

如何建立mysql索引? 创建索引原则 1.左前缀原则 : mysql索引匹配会从右匹配,到遇到( >  < between like)终止.如 我们建立索引(a,b,c,d), a = 1 and  b=2 and  c>3 and d=4.此时,索引d不会被用上.真正有效的索引(a, b, c).如果把索引建立成(a,b,d,c), 则四个索引都能被用上 2.in 和  = 顺序可以随意. 如可建立索引(a, b , c)任意顺序 ,  a = 1 and  c=2 and  b=3

B+树|MYSQL索引使用原则

MYSQL一直了解得都不多,之前写sql准备提交生产环境之前的时候,老员工帮我检查了下sql,让修改了一下存储引擎,当时我使用的是Myisam,后面改成InnoDB了.为什么要改成这样,之前都没有听过存储引擎,于是网上查了一下. 事实上使用不同的存储引擎也是有很大区别的,下面猿友们可以了解一下. 一.存储引擎的比较 注:上面提到的B树索引并没有指出是B-Tree和B+Tree索引,但是B-树和B+树的定义是有区别的. 在 MySQL 中,主要有四种类型的索引,分别为: B-Tree 索引, Ha

mysql索引设计原则

索引设计原则 选择唯?一性索引 唯?一性索引的值是唯?一的,可以更更快速的通过该索引来确定某条记录 为常作为查询条件的字段建?立索引 如果某个字段经常?用来做查询条件,那么该字段的查询速度会影响整个表的查询速度.因 此,为这样的字段建?立索引,可以提?高整个表的查询速度 限制索引的数?目 索引的数?目不不是越多越好 每个索引都需要占?用磁盘空间,索引越多,需要的磁盘空间就越?大 修改表时,对索引的重构和更更新很麻烦 越多的索引,会使更更新表变得很浪费时间 尽量量使?用数据量量少的索引 如果索引的

mysql 索引建立和优化

建立索引的几大原则 最左前缀匹配原则,mysql会一直向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 ,如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整(参考原则2).但是mysql查询优化器可能通过优化调整顺序从而使用索引,但是写sql语句时还是按照此原则: = 和 in可以乱序,比如a = 1 and b

设计Mysql索引的原则

1. 搜索的索引列,不一定是所要选择的列.换句话说,最适合索引的列是出现在WHERE 子句中的列,或连接子句中指定的列,而不是出现在SELECT 关键字后的选择列表中的列. 2. 使用惟一索引.考虑某列中值的分布.对于惟一值的列,索引的效果最好,而具有多个重复值的列,其索引效果最差.例如,存放年龄的列具有不同值,很容易区分各行.而用来记录性别的列,只含有" M"和"F",则对此列进行索引没有多大用处(不管搜索哪个值,都会得出大约一半的行) 3. 使用短索引.如果对串

索引建立原则

1.表的主键.外键必须有索引:2.数据量超过300的表应该有索引:3.经常与其他表进行连接的表,在连接字段上应该建立索引:4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引:5.索引应该建在选择性高的字段上:6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引:7.复合索引的建立需要进行仔细分析:尽量考虑用单字段索引代替:A.正确选择复合索引中的主列字段,一般是选择性较好的字段:B.复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极

MySQL索引建立与删除

#添加索引alter table 表名 add index 索引名称(列名1, 列名2);alter table 表名 add index 索引名称(列名1, 列名2, 列名3);alter table 表名 add index 索引名称(列名); #删除索引drop index 索引名称 on 表名;

索引优化原则及Oracle中索引总结

索引建立原则 确定针对该表的操作是大量的查询操作还是大量的增删改操作. 尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引. where语句中不得不对查询列采用函数查询,如upper函数,最好建立相应函数索引: 在SQL语句中经常进行GROUP BY.ORDER BY的字段上建立索引 用于联接的列(主健/外健)上建立索引: 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定: 尝试建立复合索引来进一步提高系统性能.修