我有一個log
表像這樣保存所有日誌,所有我的表在我的MySQL數據庫:關鍵不同表
+-------+-----------+-------------+-------------+-----------+--------+
| LogID | LogTypeID | LogDateTime | ReferenceID | TableName | UserID |
+-------+-----------+-------------+-------------+-----------+--------+
| 1 | 1 | 2012-10... | 1 | client | 1 |
| 2 | 1 | 2012-10... | 1 | plan | 1 |
| ... | ... | ... | ... | ... | ... |
+-------+-----------+-------------+-------------+-----------+--------+
的log
表保存所有日誌,當我插入,更新或將刪除到我的數據庫中的表格中,該表格由我的LogTypeID
列標識。 ReferenceID
列是我的TableName
列中標識的表的主鍵,我所有的Primay Keys具有相同類型int(10)
,並且ReferenceID
列也是相同的。
我總是用我的log
表來識別這個數據是什麼時候插入的,所以我不能清除日誌。
我起初沒有問題,但現在我的查詢變得很慢,因爲有很多數據使用log
表。我try to improve the performance of my database server它變得比以前快一點,但它仍然是緩慢的。我的大部分查詢INNER JOIN
到log
表。
我想加入外鍵我ReferenceID
到使用log
表,因爲我覺得鍵可以提高我的查詢性能的所有表的,但我不知道這是否是可行的。
我可以使我的ReferenceID
列成爲我所有表格的外鍵嗎?
我的數據庫服務器是MySQL Server 5.5.25,我的表都是InnoDB。
請幫助,在此先感謝。
您能否在這裏提供EXPLAIN或EXPLAIN EXTENDED結果。這是我們需要查看性能檢查的第一件事情。 –