索引操作

简介: 索引操作

一个人的礼貌是一面照出他的肖像的镜子。——歌德

自己整理的mysql对于索引操作的sql

CREATE TABLE `user` (
  -- 创建表时指定主键索引
  `id` BIGINT ( 20 ) PRIMARY KEY NOT NULL COMMENT '主键',
  `gmt_create` datetime ( 0 ) NOT NULL COMMENT '创建时间',
  `gmt_modified` datetime ( 0 ) NOT NULL COMMENT '修改时间',
  `is_delete` TINYINT ( 1 ) NOT NULL DEFAULT 0 COMMENT '逻辑删除字段',
  `username` VARCHAR ( 32 ) CHARACTER 
  SET utf8mb4 COLLATE utf8mb4_general_ci UNIQUE DEFAULT NULL COMMENT '用户名',
  `password` VARCHAR ( 32 ) CHARACTER 
  SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
  `mobile` INT ( 11 ) DEFAULT NULL COMMENT '手机号',
  -- 创建表时顺带创建索引
  INDEX `idx_gmt_create` ( `gmt_create` DESC ) USING BTREE COMMENT '创建日期检索索引' 
);
-- 删除索引
DROP INDEX `username` ON `user`;
-- 创建唯一索引并指定长度
CREATE UNIQUE INDEX `idx_username` USING BTREE ON `user` (`username` ( 16 ));
-- 创建普通索引并指定降序
ALTER TABLE `user` ADD INDEX `idx_gmt_modified` ( `gmt_modified` DESC ) USING BTREE COMMENT '修改日期索引';
-- 创建唯一索引
ALTER TABLE `user` ADD UNIQUE `uk_mobile` ( `mobile` ) USING BTREE;
-- 创建主键索引
ALTER TABLE `user` ADD PRIMARY KEY `pk_username` ( `username` ) USING BTREE;
-- 创建全文索引
ALTER TABLE `user` ADD FULLTEXT `fx_username`(`username`);
-- 创建联合索引
ALTER TABLE `user` ADD UNIQUE `idx_id_username`(`id`,`username`) USING BTREE;
-- 创建联合唯一索引
ALTER TABLE `user` ADD UNIQUE `uk_username_mobile`(`username`,`mobile`) USING BTREE;
-- 删除索引
ALTER TABLE `user` DROP INDEX `fx_username`;
-- 删除主键索引
ALTER TABLE `user` DROP PRIMARY KEY;
-- 查看索引
SHOW INDEX FROM `user`;
SHOW KEYS FROM `user`;

注意阿里Java手册中对于索引命名的规约

五(一)5.【强制】主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。

说明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的简称。

相关文章
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结
MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结
98 1
|
关系型数据库 MySQL 索引
mysql索引的创建删除
mysql索引的创建删除
108 0
|
SQL 关系型数据库 MySQL
表索引——隐藏索引和删除索引
前言 MySQL 8开始支持隐藏索引。隐藏索引提供了更人性化的数据库操作。
|
存储 索引
为什么范围后索引会失效 存储引擎不能使用索引中范围条件右边的列
比如说有三个字段 a b c,建立复合索引a_b_c。此时叶子节点的数据排序后可能为
110 0
|
存储 NoSQL 算法
数据索引
数据索引
|
存储 关系型数据库 MySQL
MySQL中什么是什么是主键索引、联合索引、覆盖索引、索引条件下推及区别
主键索引:它是一种特殊的唯一索引,不允许有空值,一般在建表的时候指定主键,就会创建主键索引,CREATE INDEX不能用来创建主键索引,通常使用ALTER TABLE来代替。
173 0
测试关于索引的操作-创建索引
测试关于索引的操作-创建索引
测试关于索引的操作- 修改索引
测试关于索引的操作- 修改索引
|
存储 算法 搜索推荐
②MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作
MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作
272 0
②MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作