沒有列存的MySQL千萬級分析也能支援
自己原文公眾號: https://mp.weixin.qq.com/s/3mgeT93lP-PGCea0oZFDNA
如果要做分析大家第一想到的是大資料。還想到了Oracle MySQL PG不行。我聽過不少人說,出報表去大資料啊。這個也不能說錯,但是請問報表多大?如果就是幾萬條資料一個excel輕鬆搞定。為什麼需要大資料?
分析做的好的都是列式資料庫。行式資料庫在交易場景是必須的,在分析場景下,無用功多了,顯得有點慢。
但是那是說在資料量巨大(請注意何為巨大)我認為1000萬一下都是常規得到。10億以上再說大也不遲。
拿資料說話1000萬的一個表,硬查也就7秒左右(我這個列少,列數多會慢,如果有幾十列可能會20-30秒)如下圖紅框。(練習虛擬機器,低配未優化)
黃色框才是日常可能發生的聚合 count sum avg 等等。一天60毫秒。
藍色框才是業務常用的一個月度的小報表,1秒。
綠色框更加常見,某個使用者的一個月的資料。140毫秒。
白色框,是某個使用者的三個月的資料。380毫秒。
表結構如下:
可見在1000萬級別下,使用索引查詢。最慢的不超過1秒。(PG和Oracle 同樣下不得不說比MySQL還要快一點)
如果說用大資料去查,資料同步都不止這個時間。別說MapReduce的時間了。還有資料預熱和載入。
其實很多時候我們本地就能好好的完成任務了。
這是因為我們索引一共才3層。三次IO就行了。一次IO 5-10ms。所以說根本不可能慢。
select b.name,a.name,index_id,type,a.space,a.page_no from information_schema.innodb_sys_indexes a, information_schema.innodb_sys_tables b where a.table_id=b.table_id and a.space<>0 and b.name like '%money2%';
指定的偏移量的計算公式是page_no * innodb_page_size + 64。
49216 = 3 * 16384 +64 上面的49216是這麼來的。
這裡的0200是16進位制。看著有點費勁是吧?
因為原理是相同的,直接看Oracle的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847336/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 沒有基礎也能學好Python的方法?Python
- MySQL NOT NULL列用 WHERE IS NULL 也能查到資料的原因MySqlNull
- 沒有白費的努力 也沒有碰巧的成功
- 沒有JDK和Maven,用Docker也能構建Maven工程JDKMavenDocker
- 沒有螢幕也能遠端控制?ToDesk的虛擬屏做到了!
- 沒有地圖也能導航?DeepMind用街景來認路地圖
- 商業戰場沒有惡龍,也沒有勇者
- MySQL中陣列的儲存MySql陣列
- 共享WiFi也能掙紅包?斐訊:沒有什麼不可能!WiFi
- 沒有儲存的word文件怎麼找回來 恢復沒有儲存的word文件
- 聊聊mysql的單列多值儲存MySql
- linux系統中既沒有yum命令也沒有wget命令Linuxwget
- PHP 結合 MySQL 千萬級資料處理PHPMySql
- 有了它,Golang 也能 Eval 了Golang
- 什麼是行儲存和列儲存?正排索引和倒排索引?MySQL既不是倒排索引,也索引MySql
- 有沒有支援複雜報表的 BI 產品
- 斷電也能儲存資料的MRAM技術精髓
- 微信小程式搭配小白介面,自己沒有伺服器也能開發哦微信小程式伺服器
- 你知道MySQL是如何處理千萬級資料的嗎?MySql
- 小白也能懂的Mysql資料庫索引詳解MySql資料庫索引
- 沒學過線代也能讀懂的CSS3 matrixCSSS3
- MySQL 千萬級資料表 partition 實戰應用MySql
- PHP+MySQL 千萬級資料處理案例(一)PHPMySql
- 陣列真的不難!!千萬不要給自己錯覺......看完你也明白!!!陣列
- 沒辦法了,用 MySQL 做全文檢索也挺好的MySql
- 面試官:你講下如何設計支援千萬級別的短鏈?面試
- 單產品月收入超1億,他們找到了沒有版號也能賺錢的路子?
- 香港沒有支援node的虛擬主機嗎
- MySQL千萬級大表線上變更表結構MySql
- Oracle有沒有MySQL的分割槽DDL遇到的問題OracleMySql
- win10工作列沒有反應怎麼辦 win10工作列沒有反應的方法Win10
- 千萬級MySQL資料庫建立索引,提高效能的祕訣MySql資料庫索引
- Eclipse解決JavaScript等支援問題(沒有高亮,沒有程式碼提示)EclipseJavaScript
- mysql 查詢,字串帶著空格也能匹配上MySql字串
- 《Machine Learning in Action》—— 懂的都懂,不懂的也能懂。非線性支援向量機Mac
- MySQL的count(*)的優化,獲取千萬級資料表的總行數MySql優化
- 鬆野泰己的原案也沒能拯救《Unsung Story》的沉悶和原始
- 找二維陣列中的鞍點:即該位置上的元素在該行最大,在該列最小(也可能沒有鞍點)陣列