以前說過關於phoenix在查詢的過程當中性能的問題,繼續探討。sql
最近一直在找合適的方法,能夠巧妙的完成sql和nosql的結合,總之就是利用sql的多條件查詢,能夠把儲存在nosql中的數據讀取出來。phoenix的底層就是hbase存儲,hbase的鍵值對查詢的速度是很快的,機會不會有性能的問題。那麼在phoenix的多條件查詢爲何會比較慢,耗時須要1000萬數據幾分鐘?nosql
我仔細對照了hbase中兩張不一樣的表,分別是A表和B表,A表數據700萬可是字段15個,字段存儲的數據比較小。B表400萬字段15個,每一個字段存儲的數據比較大。性能
查詢的結果以下:A表查詢時間17秒,B表查詢時間52秒。方法
從上面的結果能夠猜想,雖然A表的數據比較多,可是查詢速度比較快;B表相反。數據
緣由猜想:A表的存儲的數據比較小,B表存儲的數據比較大。因此,怎麼結合sql和Nosql存儲數據呢?查詢
個人辦法能夠供參考:查詢條件能夠按照關係型存儲,這樣能夠經過條件篩選出須要的數據;比較大的無關內容能夠按照鍵值對存儲,主鍵存儲在關係型的表格裏面。能夠大大的提高存儲的性能。時間