mysql创建部分索引
2024-08-22 00:49:52
mysql中,字符串如何建立索引的(本文中截取一部分)
只对字符串的前几个字符进行索引。通过字符串的前几个字符我们已经能大概排序字符串了,剩下不能排序的可以通过遍历进行查找啊,这样只在B+树中存储字符串的前几个字符的编码,既节约空间,又减少了字符串的比较时间,还大概能解决排序的问题,何乐而不为,比方说我们在建表语句中只对name列的前10个字符进行索引可以这么写:
CREATE TABLE person_info(
name VARCHAR(100) NOT NULL,
birthday DATE NOT NULL,
phone_number CHAR(11) NOT NULL,
country varchar(100) NOT NULL,
KEY idx_name_age_birthday (name(10), birthday, phone_number)
);
name(10)就表示在建立的B+树索引中只保留记录的前10个字符的编码,这种只索引字符串值的前缀的策略是我们非常鼓励的,尤其是在字符串类型能存储的字符比较多的时候。
对于我工作遇到后10个字符需要创建索引。
下面这一列,后面10几个字符更有规律
可惜mysql不支持后缀索引。只支持前缀索引
前缀索引能很好地减少索引的大小及提高速度,但是mysql不能在order by 和group by查询中使用前缀索引,也不能把它们用伯覆盖索引。
有时后缀索引也挺有用,例如查找某个域名的所有电子邮件地址。mysql不支持反向索引,但是可以把反向字符串保存起来,并且索引它的前缀。可以用触发器维护这种索引。
最新文章
- 图解C#的值类型,引用类型,栈,堆,ref,out
- android 存储图片到data目录和读取data目录下的图片
- 关于JAVA日志
- x01.os.13: 文件系统
- poj1129 Channel Allocation
- 解决SVN不显示状态图标
- UICollectionView使用以及与UITableView的区别
- tomcat安全配置(二)
- MongoDb C/java driver
- 当你还在争夺移动支付的时候,我已经统一了IC卡市场
- UVA 116 Unidirectional TSP(dp + 数塔问题)
- 限制某个进程只能在某个CPU上运行
- 剑指offer——矩阵覆盖(斐波那契变形)
- Android使用SimpleAdapter
- 实施一个SAP项目大概分为下面几个过程
- 【转】如何判断ARP欺骗?该怎么防护?
- Eclipse 工程目录下的.classpath、.project文件和.settings文件作用
- 3-scala高级
- 处理html内容,获取纯文本
- 廖雪峰Java1-2程序基础-7布尔运算符