SQLITE3中的索引使用方法-如何避免使用字符串做索引
来源:互联网 发布:淘宝上优衣库代购真吗 编辑:程序博客网 时间:2024/05/28 11:29
1 避免使用字符串索引
字符串索引与数字索引有一些方面如果没做好会非常的慢。
事情的起因是线上日志发现的mysql慢查询。100万数据量的标准,联合查询全部走索引的情况下,尽然要600多毫秒。很不解,但是将索引列由varchar(50)型改为bigint型后,数据提升了30倍。究其原因就索引树上搜索时要进行大量的比较操作,而字符串的比较比整数的比较耗时的多。
所以建议一般情况下不要在字符串列建立索引,如果非要使用字符串索引,可以采用以下两种方法:
1.只是用字符串的最左边n个字符建立索引,推荐n<=10;比如index left(address,8),但是需要知道前缀索引不能在order by中使用,也不能用在索引覆盖上。
2.对字符串使用hash方法将字符串转化为整数,address_key=hashToInt(address),对address_key建立索引,查询时可以用如下查询where address_key = hashToInt(‘beijing,china’) and address = ‘beijing,china’;
0 0
- SQLITE3中的索引使用方法-如何避免使用字符串做索引
- sqlite3查看select使用什么索引
- 大数据量表中如何有效使用非聚集索引及如何避免使用LEFT JOIN
- 如何使用索引,转摘
- 如何使用MySQL索引?
- sqlite3全文索引介绍
- Python中的字符串索引基本知识
- 深入理解Oracle索引(18):函数索引的陷阱以及如何避免索引被污染
- 深入理解Oracle索引(18):函数索引的陷阱以及如何避免索引被污染
- oracle的索引使用:复合索引中的前导索引
- oracle避免限制索引
- 避免索引压抑
- 避免索引失效
- 数据库的索引,mysql中的索引|||如何在mysql中对text字段加索引?|||mysql数据库中的字段在什么情况下加索引?|||高手请进:text字段不能做索引,有无其他方法?|||该建那个字段
- 【索引】字符串
- 索引-字符串
- [索引]字符串
- 如何使用索引优化表
- __attribute__ format
- Android Studio中导入Launcher2遇到的问题以及解决方案
- OLTP 联机事务处理
- js 控制锚点定位
- 猪:原来大数据都是骗“猪”的
- SQLITE3中的索引使用方法-如何避免使用字符串做索引
- asm diskgroup中的Usable_file_MB和Req_mir_free_MB
- Spring 注解Aop实现
- MAT(Memory Analyzer Tool)工具入门介绍
- 使用__attribute__处理对齐问题
- 关于获取text类型value的一个小问题
- NYOJ 769 乘数密码 (字符串)
- Python脚本10 —— 复制json文件并替换指定字段
- ElasticSearch的虚拟机VM配置