博文The most efficient way to improve an SQL statement is to eliminate it中通过mk-query-digest发现查询频率最高的是ELECT TTDOD,但是TTDOD一直都是空的,文章的建议是减少这些空表的查询操作。
# Rank Query ID Response time Calls R/Call Apdx V/M Item
# ==== ================== ============= ===== ====== ==== ===== ==========
# 1 0xD631CB919867DB50 0.0436 47.3% 92 0.0005 1.00 0.00 SELECT TTDOD
# 2 0x04FE01C5B31FD305 0.0258 27.9% 329 0.0001 1.00 0.00 ADMIN PING
# 3 0x93321857BCD8E771 0.0229 24.8% 36 0.0006 1.00 0.00 SELECT TTD
当然对于每个不同的产品来说,我们都可以通过这种方式发现这些空表查询。我这里想实现的是如何统一的管理这些空表查询:
一些问题:
1)在哪实现:
客户端/服务器 模式: 客户端实现
Web模式:通用查询接口处
2)空表 和 不空表 需要排序,以加快匹配速度。
3)带 触发器 的表 不能使用,不太合理解决办法:把触发器中涉及到的表全部添加到 不空表 中。