MySql“准备”花费了太多时间

时间:2015-04-29 09:57:49

标签: php mysql performance

我是MySQL性能分析的新手。我发现我的系统中的连接查询最近变得缓慢(~4个表为3.52s,每个表有~1000-2000行)。我用phpmyadmin查看了性能分析。结果如下所示:

  

1起始170μs
  2个开放表44μs
  3系统锁定7μs
  4表锁7μs
  5初始值65μs
  6优化20μs
  7统计92μs
  8准备31μs
  9创建Tmp表236μs
  10执行2μs
  11复制到Tmp表68μs
  12优化10μs
  13统计14μs
   14准备3.5秒
  15创建排序索引2.6 ms
  16复制到组表15.9 ms
  17排序结果2.1 ms
  18发送数据391μs
  19结束7μs
  20去除Tmp表1.3 ms
  21结束3μs
  22去除Tmp表819μs
  23结束10μs
  24查询结束2μs
  25个解放物品20μs
  26去除Tmp表6μs
  27个解放物品365μs
  28记录慢查询3μs
  29清理6μs左右

我不明白为什么Preparing阶段成本为3.5秒。我怎样才能减少它?

1 个答案:

答案 0 :(得分:2)

我会在答案中大肆猜测,你可能不会使用任何索引

在SQL优化中,Indexing is a broken cheat,如konami-code中的contradoors中的age of empire

无论如何,尝试在您的数据库中添加一些索引,然后回到我们身边,并对您的准备阶段现在的速度感到惊讶。