任何抛开业务谈大数据量的sql优化都是瞎扯
生活随笔
收集整理的這篇文章主要介紹了
任何抛开业务谈大数据量的sql优化都是瞎扯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
周三去某在線旅游公司面試。被問到了一個關于數據量大的優化問題。問題是:一個主外鍵關聯表,主表有一百萬數據,外鍵關聯表有一千萬的數據,要求做一個連接。
本人接觸過單表數據量最大的就是將近兩億行歷史數據(某運營商一業務一年數據)做查詢,所有查詢相關列必須做索引,而且還要保證不會出現全表掃描情況。也從來沒有試過把這么多數據全部拿出來放內存中。只好回答說“再怎么做優化估計都不行,這數據量太大了,性能肯定吃不銷。我只能告訴盡可能的添加過濾條件,不要一次用這么多的數據來做連接,能分批做就分批做吧”。
面試人員告訴我,比如說我們的機票業務,我們只把北上廣熱門城市的放在緩存中,實時刷新即可。其他的每次去查詢數據庫即可,不必一次把所有的數據全部連接出來放到內存中。
我只能呵呵了,沒有業務讓我去優化一個sql,這不是扯淡么。
?
關于這種大數據量優化問題,讓我理解最深刻就是分表做法。因為我們公司有個業務需要實時上傳數據,每天小百萬數據,而且還要做查詢。于是分表來做,每天生成一張表,然后把前一天的表添加索引,查詢的時候可以根據日期來獲取表名。盡量少查詢當天數據,因為沒有索引比較慢。添加索引的話因為實時插入數據,索引的維護代價比較大,所以選擇第二天添加前一天表的索引。
轉載于:https://www.cnblogs.com/qishiguilai/p/4265239.html
總結
以上是生活随笔為你收集整理的任何抛开业务谈大数据量的sql优化都是瞎扯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSTL标签引入(web基础学习笔记十八
- 下一篇: (寒假CF)Choosing Symbo