MySQL优化索引及优化汉字模糊查询语句
来源:互联网 发布:淘宝蚂蚁花呗是什么 编辑:程序博客网 时间:2024/06/04 17:42
利用MySQL这种关系型数据库来做索引,的确有些勉强了,也只能看情况来说了,有些简单的功能还是可以考虑的。
对于模糊查询语句,最不利的情况是要like '%key%'这样的查询,但是如果是like 'key%'这种情况,那么mysql的索引在些查询方式上还是可以优化的。
网上常见的是ASCII的英文字符优化,如下:
举个例子来看看问题的来源吧:
先看一下要试验表的创建语句和结构,这是一个只包含股票代码和股票名称的数据表,主键为股票代码:
表里面的数据举例如下(股票代码和股票名称):
看一下要待优化的语句(一个英文、一个中文的):
对于第一个待优化的SQL语句来说,比较简单,很多地方都介绍过怎样优化:
而对于第二个是中文字符,马上想到是加一个最大编码的汉字,这里数据库存储的是UTF-8格式存储,而汉字的编码为3字节,所以按其最大编码的规则应该是:
Unicode编码是从U+0800到U+FFFF先标记一下这16位:“zzzzyyyy yyxxxxxx”;
然后把这16位对应到UTF-8的编码:“1110zzzz 10yyyyyy 10xxxxxx”。
所以最大的3个字节的编码为“11101111 10111111 10111111”,也就是十六进制的“EFBFBF”。
在MySQL中,用x'EFBFBF'表明这里面是用16进制编码的字符串,所以我们优化后的语句应该是这样的:
这样就达到了不用like语句比较表中的每一条记录,而直接使用索引快速检索。看,结果出来了:
0 0
- MySQL优化索引及优化汉字模糊查询语句
- MySQL优化索引及优化汉字模糊查询语句
- Mysql 索引及优化查询
- MySQL 索引及查询优化
- MySQL索引及查询优化
- mysql索引的使用及语句优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- mysql 索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- MySQL索引原理及慢查询优化
- java -- 字符串
- 学习笔记之JavaSE(36)--JavaAPI详解11
- 【Android】强大的SpannableStringBuilder
- DeepLearning 笔记
- oralce搭建DG恢复归档时遇到一个"大坑"
- MySQL优化索引及优化汉字模糊查询语句
- WIN7下PHP无法开启CURL模块解决方法
- 数据链路层
- 为什么我自定义的shader在实时光下能产生正确的镂空阴影,而烘焙却不能
- Android Volley框架的几种post提交请求方式
- css之盒子模型
- sql之left join、right join、inner join的区别
- ftp开发相关资料整理
- pythonの鉴黄之路(四)——urllib模块批量下载