利用索引改善性能

  • 单字段索引

基于单个字段创建的

语法

--为表中的column_name创建字段
CREATE INDEX index_name
ON table_name(column_name)

 

  • 唯一索引

唯一索引用于改善性能和保证数据完整性,唯一所索引不允许表里具有重复值

CREATE UNIQUE INDEX  index_name
ON table_name(column_name)

唯一索引只能用于在表里没有重复值的字段,换句话说,如果现有表已经包含被索引关键字的记录,就不能再对它创建唯一索引。此外,允许NULL值的字段上也不能创建唯一索引

  • 组合索引

基于一个表里两个或者多个字段的索引

/*
总是会在查询指定的字段应该方在首位
最具有限制的应该排在前面
*/
CREATE INDEX index_nmae
ON table_name(column1,column2)

 

  • 引号索引

数据库服务程序在穿件对象时自动创建的,比如对于主键约束和唯一性约束自动创建索引

  • 索引的使用
  • 何时应当避免索引

a、索引不应该用于小规模的表

b、字段用于WHERE 子句作为过滤器会返回表里的大部分记录式,该字段就不适合设置索引

c、经常会被批量更新的表可以具有索引,但批量操作的性能会由于索引而降低,对于经常会被加载或批量操作的表来说,可以在执行批量操作之前去除索引,在完成操作之后再重新穿件索引。这是因为当表里插入数据时,索引会被更新,从而增加了额外的开销

d、不应该对包含大量NULL值的字段设置索引,索引对不同记录中包含不同数据的字段特别有效。字段中过多的NULL值会严重影响索引的运行效率

e、经常被操作的字段不应该设置索引,因为对索引的维护会变的很繁重

1、表和所以都应该进行事先的规划,不要认为使用索引就能解决所有的性能问题,索引可能根本不会改善性能(甚至可能降低性能)而知识占据磁盘空间

2、对于特别长的关键字穿件索引是要十分谨慎,因为大量 I/O开销会不可避免的减低数据库性能

  • 修改索引

 

  • 删除索引
DROP INDEX index_name

--在MySQL的语法结构稍有不同,需要指定创建索引的表格
DROP INDEX index_name
ON table_name

 

 

转载于:https://my.oschina.net/u/1785519/blog/1566344

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值