高性能MySQL學習筆記(四)

創建高性能的索引*

什麼是索引? 索引是幫助MySQL高效獲取數據的數據結構。索引是數據結構!

#創建索引
CREATE [UNIQUE] INDEX indexName ON mytable(columname(length));
ALTER mytable ADD [UNIQUE]  INDEX [indexName] ON(columnname(length));
#ALTER 添加索引
ALTER TABLE tb_name ADD PRIMARY KEY (column_list);#添加主鍵
ALTER TABLE tb_name ADD UNIQUE index_name(column_list);#唯一索引,可爲NULL
ALTER TABLE tb_name ADD INDEX index_name(column_list);#普通索引,索引值可出現多次
ALTER TABLE tb_name ADD FULL TEXT index_name(column_list);#全文索引
#刪除索引
DROP INDEX [indexName] ON mytable;
#查看索引
SHOW INDEX FROM table_name\G;
  • 索引分類

    • 單值索引 一個索引只包含單個列,如主鍵

    • 唯一索引 索引列的值必須唯一,允許空值

    • 複合索引

  • 索引的類型

    • B-Tree /B+Tree MyISAM InnoDB
    • 哈希索引 Memory
    • 空間數據索引R-Tree MyISAM
    • 全文索引
  • 索引優劣

    • 優點
      • 提高檢索的效率,降低數據庫I/O成本
      • 通過索引列對數據進行排序,降低CPU消耗
    • 劣勢
      • 索引也是一張表,保存了主鍵與索引字段,佔用空間
      • 會降低表的更新速度
  • 高性能索引策略

    • 獨立的列
    • 前綴索引 MySQL無法使用前綴索引做ORDER BY、GROUP BY和覆蓋掃描
    • 多列索引
    • 合適的索引列順序 選擇性最高的列放到索引最前列
    • 聚簇索引 索引和數據儲存在一起
      //。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章