有关sql server中千万级数据的like问题分析

发布时间:2020-08-19编辑:脚本学堂
问题描述:表中有几千万条数据,现在的需要是查询出列中包含某字段的所有数据:select * from table1 where lie1 like '%aa%' 蜗牛一样的速度啊,实在是痛苦万分。

问题描述:
表中有几千万条数据,现在的需要是查询出列中包含某字段的所有数据:
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 参与讨论。