Java數據庫開發

Nosql數據庫使用場景sql

首先須要確認一個問題,nosql能作什麼?在如今的開發領域中nosql能夠實現文檔存儲(BSON、JSON)、緩存存儲、圖像緩存(圖像搜索),可是對於nosql的具體應用場景徹底要根據你實際的業務來說;數據庫

· 在傳統的開發之中因爲常常要使用到多表查詢,性能不好,因此能夠將一些常常顯示的數據整理到文檔型的nosql數據庫(MongoDB),可是如今這個文檔型的nosql使用愈來愈少,能夠忽略了;緩存

·緩存型:例如在進行分佈開發的時候session存儲、作一些臨時的數據,例如:購物車、短信驗證碼等,如今使用最多的緩存數據庫就是Redis(能夠保存在磁盤,斷電後數據能夠被保存下來);session

使用Redis實現消息隊列,可使用更加高級的RabbitMQ,Kafka實現更方便。less

優勢:能夠實現每秒近乎10W次的讀寫處理。nosql


數據庫優化有不少層次。性能

1. 語句上的優化:儘可能不要去使用多表查詢,儘可能不要頻繁的使用各類神奇的統計查詢、若是須要的時候建議使用子查詢來代替(子查詢只是一種折中方案也不是最好的,只是相對的,當你的數據量暴大的時候,那麼你全部認知的規則就所有都將改變)。優化

2. 數據庫的優化只可以體如今查詢上,而這個查詢仍是在認知範圍內的數據量,例如使用索引,可是一旦使用了索引,就不可以進行頻繁的修改,例如:在主鍵每每會設置索引,可是從另一個角度,數據不該該進行物理刪除,而要進行邏輯刪除,只是爲了保證索引不被從新建立;搜索引擎

空間換時間、時間換空間:你的數據是否須要進行同步處理操做。阿里雲

3. 當存在有多個RPC業務端的時候,能夠考慮進行垂直拆庫的作法,這個時候只可以按照功能進行拆分,這個是須要強大的接口技術支持的;

4. 當分庫在沒法解決問題的時候就須要考慮數據庫的水平拆分問題(認知範圍內的惟一可使用的最後方案);

5. 若是須要保證強大的查詢性能,那麼就須要再次引入搜索引擎的概念進行分詞處理;

更多數據庫精品課程:阿里雲大學——開發者課堂

相關文章
相關標籤/搜索