mysql 存儲及查詢億級數據
阿新 • • 發佈:2018-06-21
緩存服務 explain 字段表 tex 大數據 語句 壓力 根據 等等
第一階段: 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語句索引情況。
mysql 存儲及查詢億級數據