索引有哪些优缺点

简介: 索引有哪些优缺点

1.索引有哪些优缺点?
优点:

唯一索引可以保证数据库表中每一行的数据的唯一性

索引可以加快数据查询速度,减少查询时间

缺点:

创建索引和维护索引要耗费时间

索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间

以表中的数据进行增、删、改的时候,索引也要动态的维护。

2.索引有哪几种类型?
主键索引: 数据列不允许重复,不允许为NULL,一个表只能有一个主键。

唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引。

普通索引: 基本的索引类型,没有唯一性的限制,允许为NULL值。

全文索引:是目前搜索引擎使用的一种关键技术,对文本的内容进行分词、搜索。

覆盖索引:查询列要被所建的索引覆盖,不必读取数据行

组合索引:多列值组成一个索引,用于组合搜索,效率大于索引合并

3.创建索引有什么原则呢?
最左前缀匹配原则

频繁作为查询条件的字段才去创建索引

频繁更新的字段不适合创建索引

索引列不能参与计算,不能有函数操作

优先考虑扩展索引,而不是新建索引,避免不必要的索引

在order by或者group by子句中,创建索引需要注意顺序

区分度低的数据列不适合做索引列(如性别)

定义有外键的数据列一定要建立索引。

对于定义为text、image数据类型的列不要建立索引。

删除不再使用或者很少使用的索引

4.创建索引的三种方式
在执行CREATE TABLE时创建索引

CREATE TABLE employee (

id int(11) NOT NULL,

name varchar(255) DEFAULT NULL,

age int(11) DEFAULT NULL,

date datetime DEFAULT NULL,

sex int(1) DEFAULT NULL,

PRIMARY KEY (id),

KEY idx_name (name) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

使用ALTER TABLE命令添加索引

ALTER TABLE table_name ADD INDEX index_name (column);

使用CREATE INDEX命令创建

CREATE INDEX index_name ON table_name (column);

相关文章
|
3月前
|
数据库 索引
数据库索引的作用和优点缺点
数据库索引的作用和优点缺点
34 1
|
3月前
|
存储 NoSQL 关系型数据库
索引的三种常见底层数据结构以及优缺点
索引的三种常见底层数据结构以及优缺点
|
3月前
|
JSON 自然语言处理 数据格式
5.索引原理
5.索引原理
|
3月前
|
存储 关系型数据库 MySQL
mysql索引优化,更好的创建和使用索引
mysql索引优化,更好的创建和使用索引
|
存储 关系型数据库 MySQL
数据库索引原理
数据库索引原理
79 0
|
3月前
|
存储 关系型数据库 Java
聚簇索引及其优缺点
java事务控制
28 0
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL索引的作用(索引的优缺点)
MySQL索引的作用(索引的优缺点)
215 0
|
数据库 索引
数据库索引的优缺点
数据库索引的优缺点
169 0
|
存储 SQL 关系型数据库
MySQL索引特性(三 )
MySQL索引特性
73 0
|
存储 SQL 缓存
MySQL索引特性(一)
MySQL索引特性
78 0