MySql 索引

1.什么是索引

索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值所在的物理地址,其作用是提高对表中数据的查询速度,在使用索引后可以不用扫描全表来定位数据,而通过索引表找到该行数据对应的物理地址然后访问相应的数据。

2.索引的优缺点

 优点: 提高查询数据的速度,根据索引分组和排序,加快分组和排序。

 缺点: 创建和维护索引的时间增加了,同时占用硬盘空间索引表占用的空间是数据表的1.5倍,构建索引会降低数据表的增删改的效率,因为在修改表的同时还需要修改索引表;

3.索引分类

1.主键索引:在创建主键primary key时自动创建索引。

2.普通索引:普通构建索引,没有任何限制

直接创建:CREATE INDEX 索引名 ON 表名(列名);

修改表创建:ALTER TABLE 表名 ADD INDEX 索引名;

3.唯一索引:建立索引的列必须唯一,不能重复

直接创建:CREATE UNIQUE INDEX 索引名 ON 表名(列名);

修改表创建:ALTER TABLE 表名 ADD UNIQUE INDEX 索引名(列名);

4.组合索引: 多个字段上创建的索引,在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀;

直接创建:CREATE INDEX 索引名 ON 表名(列名1,列名2...);

修改表创建:ALTER TABLE 表名 ADD INDEX 索引名(列名1,列名2...);

  #当查询条件没有列名1时不会触发索引

5.全文索引:全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。主要作用是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引;

直接创建:CREATE FULLTEXT INDEX 索引名 ON 表名(列名1,列名2...);

修改表创建:ALTER TABLE 表名 ADD FULLTEXT INDEX 索引名(列名1,列名2...);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值