MySQL索引优化:创建、删除和调整索引案例
在MySQL中,索引是数据库系统用来提高查询性能的重要工具。以下是一些关于创建、删除和调整索引的案例:
- 创建索引
```sql
— 在表列上创建唯一索引
CREATE UNIQUE INDEX idx_username ON users(username);
— 在多个列上创建复合索引
CREATE INDEX idx_order_date_price ON orders(order_date, price);
2. 删除索引
```sql
-- 删除表中的一个索引
DROP INDEX idx_username ON users;
-- 如果该索引不存在,会报错
DROP INDEX idx_order_date_price ON orders; -- 报错:Index 'idx_order_date_price' not found in table 'orders'
- 调整索引
- 改变索引类型:
```sql
— 将唯一索引变为普通索引
ALTER INDEX idx_username ON users TYPE normal;
— 或者使用DROP INDEX后再重建
DROP INDEX idx_username ON users;
CREATE INDEX idx_username ON users(username);
- 调整索引的覆盖度,减少I/O操作:
```sql
-- 增加索引列的宽度,提高覆盖度
ALTER TABLE users MODIFY username VARCHAR(32) NOT NULL;
-- 或者使用EXPLAIN查看索引覆盖情况
EXPLAIN SELECT * FROM users WHERE username = 'test';
以上就是创建、删除和调整MySQL索引的一些常见操作案例。
还没有评论,来说两句吧...