Mysql優化筆記

1. MyISAM 和 InnoDB 存儲引擎特點

    ① MyISAM

        表結構,數據,索引分別有對應的存儲文件

        寫入數據快,按照自然順序寫入數據

        數據穩定後可以壓縮數據信息

        支持全文索引

        併發性: 較低,鎖表操作

   ② InnoDB:

        表結構有單獨的存儲文件,數據和索引共享統一個存儲文件(ibdata1、*.ibd)

            ibdata1 是全部innnodb表的數據和索引的存儲文件  

            *.ibd是每個innodb表的數據和索引存儲文件  

        支持事務和外鍵

        併發性較好,行鎖(操作數據表時鎖定操作記錄)

        Mysql5.6後InnoDB支持全文索引


2. 字段類型的選擇

    ① 給數據分配的空間儘量要小一點(tinyint, smallint, mediumint, int, bigint)

            時間: datetime, date, year, time, timestamp(1970年往後的信息)

    ② 數據確定長度的儘量用char,整合爲固定長度的信息

    ③ 數據最好變爲整型信息存儲(set, enum, 時間戳, ip地址)

3. 逆範式(有時需要違背數據庫設計的三範式原則)

    爲了查詢快

4. 索引:

    就是把數據表的某個字段獲取出來,該字段作爲關鍵字和記錄物理地址進行對應,以便快速定位記錄信息

    (索引內部有算法可以快速定位信息)

    類型:主鍵索引(primary key), 唯一索引(unique key), 普通索引(key), 全文索引(fulltext key)

    增加和刪除索引:

    增加: 在表創建的時候添加

                追加: 

                       ① alter table 表名 add primary key (字段名);

                       ② alter table 表名 add unique index [名稱] (字段名)

                       ③  aleter table 表名 add index [名稱](字段名)

                       ④ alter table 表名 add fulltext index [名稱] (字段名);

                刪除:alter table 表名 drop  索引類型 (索引名稱);

 執行計劃(針對查詢語句起作用)  explain

    作用: 查詢語句在沒有執行之前查看該執行語句消耗資源情況,是否使用索引


  索引使用場合:

    where,order by, 索引覆蓋(複合索引),  鏈接查詢     

  索引使用原則:

   列獨立原則, 左原則(模糊查詢), 複合索引, OR原則

發佈了44 篇原創文章 · 獲贊 11 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章