mysql中合成索引的创建
来源:互联网 发布:wifi模块远程控制源码 编辑:程序博客网 时间:2024/06/05 09:40
合成索引的创建
一. 基础概念
合成索引可以用来提高对大文本字段(BOLB或TEXT)的查询性能,其实合成索引就是根据大文本字段的内容建立一个散列值,并把这个值存储在一个新的列中,接下来就可以通过查询散列值找到相应的数据行了。
这种技术只适用于精确匹配。
可以通过MD5函数生成大文本字段的散列值,当然也可以通过SHA1或者CRC32函数,用搜索散列标志符的速度比直接查找TEXT或BOLB本身速度要快
二. 动手测试
① 建立测试表test
create table test(id int not null,context text,md5_value varchar(50))
② 插入数据(向表中插入数据,其中md5_value用来存储context字段的散列值)
insert into test values(1,repeat('我是一个乖宝宝呢',15),md5(repeat('我是一个乖宝宝呢',15)));插入成功insert into test values(2,repeat('中世纪晚期的步兵逐渐被淘汰了',15),md5(repeat('中世纪晚期的步兵逐渐被淘汰了',15)));插入成功insert into test values(1,repeat('一名大学生玩起了摄影',15),md5(repeat('一名大学生玩起了摄影',15)));插入成功
select * from test;
③ 通过查询散列值来查询context字段内容
select * from test where md5_value=md5(repeat('我是一个乖宝宝呢',15));
通过查询散列值或者直接查询TEXT文本的内容都可以达到查询目的,不过如果TEXT文本内容量太大,通过查询散列值速度上优于通过直接查询TEXT文本,这就是合成索引的建立方法与大致建立过程
三. 注意事项
① 合成索引只适用于精确匹配,如果要用到对TEXT文本内容的模糊搜素,需要使用前缀索引
② 建立散列值的方法不止一种,主要使用MD5函数
③ 大文本字段被执行了大量的删除操作后,会在数据表中留下大量的空洞,可以定期执行OPTIMIZE TABLE对该类表进行整理
阅读全文
0 0
- mysql中合成索引的创建
- mysql中索引的创建和删除
- MySQL中索引的创建与使用
- 在MySQL中创建索引
- mysql中创建视图、索引
- MySQL中创建及优化索引组织结构的思路
- mysql中索引的查看创建和删除
- MySQL中创建及优化索引组织结构的思路
- mysql创建索引以及进程过程中出现的问题
- MySql索引(二)------各种索引的创建
- MySql创建索引的八项注意
- Mysql索引的创建、删除
- MySQL索引的创建原则
- MySql创建索引的八项注意
- MySQL索引的简单创建
- MySQL创建表的时候创建索引
- mysql 创建索引、修改索引、删除索引的命令
- MySQL 创建索引、修改索引、删除索引的命令语句
- Codeforces 754 D Fedor and coupons
- 【算法题】不等式数列
- java反射基础知识总结
- mysql 安装、建表及允许远程连接,及django连接mysql
- wlan没有有效的ip配置 win10
- mysql中合成索引的创建
- 浅析网站优化中的首页优化策略
- JAVA--递归分形树
- Android NDK开发之旅(3): 详解JNI数据类型与C/C++、Java之间的互调
- Android玩---Android Studio---如何优雅的使用Android Studio(1)
- Java Spring mvc 操作 Redis 及 Redis 集群
- Log4j的配置与使用
- CodeFroces 812A Sagheer and Crossroads
- 案例解析逆向思维SEO技巧