索引语法
MySQL高级内容简介
序号 | Task01 | Task02 | Task03 | Task04 |
---|---|---|---|---|
1 | Linux系统安装MySQL | 体系结构 | 应用优化 | MySQL 常用工具 |
2 | 索引 | 存储引擎 | 查询缓存优化 | MySQL 日志 |
3 | 视图 | 优化SQL步骤 | 内存管理及优化 | MySQL 主从复制 |
4 | 存储过程和函数 | 索引使用 | MySQL锁问题 | 综合案例 |
5 | 触发器 | SQL优化 | 常用SQL技巧 |
# 索引优势劣势
优势
类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本
方便范围查找。通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。
劣势
实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间
索引降低更新表的速度,维护索引也要消耗时间。如对表进行INSERT、UPDATE、DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息
# 索引语法
# 添加索引
索引在创建表的时候可以同时创建, 也可以随时追加新的索引。
创建索引
create index 索引名 on 表名(添加到该列);
<e.g.>
create [unique] index index_name on table(表字段);
1
2
3
4
5
2
3
4
5
ALTER追加主键索引
-- 索引值必须是唯一的,且不能为NULL
alter table tb_name add primary key(column_list);
1
2
3
2
3
唯一索引
-- 索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)
alter table tb_name add unique index_name(column_list);
1
2
3
2
3
普通索引
-- 添加普通索引, 索引值可以出现多次
alter table tb_name add index index_name(column_list);
1
2
3
2
3
全文索引
-- 索引为FULLTEXT, 用于全文索引
alter table tb_name add fulltext index_name(column_list);
1
2
2
# 查看索引
show index from table_name;
1
# 删除索引
DROP INDEX index_name ON table_name;
1
编辑 (opens new window)
上次更新: 2021/06/27, 10:49:09