这个查询(用不同的名字而不是“jack”)在我的慢查询日志中发生了很多次。为什么?
Users 表有很多字段(比我选择的这三个还多)和大约 40.000 行。
select name,username,id from Users where ( name REGEXP
'[[:<:]]jack[[:>:]]' ) or ( username REGEXP '[[:<:]]jack[[:>:]]' )
order by name limit 0,5;
id
是主要的和自动增量的。
name
有一个索引。
username
有唯一的索引。
有时需要3秒!如果我解释 MySQL 上的选择,我有这个:
select type: SIMPLE
table: Users
type: index
possible keys: NULL
key: name
key len: 452
ref: NULL
rows: 5
extra: Using where
这是我能做的最好的吗?我能解决什么问题?