該表包含4列:id(autoincrement),userid(唯一,像ssn),狀態(TINYINT(1),0或1值,非NULL),user_info( VARCHAR(1000))。MySQL索引性能...索引在WHERE取決於狀態
我應該把指數的用戶ID列,以提高性能,如:請求 30%是請求
"SELECT user_info from Table1 WHERE userid='1234567'";
40%:請求
"SELECT user_info from Table1 WHERE userid='1234567' AND status=0";
20%:
"SELECT user_info from Table1 WHERE userid='1234567' AND status=1";
或者,有更好的方法來提高性能(我應該考慮一下不知何故索引狀態欄)?
如果不是(30%,40%,20%)它會變成(9%,90%,1%),即大多數請求的狀態爲0,我應該改變一些東西嗎? 謝謝。
像「userid」這樣的表名意味着該列是外鍵(對於用戶表,id字段。) 如果您將其定義爲InnoDB表上的外鍵,它會自動建立索引。 http://stackoverflow.com/questions/304317/does-mysql-index-foreign-key-columns-automatically 關於索引FK的好信息: http://asktom.oracle.com/pls/apex ?/ F p = 100:11:0 :::: P11_QUESTION_ID:292016138754 – OpenSorceress