mysql效能最佳化學習筆記(5)資料庫結構最佳化

來源:互聯網
上載者:User

標籤:


一、選擇合適的資料類型
    1.使用可存下資料的最小的資料類型
    2.使用簡單地資料類型,Int<varchar
    3.儘可能使用not null定義欄位
    4.盡量少用text,非用不可最好分表
    用Int儲存日期時間
    from_unixtime()可將Int類型的時間戳記轉換為時間格式
    unix_timestamp()可將時間格式轉換為Int類型
    儲存IP地址——bigInt
    利用inet_aton(),inet_ntoa()轉換


二、範式設計
    一般需要遵循第三範式的要求
    資料表結構最佳化 第三範式:要求資料庫中不存在非關鍵字段對任意候選關鍵字的傳遞函數依賴
    不符合第三範式要求的表存在以下問題:
    1.資料冗餘:(分類、分類描述)對於每一個商品都會進行記錄
    2.資料插入異常
    3.資料更新異常
    4.資料刪除異常
    反範式化
    為了查詢效率的考慮把原本符合第三範式的表適當增加冗餘,以空間換取時間


三、表的拆分
    垂直分割
    把原來有很多列的表拆分成多個表,原則是:
    1.把不常用的欄位單獨存放到一個表中
    2.把大欄位獨立存放在一個表中
    3.把經常使用的欄位放在一起


    水平分割
    1.對customer_id進行hash運算,如果是要拆分成5個表的話,則使用mod(customer_id,5)
    2.針對不同的hashID把資料存到不同的表中

mysql效能最佳化學習筆記(5)資料庫結構最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.