【发布时间】:2020-03-31 17:11:27
【问题描述】:
我有一张有 500 万字的大桌子。我需要找到以动态字符串开头的单词。但是当我将 LIKE 运算符与字符串变量一起使用时,查询会变得太长。
例如,这个查询需要 1.3 秒:
set @pattern = 'f%';
select * from words where Word like @pattern limit 100;
下一个查询需要 0.0 秒:
select * from words where Word like 'f%' limit 100;
但两个查询执行相同的工作。
请求的持续时间差异很大的原因可能是什么?如何消除这种差异?
【问题讨论】:
-
关于
words-table: ENGINE=MyISAM, CHARSET=utf8, COLLATE=utf8_bin, KEYWordIndex(Word),Wordvarchar(100) COLLATE utf8_bin NOT NULL跨度>
标签: mysql pattern-matching sql-like query-performance sqlperformance