数据库索引(Mysql)

简述:数据库索引是加速数据检索,提高查询效率的一种数据结构

语法规则

创建索引

sql 复制代码
--通用语法规则
--[内容] 可选参数
--UNIQUE: 可选关键字,用于创建唯一索引,确保索引列的值是唯一的
CREATE [UNIQUE] INDEX 索引名
ON 表名(字段名,...)
[ASC | DESC];

--ASC/DESC: 可选参数,指定索引是升序还是降序。默认是升序。

创建非唯一索引

sql 复制代码
CREATE INDEX idx_employee_name ON employees(name);

创建唯一索引

sql 复制代码
CREATE UNIQUE INDEX idx_employee_email ON employees(email);

创建符合索引(多字段(列))

sql 复制代码
CREATE INDEX idx_employee_name_age ON employees(name, age);

删除索引

方法一:

sql 复制代码
DROP INDEX 索引名 ON 表名;

方法二:使用表名前缀

sql 复制代码
ALTER TABLE 表名 DROP INDEX 索引名;

查看索引

sql 复制代码
SHOW INDEX FROM 表名;

常见的索引原则

    1. 选择唯一性索引,唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。
    1. 为经常需要排序、分组和联合操作的字段建立索引。
    1. 为常用作为查询条件的字段建立索引。
    1. 限制索引的数目: 索引并非是越多越好,创建索引也需要耗费资源,一是增加了数据库的存储空间,二是在插入和删除时要花费较多的时间维护索引尽量使用数据量少的索引
    1. 如果索引的值很长,那么查询的速度会受到影响。尽量使用前缀来索引
    1. 如果索引字段的值很长,最好使用值的前缀来索引。
    1. 删除不再使用或者很少使用的索引
    1. 最左前缀匹配原则,非常重要的原则。
    1. 尽量选择区分度高的列作为索引区分度的公式是表示字段不重复的比例
    1. 索引列不能参与计算,保持列"干净":带函数的查询不参与索引。
    1. 尽量的扩展索引,不要新建索引
相关推荐
韩立学长8 小时前
基于Springboot民族文化与旅游网站j9x74dt2(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
eventer1238 小时前
在国产ARM64环境下从源码编译Greptime DB及构建Docker镜像实践
数据库·docker·容器
川石课堂软件测试9 小时前
自动化测试的基本概念及常用框架
数据库·python·功能测试·测试工具·单元测试·自动化·流程图
少年攻城狮9 小时前
Mybatis-Plus系列---【自定义拦截器实现sql完整拼接及耗时打印】
数据库·sql·mybatis
Leon-Ning Liu9 小时前
【系列实验二】RAC 19C集群:CentOS 7.9 原地升级至 Oracle Linux 8.10 实战笔记
linux·数据库·oracle·centos
川石课堂软件测试10 小时前
使用loadrunner调用mysql API进行性能测试
服务器·数据库·python·selenium·mysql·单元测试·自动化
迷茫的21世纪的新轻年10 小时前
PostgreSQL——SQL优化
数据库·sql·postgresql
编程修仙10 小时前
第十一篇 Spring事务
xml·java·数据库·spring
绝顶少年10 小时前
Redis 高可用架构三部曲:主从复制、哨兵模式与集群模式深度解析
数据库·redis·架构
倔强的石头10610 小时前
从 Oracle 到 KingbaseES:破解迁移痛点,解锁信创时代数据库新可能
数据库·oracle·金仓数据库