- 論壇徽章:
- 0
|
表關(guān)系
單據(jù)表:jd,id主鍵,記錄數(shù)5XX條
流程進(jìn)度表:lcdj,id主鍵,jd_id(指向單據(jù)表的id,但是沒有設(shè)置外鍵),status(狀態(tài):0正常,-1刪除),其他lcjd_id(流程進(jìn)度id,對(duì)應(yīng)code表id==lcjd.id的名稱),記錄數(shù)22xx條
流程進(jìn)度視圖:v_cljd,對(duì)lcjd表中的lcjd.id代碼用left join進(jìn)行翻譯
當(dāng)前流程進(jìn)度視圖:select * from v_cljd where status=0,即v_lcjd中status=0的記錄。
執(zhí)行時(shí)間如下:
SELECT jd.id FROM jd LEFT JOIN v_dqlcjd ON jd.id = v_dqlcjd.jd_id
耗時(shí) 0.99
SELECT jd.id FROM jd LEFT JOIN v_lcjd ON jd.id = v_lcjd.jd_id where v_lcjd.`status` = 0
耗時(shí)0.006
mysql> show profiles;
+----------+------------+-----------------------------------------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-----------------------------------------------------------------------------------------+
| 1 | 0.99802075 | SELECT jd.id FROM jd LEFT JOIN v_dqlcjd ON jd.id = v_dqlcjd.jd_id |
| 2 | 0.0015355 | explain SELECT jd.id FROM jd LEFT JOIN v_dqlcjd ON jd.id = v_dqlcjd.jd_id |
| 3 | 0.006792 | SELECT jd.id FROM jd LEFT JOIN v_lcjd ON jd.id = v_lcjd.jd_id where v_lcjd.`status` = 0 |
+----------+------------+-----------------------------------------------------------------------------------------+
3 rows in set
mysql> explain SELECT jd.id FROM jd LEFT JOIN v_dqlcjd ON jd.id = v_dqlcjd.jd_id ;
+----+-------------+-------+--------+-----------------+-----------------+---------+-----------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+-----------------+-----------------+---------+-----------------+------+-------------+
| 1 | SIMPLE | jd | index | NULL | PRIMARY | 4 | NULL | 567 | Using index |
| 1 | SIMPLE | lcjd | ref | IND_LCJD_STATUS | IND_LCJD_STATUS | 5 | const | 10 | |
| 1 | SIMPLE | clcjd | eq_ref | PRIMARY | PRIMARY | 4 | fz.lcjd.lcjd_id | 1 | Using index |
+----+-------------+-------+--------+-----------------+-----------------+---------+-----------------+------+-------------+
3 rows in set
mysql> explain SELECT jd.id FROM jd LEFT JOIN v_lcjd ON jd.id = v_lcjd.jd_id where v_lcjd.`status` = 0 ;
+----+-------------+-------+--------+-----------------+-----------------+---------+-----------------+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+-----------------+-----------------+---------+-----------------+------+--------------------------+
| 1 | SIMPLE | lcjd | ref | IND_LCJD_STATUS | IND_LCJD_STATUS | 5 | const | 594 | Using where |
| 1 | SIMPLE | jd | eq_ref | PRIMARY | PRIMARY | 4 | fz.lcjd.jd_id | 1 | Using index |
| 1 | SIMPLE | clcjd | eq_ref | PRIMARY | PRIMARY | 4 | fz.lcjd.lcjd_id | 1 | Using where; Using index |
+----+-------------+-------+--------+-----------------+-----------------+---------+-----------------+------+--------------------------+
3 rows in set
為什么會(huì)有這樣的差距? |
|