开发的时候遇到了一个数据库查询性能的问题。输出每个查询的时间耗费之后发现,我的一个多表连接查询耗费了很多的时间。网上搜了一下性能优化的办法,大部分的方案是在表的连接字段建索引。
我的三表连接查询语句:
SELECT count(DISTINCT(c.pin)) as cnt
FROM jd as a, jd_org as b, port_log as c
WHERE
a.orgid = b.id
AND c.pin = a.pin
AND c.loginTime < #endTime#
AND c.loginTime >= #beginTime#
于是我在4个连接字段处建了索引,原先的查询耗时是3349ms,立刻降到了40ms。看来建索引的优化效果不错。大学的时候学数据库概论的时候对索引没有直观的感觉,这次映像深刻了。