索引
较为常见索引的使用
- 唯一索引: UNIQUE index_name(字段)
-- 索引
-- 唯一索引
CREATE UNIQUE INDEX a ON pone(ID);
a自定义名称
pone 表(字段)
唯一索引对null不起作用,也就是字段为null的话可以重复;
- 主键索引: PRIMARY KEY或者 KEY ID(ID)
-- -- 索引
-- 主键索引
KEY ID (ID)
-- 创建表时字段全部封口添加上指定主键索引位置
PRIMARY KEY
-- 创建表时加在字段中
- 外建索引: xx add FOREIGN KEYxx(tid)REFERENCES xx(id)
-- 索引
-- 外鍵索引
alter table shu_ren add foreign key waijian_name(ziduan_shuxing) references ren(ziduan_shuxing)
- 全文索引: FULLTEXT index_name(字段)
-- 索引
-- 创建表时字段全部封口添加上指定主键索引位置
FULLTEXT KEY a (a,b)
-- 字段a要和b建立联系
- 普通索引: INDEX index_name(字段 (排序可要可不要))
INDEX index_name(a ASC),
INDEX index_name(b DESC)
索引的缺点和优点
优点:
- 建立索引在很多数据中很快的查找到指定的数据 不用等全部数据查询完返回数据,高速有效快捷。
- 加快表和表之前的连接
- 在使用分组和排序语句进行数据检索时,以显著减少查询中分组和排序的时间
- 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能
- 保证每一段数据的唯一性
缺点:
- 缺点也很明显每一个表都要建立索引当表很多时工作量也会增加
- 当建立索引的表进行增删改都要动态进行数据维护,降低了数据维护速度
每一个索引
都占一定的物理空间,当索引很多时可想而知,需要的空间是很大的尤其是建立聚族索引时
添加索引需要注意
在经常需要搜索的列上,可以加快搜索的速度;
在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
在经常用在连接的列上,这 些列主要是一些外键,可以加快连接的速度;
在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
在经常需要排序的列上创 建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
建立索引的目的
加快检索数据库数据的速度