㈠ 任何查询都讨厌
只要是查询、MySQL都讨厌、执行查询最快的方式就是不去执行
缓存为王、比如Redis或者memcache
㈡ 查询结果集最小
尽量基于主键或者二级索引来查询、通过覆盖索引避免回表来节省IO
如:
select col1 from table where primary_key_column=something;
㈢ 带JOINS 的查询
采用适当的反范式来避免JOIN
如:
SELECT t2.value FROM t2 JOIN t1 ON (t1.id=t2.tid) WHERE t1.orderdate=NOW()
可以把t1中的orderdate列抽取放置到t2中
SELECT t2.value FROM t2 WHERE t2.orderdate=NOW()
㈣ 聚合查询最讨厌
周期性的预装载汇总表来避免实时的在线聚合查询
这里使用 INSERT ... ON DUPLICATE KEY UPDATE很有帮助
By WaterBin
2013-07-20
Good Luck