再实验mysql中批量查询使用in还是n+1?
2009-07-06 16:28
423 查看
延续上次的实验,http://willko.javaeye.com/blog/407964
200m记录,innodb
先从小量查询开始实验,只考虑随机情况,毕竟生产环境比较少出现顺序.
20个值的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (1072317,944960,232144,1221849,1718824,1971030,1634860,219179,1733544,618875,1033368,914264,1657167,687934,2164378,1675400,816727,1072638,56834,798724) |
| 4 | 0.00271600 | SELECT * FROM Member WHERE MemberID = 1072317 UNION SELECT * FROM Member WHERE MemberID = 944960 UNION SELECT * FROM Member WHERE MemberID = 232144 UNION SELECT * FROM Member WHERE MemberID = 1221849 UNION SELECT * FROM Member WHERE MemberID = 1718824 UNION SELECT * FROM Member WHERE MemberID = 1971 |
50个值的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (1072317,944960,232144,1221849,1718824,1971030,1634860,219179,1733544,618875,1033368,914264,1657167,687934,2164378,1675400,816727,1072638,56834,798724) |
| 4 | 0.00271600 | SELECT * FROM Member WHERE MemberID = 1072317 UNION SELECT * FROM Member WHERE MemberID = 944960 UNION SELECT * FROM Member WHERE MemberID = 232144 UNION SELECT * FROM Member WHERE MemberID = 1221849 UNION SELECT * FROM Member WHERE MemberID = 1718824 UNION SELECT * FROM Member WHERE MemberID = 1971 |
500个值的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 11 | 4.89638400 | SELECT * FROM Member WHERE MemberID IN (1940366,1592700,1400564,745603,439521,1782230,1627418,1968030,1173113,1406275,1157786,382329,1252380,2202431,2142859,714044,1178282,1463622,1069076,955140,2071311,647081,619895,154986,1068419,1900229,1792226,1796517,1568490,687304,2059599,912862,1797395,168722 |
| 12 | 0.07686600 | SELECT * FROM Member WHERE MemberID = 1940366 UNION SELECT * FROM Member WHERE MemberID = 1592700 UNION SELECT * FROM Member WHERE MemberID = 1400564 UNION SELECT * FROM Member WHERE MemberID = 745603 UNION SELECT * FROM Member WHERE MemberID = 439521 UNION SELECT * FROM Member WHERE MemberID = 1782 |
在一张只有100k记录的表上实验
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 18 | 0.12457700 | SELECT * FROM Product WHERE ProductID IN (11089,108843,80895,6486,91179,109813,97611,49713,90237,56495,114315,773,119650,55401,8965,61268,60379,13692,114931,71883) |
| 19 | 0.00348100 | SELECT * FROM Product WHERE ProductID = 11089 UNION SELECT * FROM Product WHERE ProductID = 108843 UNION SELECT * FROM Product WHERE ProductID = 80895 UNION SELECT * FROM Product WHERE ProductID = 6486 UNION SELECT * FROM Product WHERE ProductID = 91179 UNION SELECT * FROM Product WHERE ProductID = |
| 20 | 0.35769600 | SELECT * FROM Product WHERE ProductID IN (52447,28980,59590,80193,98487,22829,78756,70810,86308,60046,81279,67714,99244,89245,69998,48611,81038,17256,45283,119693,108364,97453,47837,81514,457,26157,115691,13263,102098,101610,38318,32815,101610,45720,31842,90977,53938,86167,6973,3819,22670,81914,8805 |
| 21 | 0.00640500 | SELECT * FROM Product WHERE ProductID = 52447 UNION SELECT * FROM Product WHERE ProductID = 28980 UNION SELECT * FROM Product WHERE ProductID = 59590 UNION SELECT * FROM Product WHERE ProductID = 80193 UNION SELECT * FROM Product WHERE ProductID = 98487 UNION SELECT * FROM Product WHERE ProductID = |
注意,即使使用union,query cache还是按照整条sql来算的。
看到这样的结果,我想大家都有结论了,使用n+1比用in快n倍,估计上次实验有问题,,我们来看看他们的执行过程
这是in的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000014 | 0.000000 | 0.000000 | 0 | 0 |
| checking query cache for query | 0.000048 | 0.000000 | 0.000000 | 0 | 0 |
| Opening tables | 0.000011 | 0.000000 | 0.000000 | 0 | 0 |
| System lock | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| Table lock | 0.000019 | 0.000000 | 0.000000 | 0 | 0 |
| init | 0.000039 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000047 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000009 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.234442 | 0.002000 | 0.001000 | 0 | 0 |
| end | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| freeing items | 0.000031 | 0.000000 | 0.000000 | 0 | 0 |
| storing result in query cache | 0.000005 | 0.000000 | 0.000000 | 0 | 0 |
| logging slow query | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| cleaning up | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
+--------------------------------+----------+----------+------------+--------------+---------------+
n+1情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000015 | 0.000000 | 0.000000 | 0 | 0 |
| checking query cache for query | 0.000123 | 0.000000 | 0.000000 | 0 | 0 |
| Opening tables | 0.000573 | 0.000000 | 0.000000 | 0 | 0 |
| System lock | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
| Table lock | 0.000607 | 0.001000 | 0.000000 | 0 | 0 |
| optimizing | 0.000012 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000057 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000033 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000031 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000015 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000026 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000017 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000021 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000030 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000029 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000032 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000025 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000021 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000033 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000027 | 0.000999 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000031 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000029 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000017 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000018 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000034 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000019 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000032 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000010 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000005 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000143 | 0.000000 | 0.000000 | 0 | 0 |
| removing tmp table | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| freeing items | 0.000048 | 0.000000 | 0.000000 | 0 | 0 |
| storing result in query cache | 0.000018 | 0.000000 | 0.000000 | 0 | 0 |
| logging slow query | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| logging slow query | 0.000043 | 0.000000 | 0.000000 | 0 | 0 |
| cleaning up | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
+--------------------------------+----------+----------+------------+--------------+---------------+
in的话主要耗费在sending data上,而n+1比较稳定并且比in多了临时表,sending data包括索引的查找以及数据的传输,我想in慢在查找上,因为是innodb而且是主键,只要找到主键就可以得到数据。
至于,in是怎么实现查找的,这个就不清楚了。
郁闷
200m记录,innodb
先从小量查询开始实验,只考虑随机情况,毕竟生产环境比较少出现顺序.
20个值的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (1072317,944960,232144,1221849,1718824,1971030,1634860,219179,1733544,618875,1033368,914264,1657167,687934,2164378,1675400,816727,1072638,56834,798724) |
| 4 | 0.00271600 | SELECT * FROM Member WHERE MemberID = 1072317 UNION SELECT * FROM Member WHERE MemberID = 944960 UNION SELECT * FROM Member WHERE MemberID = 232144 UNION SELECT * FROM Member WHERE MemberID = 1221849 UNION SELECT * FROM Member WHERE MemberID = 1718824 UNION SELECT * FROM Member WHERE MemberID = 1971 |
| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (1072317,944960,232144,1221849,1718824,1971030,1634860,219179,1733544,618875,1033368,914264,1657167,687934,2164378,1675400,816727,1072638,56834,798724) | | 4 | 0.00271600 | SELECT * FROM Member WHERE MemberID = 1072317 UNION SELECT * FROM Member WHERE MemberID = 944960 UNION SELECT * FROM Member WHERE MemberID = 232144 UNION SELECT * FROM Member WHERE MemberID = 1221849 UNION SELECT * FROM Member WHERE MemberID = 1718824 UNION SELECT * FROM Member WHERE MemberID = 1971 |
50个值的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (1072317,944960,232144,1221849,1718824,1971030,1634860,219179,1733544,618875,1033368,914264,1657167,687934,2164378,1675400,816727,1072638,56834,798724) |
| 4 | 0.00271600 | SELECT * FROM Member WHERE MemberID = 1072317 UNION SELECT * FROM Member WHERE MemberID = 944960 UNION SELECT * FROM Member WHERE MemberID = 232144 UNION SELECT * FROM Member WHERE MemberID = 1221849 UNION SELECT * FROM Member WHERE MemberID = 1718824 UNION SELECT * FROM Member WHERE MemberID = 1971 |
| 3 | 0.23469200 | SELECT * FROM Member WHERE MemberID IN (1072317,944960,232144,1221849,1718824,1971030,1634860,219179,1733544,618875,1033368,914264,1657167,687934,2164378,1675400,816727,1072638,56834,798724) | | 4 | 0.00271600 | SELECT * FROM Member WHERE MemberID = 1072317 UNION SELECT * FROM Member WHERE MemberID = 944960 UNION SELECT * FROM Member WHERE MemberID = 232144 UNION SELECT * FROM Member WHERE MemberID = 1221849 UNION SELECT * FROM Member WHERE MemberID = 1718824 UNION SELECT * FROM Member WHERE MemberID = 1971 |
500个值的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 11 | 4.89638400 | SELECT * FROM Member WHERE MemberID IN (1940366,1592700,1400564,745603,439521,1782230,1627418,1968030,1173113,1406275,1157786,382329,1252380,2202431,2142859,714044,1178282,1463622,1069076,955140,2071311,647081,619895,154986,1068419,1900229,1792226,1796517,1568490,687304,2059599,912862,1797395,168722 |
| 12 | 0.07686600 | SELECT * FROM Member WHERE MemberID = 1940366 UNION SELECT * FROM Member WHERE MemberID = 1592700 UNION SELECT * FROM Member WHERE MemberID = 1400564 UNION SELECT * FROM Member WHERE MemberID = 745603 UNION SELECT * FROM Member WHERE MemberID = 439521 UNION SELECT * FROM Member WHERE MemberID = 1782 |
| 11 | 4.89638400 | SELECT * FROM Member WHERE MemberID IN (1940366,1592700,1400564,745603,439521,1782230,1627418,1968030,1173113,1406275,1157786,382329,1252380,2202431,2142859,714044,1178282,1463622,1069076,955140,2071311,647081,619895,154986,1068419,1900229,1792226,1796517,1568490,687304,2059599,912862,1797395,168722 | | 12 | 0.07686600 | SELECT * FROM Member WHERE MemberID = 1940366 UNION SELECT * FROM Member WHERE MemberID = 1592700 UNION SELECT * FROM Member WHERE MemberID = 1400564 UNION SELECT * FROM Member WHERE MemberID = 745603 UNION SELECT * FROM Member WHERE MemberID = 439521 UNION SELECT * FROM Member WHERE MemberID = 1782 |
在一张只有100k记录的表上实验
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
| 18 | 0.12457700 | SELECT * FROM Product WHERE ProductID IN (11089,108843,80895,6486,91179,109813,97611,49713,90237,56495,114315,773,119650,55401,8965,61268,60379,13692,114931,71883) |
| 19 | 0.00348100 | SELECT * FROM Product WHERE ProductID = 11089 UNION SELECT * FROM Product WHERE ProductID = 108843 UNION SELECT * FROM Product WHERE ProductID = 80895 UNION SELECT * FROM Product WHERE ProductID = 6486 UNION SELECT * FROM Product WHERE ProductID = 91179 UNION SELECT * FROM Product WHERE ProductID = |
| 20 | 0.35769600 | SELECT * FROM Product WHERE ProductID IN (52447,28980,59590,80193,98487,22829,78756,70810,86308,60046,81279,67714,99244,89245,69998,48611,81038,17256,45283,119693,108364,97453,47837,81514,457,26157,115691,13263,102098,101610,38318,32815,101610,45720,31842,90977,53938,86167,6973,3819,22670,81914,8805 |
| 21 | 0.00640500 | SELECT * FROM Product WHERE ProductID = 52447 UNION SELECT * FROM Product WHERE ProductID = 28980 UNION SELECT * FROM Product WHERE ProductID = 59590 UNION SELECT * FROM Product WHERE ProductID = 80193 UNION SELECT * FROM Product WHERE ProductID = 98487 UNION SELECT * FROM Product WHERE ProductID = |
| 18 | 0.12457700 | SELECT * FROM Product WHERE ProductID IN (11089,108843,80895,6486,91179,109813,97611,49713,90237,56495,114315,773,119650,55401,8965,61268,60379,13692,114931,71883) | | 19 | 0.00348100 | SELECT * FROM Product WHERE ProductID = 11089 UNION SELECT * FROM Product WHERE ProductID = 108843 UNION SELECT * FROM Product WHERE ProductID = 80895 UNION SELECT * FROM Product WHERE ProductID = 6486 UNION SELECT * FROM Product WHERE ProductID = 91179 UNION SELECT * FROM Product WHERE ProductID = | | 20 | 0.35769600 | SELECT * FROM Product WHERE ProductID IN (52447,28980,59590,80193,98487,22829,78756,70810,86308,60046,81279,67714,99244,89245,69998,48611,81038,17256,45283,119693,108364,97453,47837,81514,457,26157,115691,13263,102098,101610,38318,32815,101610,45720,31842,90977,53938,86167,6973,3819,22670,81914,8805 | | 21 | 0.00640500 | SELECT * FROM Product WHERE ProductID = 52447 UNION SELECT * FROM Product WHERE ProductID = 28980 UNION SELECT * FROM Product WHERE ProductID = 59590 UNION SELECT * FROM Product WHERE ProductID = 80193 UNION SELECT * FROM Product WHERE ProductID = 98487 UNION SELECT * FROM Product WHERE ProductID = |
注意,即使使用union,query cache还是按照整条sql来算的。
看到这样的结果,我想大家都有结论了,使用n+1比用in快n倍,估计上次实验有问题,,我们来看看他们的执行过程
这是in的情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000014 | 0.000000 | 0.000000 | 0 | 0 |
| checking query cache for query | 0.000048 | 0.000000 | 0.000000 | 0 | 0 |
| Opening tables | 0.000011 | 0.000000 | 0.000000 | 0 | 0 |
| System lock | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| Table lock | 0.000019 | 0.000000 | 0.000000 | 0 | 0 |
| init | 0.000039 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000047 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000009 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.234442 | 0.002000 | 0.001000 | 0 | 0 |
| end | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| freeing items | 0.000031 | 0.000000 | 0.000000 | 0 | 0 |
| storing result in query cache | 0.000005 | 0.000000 | 0.000000 | 0 | 0 |
| logging slow query | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| cleaning up | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
+--------------------------------+----------+----------+------------+--------------+---------------+
+--------------------------------+----------+----------+------------+--------------+---------------+ | Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out | +--------------------------------+----------+----------+------------+--------------+---------------+ | starting | 0.000014 | 0.000000 | 0.000000 | 0 | 0 | | checking query cache for query | 0.000048 | 0.000000 | 0.000000 | 0 | 0 | | Opening tables | 0.000011 | 0.000000 | 0.000000 | 0 | 0 | | System lock | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | Table lock | 0.000019 | 0.000000 | 0.000000 | 0 | 0 | | init | 0.000039 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000007 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000047 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000009 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.234442 | 0.002000 | 0.001000 | 0 | 0 | | end | 0.000007 | 0.000000 | 0.000000 | 0 | 0 | | query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | freeing items | 0.000031 | 0.000000 | 0.000000 | 0 | 0 | | storing result in query cache | 0.000005 | 0.000000 | 0.000000 | 0 | 0 | | logging slow query | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | cleaning up | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | +--------------------------------+----------+----------+------------+--------------+---------------+
n+1情况
Java代码
![](http://willko.javaeye.com/images/icon_copy.gif)
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000015 | 0.000000 | 0.000000 | 0 | 0 |
| checking query cache for query | 0.000123 | 0.000000 | 0.000000 | 0 | 0 |
| Opening tables | 0.000573 | 0.000000 | 0.000000 | 0 | 0 |
| System lock | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
| Table lock | 0.000607 | 0.001000 | 0.000000 | 0 | 0 |
| optimizing | 0.000012 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000057 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000033 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000031 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000015 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000026 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000017 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000021 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000030 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000029 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000032 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000025 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000021 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000033 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000027 | 0.000999 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000031 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000029 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000017 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000018 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000034 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000019 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000032 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000010 | 0.000000 | 0.000000 | 0 | 0 |
| optimizing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 |
| statistics | 0.000005 | 0.000000 | 0.000000 | 0 | 0 |
| preparing | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
| executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000143 | 0.000000 | 0.000000 | 0 | 0 |
| removing tmp table | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
| Sending data | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |
| query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |
| freeing items | 0.000048 | 0.000000 | 0.000000 | 0 | 0 |
| storing result in query cache | 0.000018 | 0.000000 | 0.000000 | 0 | 0 |
| logging slow query | 0.000001 | 0.000000 | 0.000000 | 0 | 0 |
| logging slow query | 0.000043 | 0.000000 | 0.000000 | 0 | 0 |
| cleaning up | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |
+--------------------------------+----------+----------+------------+--------------+---------------+
+--------------------------------+----------+----------+------------+--------------+---------------+ | Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out | +--------------------------------+----------+----------+------------+--------------+---------------+ | starting | 0.000015 | 0.000000 | 0.000000 | 0 | 0 | | checking query cache for query | 0.000123 | 0.000000 | 0.000000 | 0 | 0 | | Opening tables | 0.000573 | 0.000000 | 0.000000 | 0 | 0 | | System lock | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | | Table lock | 0.000607 | 0.001000 | 0.000000 | 0 | 0 | | optimizing | 0.000012 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000057 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000007 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000033 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000031 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000015 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000026 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000017 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000021 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000024 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000030 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000029 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000024 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000032 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000025 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000021 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000033 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000027 | 0.000999 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000031 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000022 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000029 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000017 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000018 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000034 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000019 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000032 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000016 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000028 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000024 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000024 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000010 | 0.000000 | 0.000000 | 0 | 0 | | optimizing | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | statistics | 0.000005 | 0.000000 | 0.000000 | 0 | 0 | | preparing | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | | executing | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000143 | 0.000000 | 0.000000 | 0 | 0 | | removing tmp table | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | | Sending data | 0.000007 | 0.000000 | 0.000000 | 0 | 0 | | query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 | | freeing items | 0.000048 | 0.000000 | 0.000000 | 0 | 0 | | storing result in query cache | 0.000018 | 0.000000 | 0.000000 | 0 | 0 | | logging slow query | 0.000001 | 0.000000 | 0.000000 | 0 | 0 | | logging slow query | 0.000043 | 0.000000 | 0.000000 | 0 | 0 | | cleaning up | 0.000004 | 0.000000 | 0.000000 | 0 | 0 | +--------------------------------+----------+----------+------------+--------------+---------------+
in的话主要耗费在sending data上,而n+1比较稳定并且比in多了临时表,sending data包括索引的查找以及数据的传输,我想in慢在查找上,因为是innodb而且是主键,只要找到主键就可以得到数据。
至于,in是怎么实现查找的,这个就不清楚了。
郁闷
相关文章推荐
- mysql中批量查询使用in还是n+1?
- 第二章 mybatis使用注解实现in查询(mysql)
- MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用
- MySQL中使用子查询IN效率较低的问题
- MySQL使用 IN 查询取出数据排序问题(与in排序相同、不排序)
- mysql 按年度、季度、月度、周、日SQL统计查询,mysql 存储过程 中 in 和 FIND_IN_SET 传递多个参数的使用
- 处理mysql使用in关键字子查询1317错误
- sql 调优之-在子查询中使用exist还是 in
- 在Mysql中使用in子句查询和排序
- mysql中如何将查询结果的多个记录中的指定字段放到一个二维数组中,以及在in子句中使用数组
- 【mysql】find_in_set 和 in 混合使用查询数据紊乱
- mysql中使用FIND_IN_SET查询在逗号隔开的字符串中符合多个ID的数据
- MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用
- mysql使用in查询,按照期望的顺序输出结果
- MySql的FIND_IN_SET()查询函数的使用
- 在使用mysql条件in查询的时候出现查的条数变少的原因以及解决方案
- mysql 查询使用 in()条件时调用索引的争论
- MySQL中使用or、in与union all在查询命令下的效率对比
- MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用(转)
- MySQL查询中 find_in_set 在使用中可能遇到的问题