MySQL查询需要很长时间才能加载

时间:2013-12-21 00:13:53

标签: mysql apache ubuntu

我有一个数据库表,有300,000行和113.7 MB的大小。我的数据库在Ubuntu 13.10上运行,有8个内核和8GB内存。就像现在一样,MySQL服务器平均使用了750%的CPU。和6.5%MEM(通过在CLI中运行top获得的结果)。另外需要注意的是,它与Apache2 Web Server在同一台服务器上运行。

这是我在Mem系列上获得的内容: Mem: 8141292k total, 6938244k used, 1203048k free, 211396k buffers

当我跑步时:show processlist;我会得到这样的回报:

2098812 | admin | localhost       | phpb | Query   |   12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Horns/thumbs/Halloween 2013 Horns (Original).png'
2098813 | admin | localhost       | phpb | Query   |   12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Witch Hat/thumbs/Halloween 2013 Witch Hat (Origina
2098814 | admin | localhost       | phpb | Query   |   12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Blouse/thumbs/Halloween 2013 Blouse (Original).png
2098818 | admin | localhost       | phpb | Query   |   11 | Sending data | SELECT * FROM items WHERE parent = 210162 OR auto = 210162    

有些查询需要花费超过10秒的时间来执行,这不是列表的顶部,而是位于中间的某个位置,只是为了给出在此列表中堆叠了多少查询的透视图。我觉得它可能与我的查询现金配置有关。以下是运行SHOW STATUS LIKE 'Qc%';

时显示的配置
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 434      |
| Qcache_free_memory      | 2037880  |
| Qcache_hits             | 62580686 |
| Qcache_inserts          | 10865474 |
| Qcache_lowmem_prunes    | 4157011  |
| Qcache_not_cached       | 3140518  |
| Qcache_queries_in_cache | 1260     |
| Qcache_total_blocks     | 4440     |
+-------------------------+----------+

我注意到Qcache_lowmem_prunes似乎有点高,这是正常的吗?

我一直在搜索StackOverflow,但我找不到任何可以解决我问题的东西。对此有任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

这可能是http://dba.stackexchange.com的一个。那说......

  • 为什么您的查询运行缓慢?他们返回的结果集很大,还是真的很复杂?
  • 您是否尝试使用EXPLAIN SELECT column FROM ...
  • 运行其中一个查询
  • 您是否正确使用索引?
  • 您是如何在my.cnf文件中配置MySQL的?
  • 您使用的是哪种表类型?
  • 你有任何错误吗?

修改:好的,查看您的查询示例。 items.thumb是什么数据类型? Varchar,Text?是否完全不可能使用除文字文本匹配之外的其他方法来查询此表? (例如身份证号码)。此列是否有索引?

相关问题