问题描述:
表中有几千万条数据,现在的需要是查询出列中包含某字段的所有数据:
select * from table1 where lie1 like '%aa%'
蜗牛一样的速度啊,实在是痛苦万分。
求提高查询速度的好办法。
网上搜索到的解决方法,在这里一一呈现,朋友们自行选择而试用之吧。
分析1:
select * from table1 where lie1 like '%aa%'
这样的写法无法提高速度应改为
select * from table1 where lie1 like 'aa%'
左含有可以利用索引,当然了,lie1这个字段要建立索引。
##--------------
分析2:
试试这个办法:
1、切割表,根据业务划分把QW级别表切割为百万。可以根据时间/类型等方式
2、通过程序进行空间换时间,找个NB的服务器,把整个表的主键,lie1这两个字段存放在内存中,如此提高效能,用接口调用,对常见搜索字段,创建记录做主动缓存。
3、万不得已之时放弃MSSQL,采用NOSQL,,再也不用考虑表扫描的问题了,吼吼。
期待更多朋友的高见,大家可以进入脚本学堂官方QQ群:161228069 参与讨论。