再实验mysql中批量查询使用in还是n+1?

延续上次的实验,http://willko.javaeye.com/blog/407964

200m记录,innodb

先从小量查询开始实验,只考虑随机情况,毕竟生产环境比较少出现顺序.

20个值的情况

Java代码 复制代码
  1. |        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)                                                                                                               |    
  2. |        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代码 复制代码
  1. |        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)                                                                                                               |    
  2. |        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代码 复制代码
  1. |       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 |    
  2. |       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代码 复制代码
  1. |       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)                                                                                                                                          |    
  2. |       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 =  |    
  3. |       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 |    
  4. |       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代码 复制代码
  1. +--------------------------------+----------+----------+------------+--------------+---------------+   
  2. | Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |   
  3. +--------------------------------+----------+----------+------------+--------------+---------------+   
  4. | starting                       | 0.000014 | 0.000000 |   0.000000 |            0 |             0 |    
  5. | checking query cache for query | 0.000048 | 0.000000 |   0.000000 |            0 |             0 |    
  6. | Opening tables                 | 0.000011 | 0.000000 |   0.000000 |            0 |             0 |    
  7. | System lock                    | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  8. | Table lock                     | 0.000019 | 0.000000 |   0.000000 |            0 |             0 |    
  9. | init                           | 0.000039 | 0.000000 |   0.000000 |            0 |             0 |    
  10. | optimizing                     | 0.000007 | 0.000000 |   0.000000 |            0 |             0 |    
  11. | statistics                     | 0.000047 | 0.000000 |   0.000000 |            0 |             0 |    
  12. | preparing                      | 0.000009 | 0.000000 |   0.000000 |            0 |             0 |    
  13. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  14. | Sending data                   | 0.234442 | 0.002000 |   0.001000 |            0 |             0 |    
  15. | end                            | 0.000007 | 0.000000 |   0.000000 |            0 |             0 |    
  16. | query end                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  17. | freeing items                  | 0.000031 | 0.000000 |   0.000000 |            0 |             0 |    
  18. | storing result in query cache  | 0.000005 | 0.000000 |   0.000000 |            0 |             0 |    
  19. | logging slow query             | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  20. | cleaning up                    | 0.000004 | 0.000000 |   0.000000 |            0 |             0 |    
  21. +--------------------------------+----------+----------+------------+--------------+---------------+  
+--------------------------------+----------+----------+------------+--------------+---------------+
| 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代码 复制代码
  1. +--------------------------------+----------+----------+------------+--------------+---------------+   
  2. | Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |   
  3. +--------------------------------+----------+----------+------------+--------------+---------------+   
  4. | starting                       | 0.000015 | 0.000000 |   0.000000 |            0 |             0 |    
  5. | checking query cache for query | 0.000123 | 0.000000 |   0.000000 |            0 |             0 |    
  6. | Opening tables                 | 0.000573 | 0.000000 |   0.000000 |            0 |             0 |    
  7. | System lock                    | 0.000004 | 0.000000 |   0.000000 |            0 |             0 |    
  8. | Table lock                     | 0.000607 | 0.001000 |   0.000000 |            0 |             0 |    
  9. | optimizing                     | 0.000012 | 0.000000 |   0.000000 |            0 |             0 |    
  10. | statistics                     | 0.000057 | 0.000000 |   0.000000 |            0 |             0 |    
  11. | preparing                      | 0.000007 | 0.000000 |   0.000000 |            0 |             0 |    
  12. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  13. | Sending data                   | 0.000033 | 0.000000 |   0.000000 |            0 |             0 |    
  14. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  15. | statistics                     | 0.000031 | 0.000000 |   0.000000 |            0 |             0 |    
  16. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  17. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  18. | Sending data                   | 0.000015 | 0.000000 |   0.000000 |            0 |             0 |    
  19. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  20. | statistics                     | 0.000026 | 0.000000 |   0.000000 |            0 |             0 |    
  21. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  22. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  23. | Sending data                   | 0.000017 | 0.000000 |   0.000000 |            0 |             0 |    
  24. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  25. | statistics                     | 0.000021 | 0.000000 |   0.000000 |            0 |             0 |    
  26. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  27. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  28. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  29. | statistics                     | 0.000028 | 0.000000 |   0.000000 |            0 |             0 |    
  30. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  31. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  32. | Sending data                   | 0.000024 | 0.000000 |   0.000000 |            0 |             0 |    
  33. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  34. | statistics                     | 0.000030 | 0.000000 |   0.000000 |            0 |             0 |    
  35. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  36. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  37. | Sending data                   | 0.000016 | 0.000000 |   0.000000 |            0 |             0 |    
  38. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  39. | statistics                     | 0.000029 | 0.000000 |   0.000000 |            0 |             0 |    
  40. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  41. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  42. | Sending data                   | 0.000022 | 0.000000 |   0.000000 |            0 |             0 |    
  43. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  44. | statistics                     | 0.000024 | 0.000000 |   0.000000 |            0 |             0 |    
  45. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  46. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  47. | Sending data                   | 0.000016 | 0.000000 |   0.000000 |            0 |             0 |    
  48. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  49. | statistics                     | 0.000032 | 0.000000 |   0.000000 |            0 |             0 |    
  50. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  51. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  52. | Sending data                   | 0.000016 | 0.000000 |   0.000000 |            0 |             0 |    
  53. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  54. | statistics                     | 0.000025 | 0.000000 |   0.000000 |            0 |             0 |    
  55. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  56. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  57. | Sending data                   | 0.000021 | 0.000000 |   0.000000 |            0 |             0 |    
  58. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  59. | statistics                     | 0.000033 | 0.000000 |   0.000000 |            0 |             0 |    
  60. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  61. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  62. | Sending data                   | 0.000022 | 0.000000 |   0.000000 |            0 |             0 |    
  63. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  64. | statistics                     | 0.000027 | 0.000999 |   0.000000 |            0 |             0 |    
  65. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  66. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  67. | Sending data                   | 0.000016 | 0.000000 |   0.000000 |            0 |             0 |    
  68. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  69. | statistics                     | 0.000031 | 0.000000 |   0.000000 |            0 |             0 |    
  70. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  71. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  72. | Sending data                   | 0.000022 | 0.000000 |   0.000000 |            0 |             0 |    
  73. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  74. | statistics                     | 0.000029 | 0.000000 |   0.000000 |            0 |             0 |    
  75. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  76. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  77. | Sending data                   | 0.000017 | 0.000000 |   0.000000 |            0 |             0 |    
  78. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  79. | statistics                     | 0.000028 | 0.000000 |   0.000000 |            0 |             0 |    
  80. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  81. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  82. | Sending data                   | 0.000018 | 0.000000 |   0.000000 |            0 |             0 |    
  83. | optimizing                     | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  84. | statistics                     | 0.000034 | 0.000000 |   0.000000 |            0 |             0 |    
  85. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  86. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  87. | Sending data                   | 0.000019 | 0.000000 |   0.000000 |            0 |             0 |    
  88. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  89. | statistics                     | 0.000032 | 0.000000 |   0.000000 |            0 |             0 |    
  90. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  91. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  92. | Sending data                   | 0.000016 | 0.000000 |   0.000000 |            0 |             0 |    
  93. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  94. | statistics                     | 0.000028 | 0.000000 |   0.000000 |            0 |             0 |    
  95. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  96. | executing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  97. | Sending data                   | 0.000016 | 0.000000 |   0.000000 |            0 |             0 |    
  98. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  99. | statistics                     | 0.000028 | 0.000000 |   0.000000 |            0 |             0 |    
  100. | preparing                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  101. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  102. | Sending data                   | 0.000024 | 0.000000 |   0.000000 |            0 |             0 |    
  103. | optimizing                     | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  104. | statistics                     | 0.000024 | 0.000000 |   0.000000 |            0 |             0 |    
  105. | preparing                      | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  106. | executing                      | 0.000010 | 0.000000 |   0.000000 |            0 |             0 |    
  107. | optimizing                     | 0.000002 | 0.000000 |   0.000000 |            0 |             0 |    
  108. | statistics                     | 0.000005 | 0.000000 |   0.000000 |            0 |             0 |    
  109. | preparing                      | 0.000004 | 0.000000 |   0.000000 |            0 |             0 |    
  110. | executing                      | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  111. | Sending data                   | 0.000143 | 0.000000 |   0.000000 |            0 |             0 |    
  112. | removing tmp table             | 0.000004 | 0.000000 |   0.000000 |            0 |             0 |    
  113. | Sending data                   | 0.000007 | 0.000000 |   0.000000 |            0 |             0 |    
  114. | query end                      | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |    
  115. | freeing items                  | 0.000048 | 0.000000 |   0.000000 |            0 |             0 |    
  116. | storing result in query cache  | 0.000018 | 0.000000 |   0.000000 |            0 |             0 |    
  117. | logging slow query             | 0.000001 | 0.000000 |   0.000000 |            0 |             0 |    
  118. | logging slow query             | 0.000043 | 0.000000 |   0.000000 |            0 |             0 |    
  119. | cleaning up                    | 0.000004 | 0.000000 |   0.000000 |            0 |             0 |    
  120. +--------------------------------+----------+----------+------------+--------------+---------------+  
+--------------------------------+----------+----------+------------+--------------+---------------+
| 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是怎么实现查找的,这个就不清楚了。

郁闷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值