我想知道这两个查询之间是否有很大的性能差异。
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
查询已经正常工作了,两个都是。只是担心性能问题 :)
编辑:在进行一些测试时发现一个奇怪的问题:
SELECT * FROM qy9zh_dataitems WHERE Select6 in ('kvinna') LIMIT 0, 40000
共有29,051项结果,查询耗时0.2581秒。
SELECT * FROM qy9zh_dataitems WHERE Select6 LIKE ('%kvinna%') LIMIT 0, 40000
总共 29,113 条记录,查询耗时 0.2218 秒
EXPLAIN PLAN
并查看输出 -LIKE
查询将显示需要进行TABLE SCAN
,这意味着由于起始通配符必须检查每一行。 - Ken WhiteSelect6 in ('kvinna')
与Select6 = 'kvinna'
进行比较。两者都是查找Select6
列等于'kvinna'
的行。然而,Select6 LIKE ('%kvinna%')
查找Select6
包含'kvinna'
的行,如'abc kvinna xyz'
。 - Olivier Jacot-Descombes