一、索引 1.1 索引的概念
索引是一个排序的列表,存储着索引值和这个值所对应的物理地址
无须对整个表进行扫描,通过物理地址就可以找到所需数据
(数据库索引类似书中的目录,通过目录就可以快速査找所需信息)
1.2 索引的作用建立索引之后,数据库利用各种快速定位技术,能够大大加快查询速率
当表很大或查询涉及多个表时,可以成千上万倍的提高查询速度
可以降低数据库的IO成本,还可以降低数据库的排序成本
通过创建唯一性索引保证数据表数据的唯一性
可以加快表与表之间的连接
1.3 索引的优缺点优点:可以快速的找到所需要的的资源
缺点:占用空间
1.4 索引分类普通索引
这是最基本的索引类型,而且它没有唯一性之类的限制
唯一性索引
这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一
主键
主键是一种唯一性索引,但它必须指定为“ PRIMARY KEY
全文索引
MySQL从32323版开始支持全文索引和全文检索。在 MySQL中全文索引的索引类型为 FULLTEXT,全文索引可以在 ARCHAR或者TEXT类型的列上创建
单列索引与多列索引
索引可以是单列上创建的索引,也可以是在多列上创建的索引
1.5 创建索引的原则依据表的主键、外键必须有索引
数据量超过300行的表应该有索引
经常与其他表进行连接的表,在连接字段上应该建立索引
唯一性太差的字段不适合建立索引
更新太频繁地字段不适合创建索引
经常出现在 Where子句中的字段,特别是大表的字段,应该建立索引
索引应该建在选择性高的字段上
索引应该建在小字段上,对于大的文本字段甚至超长字段,最好不要建索引
对于大字段非要建索引,选择建全文索引
1.6 如何创建索引根据企业需求选择了合适的索引之后,可使用 CREATE INDEX创建索引
CREATE INDEX加上各个索引关键字便可创建各个类型的索引
创建普通索引
1 语法: 2 create index <索引的名字> on tablename(列的列表); 3 例如: 4 create index salary on IT_salary; 5 '//一张表同一列可以做多个索引'