一个人的礼貌是一面照出他的肖像的镜子。——歌德
自己整理的mysql
对于索引操作的sql
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| 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 的简称。