而最近在做程式碼存取database的優化上,發現在單一列上做索引,database會依下列的邏輯去尋找資料:
首先,我們可以考慮在單個列上創建索引,比如firstname、lastname或者age列。如果我們創建firstname列的索引(ALTER TABLE people ADD INDEX firstname (firstname);),MySQL將通過這個索引迅速把搜索範圍限制到那些firstname='Mike'的記錄,然後再在這個「中間結果集」上進行其他條件的搜索:它首先排除那些lastname不等於「Sullivan」的記錄,然後排除那些age不等於17的記錄。當記錄滿足所有搜索條件之後,MySQL就返回最終的搜索結果。[1]
為了提高搜索效率,我們需要考慮運用多列索引。如果為firstname、lastname和age這三個列創建一個多列索引,MySQL只需一次檢索就能夠找出正確的結果! [1]所以為了節省資料查詢的時間,發現在新版的Django中有加入了多行索引。使用方式可以在Model的Meta中加入一個index_together的欄位List即可。Django真是越來越方便了。
資料來源:
沒有留言:
張貼留言