1.mysql中主鍵與索引區別與聯繫
關係數據庫依賴於主鍵,它是數據庫物理模式的基石。主鍵在物理層面上只有兩個用途:
惟一地標識一行。
作爲一個可以被外鍵有效引用的對象。
索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含着對數據表裏所有記錄的引用指針。下面是主鍵和索引的一些區別與聯繫。
參考:https://www.cnblogs.com/ybygb-geng/p/9574169.html
2.什麼時候索引會失效
- 如果條件中有or,即使其中有條件帶索引也不會使用(這也是爲什麼儘量少用or的原因)。(要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引)
- 對於多列索引,不是使用的第一部分,則不會使用索引(即不符合最左前綴原則)
- like查詢是以%開頭
- 如果列類型是字符串,那一定要在條件中將數據使用引號引用起來,否則不使用索引
- 如果mysql估計使用全表掃描要比使用索引快,則不使用索引
3.mysql中InnoDB表爲什麼要建議用自增列做主鍵(爲什麼主鍵要有序而不是隨機數)
參考:https://blog.csdn.net/wukong_666/article/details/54982712
4.mysql中innodb和myisam的區別
參考:https://blog.csdn.net/qq_27607965/article/details/79925288
5.MySql爲何默認不用hash索引而用BTree索引的幾點原因
參考:https://blog.csdn.net/ycllycll/article/details/101307626
6.mysql索引最左匹配原則的理解
參考:https://blog.csdn.net/u013164931/article/details/82386555