在查询时in一堆不走索引,且数据查询及慢
SELECT * FROM table where (acceptor_id in(1,2, 3,4,5,)or propesstor_id in (1,2, 3,4,5,))
in or in 300条数据查询耗时6s,
改造
SELECT *
FROM (
SELECT “1” cid UNION ALL
SELECT “2” UNION ALL
SELECT “3” UNION ALL
SELECT “4” UNION ALL
SELECT “5” UNION ALL
SELECT “” UNION ALL
SELECT “” UNION ALL
SELECT “” UNION ALL
SELECT “”
) AS tmp,designmaterial t
WHERE tmp.cid = t.materialid;
总结
经过mysql数据库大量测试结果替代方案比IN语句快了不少,且会走索引,特别是数据量比较大的时候,所以以后如果遇到IN查询过程可以使用该替代方案。