索引操作

简介: 索引操作

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

自己整理的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 的简称。

相关文章
|
20天前
|
存储 索引
什么情况下不应该创建索引?
索引应避免在很少使用的列、数据值少的列、text/image/bit类型列上创建,因为这些情况下索引不仅无助于提升查询速度,还会降低系统维护效率,增加存储开销。当数据修改频率远高于查询时,也不宜创建索引。
56 26
|
4月前
|
SQL 监控 关系型数据库
大数量的DML时对索引处理的技巧
【8月更文挑战第15天】在执行大批量DML操作(如INSERT、UPDATE、DELETE)时,可通过禁用索引、分批处理、选用适宜的索引类型与结构以及持续监控调整等策略优化性能。禁用索引可加速数据修改,分批处理减轻系统负担,合理索引类型支持不同查询需求,并定期优化索引结构保持高效。全程监控确保适时调整策略,提升整体效能。
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结
MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结
130 1
|
SQL 关系型数据库 MySQL
表索引——隐藏索引和删除索引
前言 MySQL 8开始支持隐藏索引。隐藏索引提供了更人性化的数据库操作。
|
存储 索引
为什么范围后索引会失效 存储引擎不能使用索引中范围条件右边的列
比如说有三个字段 a b c,建立复合索引a_b_c。此时叶子节点的数据排序后可能为
118 0
|
存储 NoSQL 算法
数据索引
数据索引
|
存储 关系型数据库 MySQL
MySQL中什么是什么是主键索引、联合索引、覆盖索引、索引条件下推及区别
主键索引:它是一种特殊的唯一索引,不允许有空值,一般在建表的时候指定主键,就会创建主键索引,CREATE INDEX不能用来创建主键索引,通常使用ALTER TABLE来代替。
177 0
测试关于索引的操作-创建索引
测试关于索引的操作-创建索引
测试关于索引的操作- 修改索引
测试关于索引的操作- 修改索引