MySQL索引事务(未完成)

索引的相关操作

1.查看索引

sql 复制代码
show index from 表名;

2.创建索引

sql 复制代码
create index 索引名字 on 表名(列名);

创建索引,是一个危险操作

创建索引的时候,需要针对现有的数据,进行大规模的重新整理

如果当前表是一个空表,或者数据不多,创建索引都没啥问题

如果这个表本来就很大,创建索引,也很容易就把数据库服务器给卡住

一般来说,创建索引,都是在创建表的时候就规划好的~~一旦表已经使用了很久了,有很多数据了再想修改索引,就要慎重了

非得创建也不是不行,就需要使用一些其他的技巧

一个做法:另外搞一个机器,部署mysql服务器,也创建同样的表,并且把表上的索引创建好,再把之前的机器的数据给导入到新的MySQL服务器上(导入数据的过程就可以控制节奏)多花点时间导数据,不要影响到原来服务器正常的运转

当所有数据都导入完毕,就可以使用新的数据库,替换旧的数据库了

3.删除索引

sql 复制代码
drop index 索引名

手动创建的索引,可以手动删除

如果是自动创建的索引(主键/外键,unique),不能删除的!!

删除索引操作也是一个危险操作,数据库和数据 实在是太重要了

索引背后的原理

索引也是通过一定的数据结构来实现的

相关推荐
Zan3 小时前
SQLite + SQLx 实战:为什么已经发布的数据库迁移文件,绝对不能再修改?
数据库·后端·面试
这个DBA有点耶4 小时前
数据同步的三个工程底线:DDL同步、断点续传、一致性校验——开源CDC的边界与KFS的路径
数据库·dba·代码规范
aiks_yuan4 小时前
MySQL GROUP BY 很慢怎么优化:加了索引反而从 1 秒变 7 秒,Using temporary 该不该消(MySQL 8.2 实测 400 万行)
mysql
SelectDB5 小时前
列式存储为什么适合分析类负载?原理、限制与日志场景应用
数据库
数据库小学妹5 小时前
MySQL大字段治理:行溢出机制、覆盖索引与拆表
数据库·mysql·性能优化
爱吃奥利奥_wen6 小时前
SQL Server 基础语法详解:从建库建表到约束与增删改查
服务器·数据库·oracle
这个DBA有点耶6 小时前
MySQL 8.0不可见索引:删索引怕出事,不删又拖慢写入——中间态怎么用?
数据库·mysql·代码规范
测试界的小码农8 小时前
【图数据库实战进阶(01):从零认识 Neo4j,搭建第一个图数据库项目】
数据库·neo4j
x_SpiderMan8 小时前
搭建Oracle RAC 集群
数据库·oracle