熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

高性能MySQL:反范式的優點和缺點

2013-11-23 21:09:18  來源: MySQL 

   反范式的優點和缺點

  反范式化的schema 因為所有數據都在一張表中可以很好地避免關聯

  如果不需要關聯表則對大部分查詢最差的情況即使表沒有使用索引是全表掃描當數據比內存大時這可能比關聯要快得多因為這樣避免了隨機I/O

  要更有效地執行這個查詢MySQL 需要掃描message 表的published 字段的索引對於每一行找到的數據將需要到user 表裡檢查這個用戶是不是付費用戶如果只有一小部分用戶是付費賬戶那麼這是效率低下的做法

  另一種可能的執行計劃是從user 表開始選擇所有的付費用戶獲得他們所有的信息並且排序但這可能更加糟糕

  主要問題是關聯使得需要在一個索引中又排序又過濾如果采用反范式化組織數據將兩張表的字段合並一下並且增加一個索引(account_type published)就可以不通過關聯寫出這個查詢這將非常高效

  mysql> SELECT message_textuser_name

  > FROM user_messages

  > WHERE account_type=premium

  > ORDER BY published DESC

  > LIMIT ;

      返回目錄高性能MySQL

       編輯推薦

       ASPNET MVC 框架揭秘

       Oracle索引技術

       ASP NET開發培訓視頻教程

  數據倉庫與數據挖掘培訓視頻教程


From:http://tw.wingwit.com/Article/program/MySQL/201311/29677.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.