索引有哪些优缺点

简介: 索引有哪些优缺点

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);

相关文章
|
7月前
|
存储 NoSQL 关系型数据库
索引的三种常见底层数据结构以及优缺点
索引的三种常见底层数据结构以及优缺点
|
2月前
|
存储 数据库管理 索引
索引的优点和缺点是什么
【10月更文挑战第15天】索引的优点和缺点是什么
|
22天前
|
存储 关系型数据库 索引
什么是聚簇索引及其优缺点?
聚簇索引是InnoDB存储引擎中的一种数据存储方式,通过主键构建B+树,叶子节点存储整行数据。主键索引即为聚簇索引,若无主键则选择非空唯一索引或隐式创建主键。非聚簇索引(辅助索引)的叶子节点存储主键值,访问数据需两次查找。聚簇索引优势在于数据访问速度快,尤其适合主键的排序和范围查询;但插入和更新操作成本较高,建议使用自增ID作为主键。
46 6
|
7月前
|
JSON 自然语言处理 数据格式
5.索引原理
5.索引原理
|
4月前
|
数据库 索引
数据库索引的作用和优点缺点
【8月更文挑战第27天】创建索引能显著提升系统性能,确保数据唯一性,加快检索速度,加速表间连接及优化分组排序过程。然而,过度使用索引会导致创建与维护成本增加、占用更多物理空间并降低数据维护效率。因此,在创建索引时需谨慎评估需求及影响。
64 2
|
7月前
|
存储 关系型数据库 MySQL
mysql索引优化,更好的创建和使用索引
mysql索引优化,更好的创建和使用索引
|
7月前
|
存储 关系型数据库 Java
聚簇索引及其优缺点
java事务控制
78 0
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL索引的作用(索引的优缺点)
MySQL索引的作用(索引的优缺点)
293 0
|
数据库 索引
数据库索引的优缺点
数据库索引的优缺点
198 0
|
SQL 搜索推荐 关系型数据库
一文带你你搞懂索引如何优化!!!
一文带你你搞懂索引如何优化!!!