索引的概念

1.索引的概念
对数据库中的表进行查询操作时,有两种搜索扫描方式:一种是全表扫描,另一种是使用表上建立的索引进行扫描。
全表扫描要查找某个特定的行,必须从头开始一一查看表中的每一行,与查询条件作对比,返回满足条件的记录,当表中有很多行时,查询效率非常低。

索引的分类

1) 普通索引
普通索引是最基本的索引类型,它没有唯一性之类的限制。创建普通索引的关留子是INDEX。
2)唯一性索引
唯一性索引和前面的普通索引基本相同,但有一个区别:唯一性索引的索引列的所有值都只能出现一次,即必须是唯一的。创建唯一性索引的关键字是UNIQUE。
3) 主键
主键是一种唯一性索引,它必须指定为PRIMARY KEY。主键一般在创建表时指定,也可以通过修改表的方式加入主键。但是每个表只能有一个主键。
4)聚簇索引
聚簇索引的索引顺序就是数据存储的物理顺序,这样能保证索引值相近的元组所存储的物理位置也相近。一个表只能有一个聚簇索引。
5)全文索引
MySQL支持全文检索和全文索引。在MySQL中,全文索引的索引类型为FULLTEXT。
索引可以建立在一列上,称为单列索引,一个表可以建立多个单列索引。索引也可以建立在多个列上,称为组合索引、复合索引或多列索引。
3. 索引的使用
使用索引可以提高系统的性能,加快数据检索的速度,但是使用索引要付出一定的代价。
(1)增加存储空间:索引需要占用磁盘空间。
(2)降低更新表中数据的速度:当更新表中数据时,系统会自动更新索引列的数据,这可能需要重新组织一个索引。
4. 建立索引的建议
(1)查询中很少涉及的列、重复值比较多的列不要建立索引。
(2)数据量较小的表最好不要建立索引。
(3)限制表中索引的数量。
(4)在表中插入数据后创建索引。
(5)如果char列或varchar列字符数很多,可视具体情况选取前N个字符值进行索引。

创建索引

在MySQL中,有三种创建索引的方法:在已有的表上创建索引可用CREATE INDEX语句和ALTER TABLE语句;在创建表的同时创建索引可用CREATE TABLE语句。
 1.使用CREATE INDEX语句创建索引
使用CREATE INDEX语句可在一个已有的表上创建索引。
语法格式:
CREATE [UNIQUE] INDEX index_name
ON tbl_name (col_name [(length) ] [ ASC|DESC].…)
说明:
(1) index_name:指定所建立的索引名称。一个表中可建多个索引,而每个索引名称必须是唯一的。
(2)tbl_name:指定需要建立索引的表名。
(3)UNIQUE:可选项,指定所创建的索引是唯一性索引。
(4)col_name:指定要创建索引的列名。
(5)length:可选项,用于指定使用列的前length个字符创建索引。
ASCIDESC.选项,指定索引是按升序(ASC)还是降序(DESC)排列,默认为ASC。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值