首页 > 数据库 >MySQL5种索引类型

MySQL5种索引类型

时间:2023-03-20 10:34:03浏览次数:47  
标签:+----+ MySQL5 idx u1 t1 索引 mysql 类型


MySQL的类型主要有五种:主键索引、唯一索引、普通索引、空间索引、全文索引

有表:

CREATE TABLE `t1` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`u1` int unsigned NOT NULL DEFAULT '0',
`u2` int unsigned NOT NULL DEFAULT '0',
`u3` varchar(20) NOT NULL DEFAULT '',
`u4` varchar(35) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB

主键索引:

# 查看创建的索引关键词
PRIMARY KEY (`id`)

唯一索引;

# 创建唯一索引
mysql> alter table t1 add unique idx_u1(`u1`);

# 查看创建的索引关键词
UNIQUE KEY `idx_u1` (`u1`)

单列索引

  • 即索引创建在单个列上
# 创建单列索引
mysql> alter table t1 add index idx_u1(`u1`);

# 查看创建的索引关键词
KEY `idx_u1` (`u1`)

多列索引

  • 创建多列索引时记得遵循最左匹配原则,把区分度较高的字段放前面
# 创建多列索引
mysql> alter table t1 add index idx_u1_u2(`u1`,`u2`);

# 查看创建的多列索引关键词
KEY `idx_u1_u2` (`u1`,`u2`)

前缀索引

  • 即当字段的长度超过索引限制,可以为字段的部分前缀创建索引
# 创建前缀索引,取字符串的前4个字符
mysql> alter table t1 add index idx_u3(`u3`(4));

# 查看创建的索引关键词
KEY `idx_u3` (`u3`(4))

倒序索引

  • 8.0 版本出的新功能,以往创建倒叙索引可以创建成功,但实际上仍然是顺序的
# 5.7 创建倒序索引
mysql> select u1 from t1 limit 10;
+----+
| u1 |
+----+
| 12 |
| 23 |
| 12 |
| 34 |
+----+
10 rows in set (0.00 sec)
# 创建倒序索引
mysql> alter table t1 add index idx_u3(u3 desc);
# 实际查出来还是顺序
mysql> select u1 from t1 limit 10;
+----+
| u1 |
+----+
| 12 |
| 12 |
| 12 |
| 12 |
+----+

# 8.0 创建倒序索引
mysql> select u1 from t1 limit 5;
+----+
| u1 |
+----+
| 12 |
| 23 |
| 12 |
| 34 |
+----+
5 rows in set (0.00 sec)

# 添加索引
mysql> alter table t1 add index idx_u1(u1 desc);

# 查询倒序索引成功
mysql> select u1 from t1 limit 5;
+----+
| u1 |
+----+
| 74 |
| 74 |
| 74 |
| 74 |
+----+
5 rows in set (0.00 sec)

 

标签:+----+,MySQL5,idx,u1,t1,索引,mysql,类型
From: https://blog.51cto.com/u_15902978/6132086

相关文章

  • mysql 索引(InnoDB)
    mysql创建索引地址:https://dev.mysql.com/doc/refman/8.0/en/create-index.html概述:什么是索引:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进......
  • Halcon Dict字典数据类型获取键的值
    对于下面这个字典变量  要访问键‘classfication_class_ids’对应的值不能使用传统写法:DLResultBatch['classfication_class_ids']直接访问要使用get_dict_tuple函......
  • 你知道 html5 新增 input 类型有哪些吗?
    HTML5中新增的<input>元素类型非常丰富,以下是一些常用的类型及其示例:1、email-用于输入电子邮件地址。<inputtype="email"name="user_email">2、url-用于输入......
  • 数据类型之间的转换
    1#1.接收用户输入2num=input('请输入您的幸运数字:')34#2.打印结果5print(f"您的幸运数字是{num}")67#3.检测接收到的用户输入的数据类型--......
  • 69.处理类型
    1.类型别名  随着程序越来越复杂,程序中用到的类型也越来越复杂,这种复杂性体现在两个方面。一是一些类型难于“拼写“,它们的名字既难记又容易写错,还无法明确体现其真实......
  • java的数据类型
    2023-03-19java是强类型语言要求变量的使用严格符合规定,所有的变量需要先定义、后才能使用java的数据类型分为两大类1、基本类型 2、引用类型引用数据类型包括类......
  • Windows.edb占用空间太大,如何禁用或删除Windows 搜索索引( Windows Search Index)
    .原文:《https://zhuanlan.zhihu.com/p/507590692》最近电脑上C盘的空间不够了,发现主要是C盘腾讯的微信和QQ占用比较大的空间,这个将来想办法设置数据到其它目录,另发现系统有......
  • 【问题解决】Linux 下 VSCode IntelliSense 对 C 语言读写锁类型报错的问题
    如图下图所示,当我们想要使用C语言读写锁类型时,IntelliSense会提示如下未定义的错误:IntelliSense提示错误但是,如果忽略这些错误,直接`gcc-o`程序又没有问题。通......
  • 关于AWS-的ELB-Elastic Load Balancing-的说明及不同类型的简单的对比
    关于AWS-的ELB,全称ElasticLoadBalancing,或者也可以理解成ElasticLoadBalancer,在EC2服务的界面中可以找到关于ELB的文档可以参考 https://docs.aws.amazon.com/elasti......
  • 【Struts框架】第二节Result-结果类型_result_type
    Result类型 dispatcherredirectchainredirectActionfreemarkerhttpheaderstreamvelocityxsltplaintexttiles前四种比较常用结果类型......