mysql 是乙個最流行的關係型資料庫,在網際網路產品中應用比較廣泛。一般情況下,mysql 資料庫是選擇的第一方案,基本上有 80% ~ 90% 的場景都是基於 mysql 資料庫的。因為,需要關係型資料庫進行管理,此外,業務存在許多事務性的操作,需要保證事務的強一致性。同時,可能還存在一些複雜的 sql 的查詢。值得注意的是,前期儘量減少表的聯合查詢,便於後期資料量增大的情況下,做資料庫的分庫分表。
隨著資料量的增長,mysql 已經滿足不了大型網際網路類應用的需求。因此,redis 基於記憶體儲存資料,可以極大的提高查詢效能,對產品在架構上很好的補充。例如,為了提高服務端介面的訪問速度,盡可能將讀頻率高的熱點資料存放在 redis 中。這個是非常典型的以空間換時間的策略,使用更多的記憶體換取 cpu 資源,通過增加系統的記憶體消耗,來加快程式的執行速度。
在某些場景下,可以充分的利用 redis 的特性,大大提高效率。這些場景包括快取,會話快取,時效性,訪問頻率,計數器,社交列表,記錄使用者判定資訊,交集、並集和差集,熱門列表與排行榜,最新動態等。
使用 redis 做快取的時候,需要考慮資料不一致與髒讀、快取更新機制、快取可用性、快取服務降級、快取穿透、快取預熱等快取使用問題。
mongodb 是對傳統關係型資料庫的補充,它非常適合高伸縮性的場景,它是可擴充套件性的表結構。基於這點,可以將預期範圍內,表結構可能會不斷擴充套件的 mysql 表結構,通過 mongodb 來儲存,這就可以保證表結構的擴充套件性。
此外,日誌系統資料量特別大,如果用 mongodb 資料庫儲存這些資料,利用分片集群支援海量資料,同時使用聚集分析和 mapreduce 的能力,是個很好的選擇。
mongodb 還適合儲存大尺寸的資料,gridfs 儲存方案就是基於 mongodb 的分布式檔案儲存系統。
hbase 適合海量資料的儲存與高效能實時查詢,它是執行於 hdfs 檔案系統之上,並且作為 mapreduce 分布式處理的目標資料庫,
資料庫選型
資料處理大致可以分成兩大類 聯機事務處理oltp on line transaction processing 聯機分析處理olap on line analytical processing 1 oltp是傳統的關係型資料庫的主要應用,主要是基本的 日常的事務處理,例如銀行交易。oltp 系統強調...
問題1 資料庫選型
關聯式資料庫 把資料組織為行,儲存在表上,是sql的基礎。作為幾十年的老產品,每個技術人員必須掌握的技術。關聯式資料庫最大優點是實現acid 原子性,一致性,隔離性,永續性 原則,一般要求強事務型別業務,都要使用關聯式資料庫儲存。典型代表,mysql 開源,要求dba技能高 oracle 功能強悍,...
記憶體資料庫技術選型
最近一段時間研究了記憶體資料庫,總結了一下,分享給大家。我們先從應用場景說起。一.記憶體資料庫的應用場景 二.業界有哪幾類主流的記憶體資料庫 1.關係型記憶體資料庫 2.鍵值對記憶體資料庫 3.傳統資料庫的記憶體資料庫引擎 還有oracle 的timesten sap的hana等,這些商業中介軟體不...