028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

MySQL数据库索引原理及优化策略是什么

这篇文章主要介绍“MySQL数据库索引原理及优化策略是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据库索引原理及优化策略是什么”文章能帮助大家解决问题。

专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业十堰免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

1 索引

索引概念

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

索引作用

数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系,索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引可以极大地提高数据库的性能。

索引的使用场景

要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:

2 索引分类

B树索引和B+树索引区别

MySQL数据库索引原理及优化策略是什么

MySQL数据库索引原理及优化策略是什么

区别:

数据的保存位置不同:B+树保存在叶子节点,B树保存在所有的节点中

体现出B+树优势:节点不存储data,这样一个节点就可以存储更多的key。可以使得树更矮,所以IO操作次数更少。 查询性能稳定:每次查询都是从根节点遍历到叶子节点,查询路径长度相同,即每次查询效率相当,时间复杂度固定是O(log(n))

叶子节点的指向:B+树相邻的叶子节点通过指针相连,B树没有

体现出B+树优势:所有叶子节点形成有序链表,便于范围查找

3 索引操作

创建主键索引

-- 在创建表的时候,直接在字段名后指定 primary key
create table user1(id int primary key, name varchar(30));
-- 在创建表的最后,指定某列或某几列为主键索引
create table user2(id int, name varchar(30), primary key(id));
-- 创建表以后再添加主键
create table user3(id int, name varchar(30));
alter table user3 add primary key(id);

主键索引的特点:

唯一索引的创建

-- 在表定义时,在某列后直接指定unique唯一属性。
create table user4(id int primary key, name varchar(30) unique);
-- 创建表时,在表的后面指定某列或某几列为unique
create table user5(id int primary key, name varchar(30), unique(name));
-- 创建表以后再添加unique
create table user6(id int primary key, name varchar(30));
alter table user6 add unique(name);

唯一索引的特点:

普通索引的创建

--在表的定义最后,指定某列为索引
create table user8(id int primary key,
name varchar(20),
email varchar(30),
index(name)
);
--创建完表以后指定某列为普通索引
create table user9(id int primary key, name varchar(20), email varchar(30));
alter table user9 add index(name); 
-- 创建一个索引名为 idx_name 的索引
create table user10(id int primary key, name varchar(20), email varchar(30));
create index idx_name on user10(name);

普通索引的特点:

查询索引

mysql> show keys from goods\G
*********** 1. row ***********
Table: goods <= 表名
Non_unique: 0 <= 0表示唯一索引
Key_name: PRIMARY <= 主键索引
Seq_in_index: 1
Column_name: goods_id <= 索引在哪列
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE <= 以二叉树形式的索引
Comment:
1 row in set (0.00 sec)

删除索引

mysql> alter table user10 drop index idx_name;
mysql> drop index name on user8

索引创建原则

关于“MySQL数据库索引原理及优化策略是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。


网站名称:MySQL数据库索引原理及优化策略是什么
浏览地址:http://www.tsicrk.com/article/pejjoe.html

其他资讯

让你的专属顾问为你服务

3.0030s