<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      MySQL"軍規"

      [摘要]下面我來說一下,有關在MYSQL上最實用的"軍規",希望大家都能夠牢記遵守一、核心軍規 - 不在數據庫做運算:cpu計算務必移至業務層 - 控制單表數...
      下面我來說一下,有關在MYSQL上最實用的"軍規",希望大家都能夠牢記遵守

      一、核心軍規

      - 不在數據庫做運算:cpu計算務必移至業務層

      - 控制單表數據量:單表記錄控制在1000w

      - 控制列數量:字段數控制在20以內

      - 平衡范式與冗余:為提高效率犧牲范式設計,冗余數據

      - 拒絕3B:拒絕大sql,大事物,大批量

      二、字段類軍規

      - 用好數值類型
      tinyint(1Byte)
      smallint(2Byte)
      mediumint(3Byte)
      int(4Byte)
      bigint(8Byte)
      bad case:int(1)/int(11)

      - 字符轉化為數字
      用int而不是char(15)存儲ip

      - 避免使用NULL字段
      NULL字段很難查詢優化
      NULL字段的索引需要額外空間
      NULL字段的復合索引無效

      - 少用text/blob
      varchar的性能會比text高很多
      實在避免不了blob,請拆表

      - 不在數據庫里存圖片

      三、索引類軍規

      - 謹慎合理使用索引
      改善查詢、減慢更新
      索引一定不是越多越好(能不加就不加,要加的一定得加)
      覆蓋記錄條數過多不適合建索引,例如“性別”

      - 字符字段必須建前綴索引

      - 不在索引做列運算
      bad case:
      select id where age +1 = 10;

      - innodb主鍵推薦使用自增列
      主鍵建立聚簇索引
      主鍵不應該被修改
      字符串不應該做主鍵
      如果不指定主鍵,innodb會使用唯一且非空值索引代替

      - 不用外鍵
      請由程序保證約束

      四、sql類軍規

      - sql語句盡可能簡單
      一條sql只能在一個cpu運算
      大語句拆小語句,減少鎖時間
      一條大sql可以堵死整個庫

      - 簡單的事務
      事務時間盡可能短
      bad case:
      上傳圖片事務

      - 避免使用trig/func
      觸發器、函數不用
      客戶端程序取而代之

      上面是我整理給大家的MySQL"軍規",希望今后會對大家有幫助。

      相關文章:

      mysql基本語法

      給Myql創建索引

      mysql的一些高級用法

      以上就是MySQL"軍規"的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      標簽:MySQL"軍規" 
      日韩精品一区二区三区高清