收集下关系数据库处理亿万级别的数据
生活随笔
收集整理的這篇文章主要介紹了
收集下关系数据库处理亿万级别的数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一階段:
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性能分析及explain的使用
- 下一篇: 使用Hibernate生成数据库和连接数