MySQL
常用语句
用户相关\管理相关\数据相关
视图\事件\存储过程\函数\游标\触发器
事务\分区
常用工具
管理优化
锁问题
MySQL日志
异步复制
半同步复制
复制管理
5.7开启并行复制
双主备份
故障问题
索引
时区
表的导出导入
MySQLdump逻辑备份
XtraBackup全备
XtraBackup增备
XtraBackup原表数据恢复
安装MySQL
ProxySQL中间件
Atlas中间件
keepalived安装
MHA安装
MHA恢复
mha复制检查报错及解决过程
集群Cluster安装
维护Cluster
开启审计功能
本文档使用MrDoc发布
返回首页
-
+
索引
2021年9月3日 15:17
admin
####缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。 ####建立索引会占用磁盘空间的索引文件。 --- #普通索引 ####创建普通索引 #方式一 CREATE INDEX indexName ON table_name (column_name) #方式二:修改表结构(添加索引) ALTER table tableName ADD INDEX indexName(columnName) #方式三:创建表的时候直接指定 CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); ####删除普通索引 DROP INDEX [indexName] ON mytable; --- #唯一索引 >####它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式: 创建唯一索引 #方式一 CREATE UNIQUE INDEX indexName ON mytable(username(length)) #方式二:修改表结构 ALTER table mytable ADD UNIQUE [indexName] (username(length)) #方式三:创建表的时候直接指定 CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) ); --- #添加和删除索引与主键 ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。 ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。 ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。 ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。 ================================================================ #以下实例为在表中添加索引。 #mysql> ALTER TABLE testalter_tbl ADD INDEX (c); #删除索引 mysql> ALTER TABLE testalter_tbl DROP INDEX c; --- #使用 ALTER 命令添加和删除主键 主键作用于列上(可以一个列或多个列联合主键),添加主键索引时,你需要确保该主键默认不为空(NOT NULL)。实例如下: mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL; mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i); #删除主键: mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY; ####删除主键时只需指定PRIMARY KEY,但在删除索引时,你必须知道索引名。 #显示索引信息 mysql> SHOW INDEX FROM table_name\G
分享到: