我有一个数据库表,有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,但我找不到任何可以解决我问题的东西。对此有任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
这可能是http://dba.stackexchange.com的一个。那说......
EXPLAIN SELECT column FROM ...
?修改:好的,查看您的查询示例。 items.thumb是什么数据类型? Varchar,Text?是否完全不可能使用除文字文本匹配之外的其他方法来查询此表? (例如身份证号码)。此列是否有索引?