普通MySQL運行,數據量和訪問量不大的話,是足夠快的,但是當數據量和訪問量劇增的時候,那么就會明顯發現MySQL很慢,甚至down掉,那么就要考慮優化我們的MySQL了,其中優化MYSQL的一個重要環節就是為數據庫建立正確合理的索引。

          如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表里面的記錄數量越多,這個操作的代價就越高。如果作為搜索條件的列上已經創建了索引,MySQL無需掃描任何記錄即可迅速得到目標記錄所在的位置。也就是說索引可以大大減少數據庫管理系統查找數據的時間。索引有哪些優點?

          1、  通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。

          2、  可以大大加快數據的檢索速度,這也是創建索引的最主要原因。

          3、  可以加速表和表之間的連接,這在實現數據的參考完整性方面特別有意義。

          4、  在使用分組和排序子句進行數據檢索時,同樣可以顯著減少查詢中分組和排序的時間。

           索引有哪些缺點?

          1、  創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加。

          2、  除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,需要的空間就會更大。

          3、  當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。

           索引有哪些類型?

          1、 普通索引

          這是最基本的索引類型,而且它沒有唯一性之類的限制。

          2、 唯一性索引

          這種索引和前面的普通索引基本相同,但有一個區別:索引列的所有值都只能出現一次,即必須唯一。

          3、主鍵

          它是一種特殊的唯一索引,不允許有空值。

          4、全文索引

          MySQL3.23.23版開始支持全文索引和全文檢索。

           單列索引和組合索引:

          單列索引就是把索引單獨建立在一個字段上。

          組合索引復合索引就是一個索引創建在兩個列或者多個列上。在搜索時,當兩個或者多個列作為一個關鍵值時,最好在這些列上創建復合索引。

           建立和使用索引有哪些注意事項:

          1、           索引要建立在經常進行select操作的字段上這是因為,如果這些列很少用到,那么有無索引并不能明顯改變查詢速度。相反,由于增加了索引,反而降低了系統的維護速度和增大了空間需求。

          2、           索引要建立在值比較唯一的字段上。這樣做才是發揮索引的最大效果。比如主鍵的id字段,唯一的名字name字段等等。如果索引建立在唯一值比較少的字段,比如性別gender字段,寥寥無幾的類別字段等,剛索引幾乎沒有任何意義。

          3、           對于那些定義為text imagebit數據類型的列不應該增加索引。因為這些列的數據量要么相當大,要么取值很少。

          4、           當修改性能遠遠大于檢索性能時,不應該創建索引。修改性能和檢索性能是互相矛盾的。當增加索引時,會提高檢索性能,但是會降低修改性能。當減少索引時,會提高修改性能,降低檢索性能。因此,當修改性能遠遠大于檢索性能時,不應該創建索引。

          5、           WHEREJOIN中出現的列需要建立索引。

          6、           在以通配符 % _ 開頭作查詢時,MySQL索引是無效的。但是這樣索引是有效的:select * from tbl1 where name like 'xxx%',所以謹慎的寫你的SQL是很重要的。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 2, comments - 0, trackbacks - 0, articles - 0

          Copyright © 擦肩而過

          主站蜘蛛池模板: 灵宝市| 乌拉特中旗| 堆龙德庆县| 澄迈县| 清原| 巴林左旗| 宝丰县| 同江市| 齐河县| 渝中区| 四子王旗| 新平| 广西| 阿坝| 锦屏县| 澄迈县| 拉萨市| 屯门区| 南溪县| 平度市| 通河县| 巴彦县| 资阳市| 鄂托克前旗| 伊春市| 台东县| 桃江县| 文化| 德保县| 怀仁县| 乐昌市| 南丰县| 剑川县| 峨边| 集安市| 瓦房店市| 连城县| 台湾省| 常熟市| 舒城县| 鸡东县|