如何處理MySQL每個月5億的數據

第一階段:1,必定要正確設計索引2,必定要避免SQL語句全表掃描,因此SQL必定要走索引(如:一切的 > < != 等等之類的寫法都會致使全表掃描)3,必定要避免 limit 10000000,20 這樣的查詢4,必定要避免 LEFT JOIN 之類的查詢,不把這樣的邏輯處理交給數據庫5,每一個表索引不要建太多,大數據時會增長數據庫的寫入壓力第二階段:1,採用分表技術(大表分小表)a)垂直分表:將部分字段分離出來,設計成分表,根據主表的主鍵關聯b)水平分表:將相同字段表中的記錄按照某種Hash算法進行拆分多個分表2,採用mysql分區技術(必須5.1版以上,此技術徹底可以對抗Oracle),與水平分表有點相似,可是它是在邏輯層進行的水平分表第三階段(服務器方面):1,採用memcached之類的內存對象緩存系統,減小數據庫讀取操做2,採用主從數據庫設計,分離數據庫的讀寫壓力3,採用Squid之類的代理服務器和Web緩存服務器技術PS:因爲篇幅問題,我只簡單說一些基本概念,其實裏面每一個知識點關係到的內容都不少。特別是第一階段,不少工做幾年的程序員,都不能徹底理解。我以爲要真正理解索引,最好的辦法就是在1000W-億級以上的數據,進行測試SQL語句,再結合 explain 命令進行查看SQL語句索引狀況。
相關文章
相關標籤/搜索