Mysql_索引_刘益长

1.索引介绍

1.1、什么是索引?

一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。

1.2、为什么要有索引呢?

索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。 索引优化应该是对查询性能优化最有效的手段了。

索引能够轻易将查询性能提高好几个数量级。 索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。

2.普通索引:

2.1、创建索引:

# 1.1、创建索引:单独创建索引
CREATE INDEX index_name ON emp(emp_name);

2.2、修改时添加索引:

# 1.2、创建索引:修改表结构时创建索引
ALTER TABLE emp ADD INDEX index_salary

2.3、创建表时指定索引:

复制代码
# 1.3、创建索引:创建表时的时候创建索引
CREATE TABLE IF NOT EXISTS article
(
    id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(30),
    content VARCHAR(50),
    dt DATE,
    PRIMARY KEY(id),
    INDEX index_title (title)
);
复制代码

2.4、删除索引

# 删除索引
DROP INDEX index_name ON emp;

 

3.唯一索引

3.1、创建唯一索引:

# 3.1、单独创建唯一索引:列的值必须唯一
CREATE UNIQUE INDEX index_name ON emp(emp_name);

3.2、修改时添加唯一索引:

# 3.2、修改表时创建唯一索引
ALTER TABLE emp ADD UNIQUE INDEX index_name (emp_name);

3.3、创建表时指定唯一索引:

复制代码
# 3.3、创建表时创建唯一索引
CREATE TABLE IF NOT EXISTS emp2
(
    id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(30),
    content VARCHAR(50),
    dt DATE,
    PRIMARY KEY(id),
    UNIQUE INDEX index_title (title)
);
复制代码

3.4、删除唯一索引

# 删除索引
DROP INDEX index_name ON emp;

4.组合索引

4.1、创建组合索引:

# 4.1、组合索引
CREATE INDEX index_ct ON article(content,dt);

4.2、修改时添加组合索引:

# 4.2、修改表时创建唯一索引
ALTER TABLE emp2 ADD INDEX index_tc (title,content);

4.3、创建表时指定组合索引:

复制代码
# 4.3、创建表时创建唯一索引
CREATE TABLE IF NOT EXISTS emp3
(
    id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(30),
    content VARCHAR(50),
    dt DATE,
    PRIMARY KEY(id),
    INDEX index_tc (title,content)
);
复制代码

4.4、删除唯组合索引

# 删除索引
DROP INDEX index_name ON emp;

 

posted @   文明老人  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示