Mac*_*ito 3 mysql sql performance select sql-like
我只是觉得如果这2个查询会有很大的性能差异
SELECT
`items_id`, `sport_id`, `sport`, `title`, `url`,
`Select3`, `Select6`, `id`, `data`,`image` as image,
concat('index.php?option=sports&item=',`items_id`,'&p=C108-M108') as count_url
FROM
qy9zh_dataitems
WHERE Select6 LIKE '%sport%'
ORDER BY `Select9` DESC LIMIT 0, 4
SELECT
`items_id`, `sport_id`, `sport`, `title`, `url`,
`Select3`, `Select6`, `id`, `data`,`image` as image,
concat('index.php?option=sports&item=',`items_id`,'&p=C108-M108') as count_url
FROM
qy9zh_dataitems
WHERE Select6 in ('sport')
ORDER BY `Select9` DESC LIMIT 0, 4
Run Code Online (Sandbox Code Playgroud)
查询工作得很好..他们两个..只是担心性能:)
编辑:当我做一些测试时,一个奇怪的事情是:
SELECT * FROM qy9zh_dataitems WHERE Select6 in ('kvinna') LIMIT 0, 40000
Run Code Online (Sandbox Code Playgroud)
共计29,051次,查询耗时0.2581秒
SELECT * FROM qy9zh_dataitems WHERE Select6 LIKE ('%kvinna%') LIMIT 0, 40000
Run Code Online (Sandbox Code Playgroud)
总共29,113,查询花了0.2218秒
如果在列上定义了索引,并且您正在查找此列的开头,请参阅
name LIKE 'Jo%'
Run Code Online (Sandbox Code Playgroud)
索引可用于加速查询.但是,如果您正在寻找单词的任何部分,请参阅
name LIKE '%man%'
Run Code Online (Sandbox Code Playgroud)
索引无法使用.
IN子句通常非常快,但我不知道它是否可以利用索引.
查询的速度取决于适当索引的可用性,表的大小,值的分布(具有相同值的许多行,每行具有不同的值),当然还取决于查询本身.我认为你的问题不能得到普遍回答.进行测试并进行比较!
| 归档时间: |
|
| 查看次数: |
5368 次 |
| 最近记录: |