還有空間索引,平時也比較少用。目前只有MyISAM存儲引擎支持空間檢索。目前博主也只接觸過InnoDB存儲引擎。
1.2.5、一般一張表索引不要超過5個,而且避免重復(fù)索引,而且也不是建了索引,根據(jù)索引字段條件查詢,索引就會起作用。
1.2.6、一般哪些場景會導(dǎo)致索引失效:a.使用like關(guān)鍵字匹配字符串第一個為”%”的場景。b.條件中包含or、in、not in、<>關(guān)鍵字,默認不走索引的。c.訪問表上的數(shù)據(jù)行超出表總記錄數(shù)30%,變成全表掃描。d.查詢條件使用函數(shù)在索引列上,或者對索引列進行運算。e.多列索引中,第一個索引列使用范圍查詢,只能用到部份或無法使用索引。f.多列索引中,第一個查詢條件不是最左索引列,上面多列索引概念中也有提到??隙ㄟ€有更多的場景,但是博主現(xiàn)在能想到的場景就這些了。
1.2.7、不能同時使用兩個索引,一個過濾數(shù)據(jù),一個用于排序(主鍵除外)。
1.2.8、DML語句如果使用索引,會導(dǎo)致lock全表;如果使用了非唯一索引,可能只是鎖住一定范圍。對此,建議更新/刪除數(shù)據(jù)盡量用上索引,如果可以最好用上主鍵或唯一索引,另外事務(wù)要及時提交。
1.2.9、最后一點,如何看執(zhí)行計劃,分析SQL的性能。這個吧,三言兩語說不清楚,直接看其他博主的博文吧: mysql explain執(zhí)行計劃詳解 。一定要看?。?!
(3)關(guān)于事務(wù)的一些建議
如果沒有聽過事務(wù)這么個概念,網(wǎng)上了解學(xué)習(xí)一下,先理解一下各個事務(wù)類型的含義吧:a.日志記錄盡量放在獨立事務(wù)里面,避免后面的異常發(fā)生導(dǎo)致日志丟失。b.上面已經(jīng)幾次提到,盡早提交事務(wù),避免事務(wù)過長,因此寫代碼的時候,一些可以不放到事務(wù)的邏輯可以移到外面,長事務(wù)看能否拆成兩個事務(wù)。
(4)關(guān)于數(shù)據(jù)庫連接池。
可能一些猿友都少去注意吧。先來看看一些參數(shù),這里只羅列了博主比較關(guān)注的,更多的可以自行查看一下配置。
initialSize : 默認值是 0, 連接池創(chuàng)建連接的初始連接數(shù)目。