mysql 建立索引场合及索引使用

索引建立场合:
① where后边字段 适合建立索引
② order by 排序字段适合建立索引
③ 索引覆盖 即 所要查询的字段本身就是索引 直接在索引中查询数据。 例如 select name,age from man 其中name,age 本身具有索引。
④ 连表查询 (外键设置索引) 在生产活动中,一般不使用外键索引。而是使用普通索引代替外键索引。

⑤建立索引字段需要离散度较高字段,例如性别这种字段不适合建立索引,(建立也会用不上索引会走表扫描形式)

  

索引使用原则
① 字段独立 select * from man where ID+2 =5 这样的查询是不会使用到所用的,即所谓字段独立原则。
② 左原则(模糊查询时) Like 查询时候,左边固定有可能使用到索引。 左边不固定无法使用索引。
③ 复合索引 完整使用复合索时,可使用索引。单独使用第一个索引,可使用到索引。单独使用第二个字段无法使用到索引。
④ or原则 如果两边都有索引则都能使用到索引。 一个有索引一个没有索引无法使用到索引,与OR条件左右顺序无关。

时间: 2024-08-27 23:53:38

mysql 建立索引场合及索引使用的相关文章

mysql建立索引

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

MySQL建立索引的注意事项

对于大数据量的表格,尤其是百万行以上的数据表,一定要对其建立索引,否则查询速度极慢.(参考后面的测试结果)建立索引时需注意: MySQL的索引有两种:单列索引(即在某一列上建索引).多列组合索引(即在多个列上建立同一个索引),不像SQL Server分聚集索引,非聚集索引. 如何建立单列索引: 格式:CREATE INDEX 索引名 on 表名(列名) 例如:CREATE INDEX idx_geoinfo_tiny_cabid ON geoinfo_tiny (cabid)#创建一个名为idx

MySQL建立索引的基础规则

1.mysql索引(基础与规则) 索引规则: 一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15

Mysql建立索引基础

转自:http://www.cnblogs.com/cy163/archive/2008/10/27/1320798.html 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, category_id int not null default 0, user_id int not null default 0, adddate int not

MySQL索引类型&建立索引的时机&索引的不足之处

MySQL索引类型包括: 1.普通索引 这是最基本的索引,它没有任何限制.它有以下几种创建方式: ◆创建索引 CREATE INDEX indexName ON mytable(username(length)); 如果是CHAR,VARCHAR类型,length可以小于字段实际长度:如果是BLOB和TEXT类型,必须指定 length,下同. ◆修改表结构 ALTER mytable ADD INDEX [indexName] ON (username(length)) ◆创建表的时候直接指定

mysql 建立索引的原则

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

mysql建立索引类型及索引建立的原则

索引类型:Unique(唯一索引,一般为主键),Normal(一般索引,普通字段,可做组合索引),索引方法:BTREE 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录.例如,学生表中学号是具有唯一性的字段.为该字段建立唯一性索引可以很快的确定某个学生的信息.如果使用姓名的话,可能存在同名现象,从而降低查询速度. 2.为经常需要排序.分组和联合操作的字段建立索引 经常需要ORDER BY.GROUP BY.DISTINCT和UNION等操作的字段,排序操作会浪费很

mysql索引种类(索引种类和建立索引)

一.mysql索引种类 1.加速查找: 查找普通字段和查找有索引字段,哪个方式查找速度快:根据索引来查字段速度更快 2.创建索引: 为userinfo表email字段创建索引: create index ix_name on userinfo<email>; #创建字段email索引文件,起别名ix_name 为某个字段创建索引会创建额外文件(某种格式存储),下次查询这个字段,先去文件中查找数据在表中的位置,拿着这位置去表中定位数据.(类似于查字典) 3.索引种类 hash索引:索引表(无序的

mysql建立索引的一些小规则

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