1-1 MySQL:
1. 使用c和c++編寫,並使用了多種編譯器進行測試,保證源代碼的可移植性
2. 支持多種操做系統
3. 爲多種編程語言提供可API
4. 支持多線程,充分利用CPU資源
優化的SQL查詢算法,有效的提升查詢速度
5. 提供多語言支持,常見的編碼如:GB23十二、BIG五、UTF8
6. 提供TCP/IP、ODBC和JDBC等多種數據庫鏈接途徑
提供用於管理、檢查、優化數據庫操做的管理工具
7. 大型的數據庫。能夠處理擁有上千萬條記錄的大型數據庫
8.支持多種存儲引擎
9. MySQL軟件採用了雙受權政策,分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇MySQL做爲網站數據庫
10. MySQL使用標準的SQL數據語言形式
11. Mysql是能夠定製的,採用GPL協議,你能夠修改源碼來開發本身的MySQL系統
12. 在線DDL更改功能
13. 複製全局事務標識
14. 複製無崩潰從機
15.複製多線程從機
1-2. Redis:
1. Redis支持數據的持久化,能夠將內存中的數據保存在磁盤中,重啓的時候能夠再次加載進行使用。
2. Redis不單單支持簡單的key-value類型的數據,同時還提供list,set,在set,hash等數據結構的存儲。
3. Redis支持數據的備份,即master-slave模式的數據備份
4. 性能極高- Redis能讀的速度是110000次/s,寫的速度是81000次/s
5. 豐富的數據類型-Redis支持二進制案例的Strings,Lists,Hashes,Setes及Ordered Sets數據類型操做。
6. 原子 - Redis的全部操做都是原子性的,同時Redis還支持對幾個操做全並後的原子性執行。
7. 豐富的特性 - Redis還支持publish/subscribe,通知,key過時等等特性。
1-3. MongoDB:
1. 模式自由:能夠把不一樣結構的文檔存儲在同一個數據庫裏
2. 面向集合的存儲:適合存儲JSON風格文件的形式
3. 完整的索引支持,對任何屬性可索引
4. 複製和高可用性:支持服務器之間的數據複製,支持主-從模式及服務器之間的相互複製。複製的主要目的是提供冗餘及自動故障轉移
5. 自動分片:支持水平的數據庫集羣,可動態添加額外的機器
6.豐富的查詢:支持豐富的查詢表達方式,查詢指令使用JSON形式額標記,可輕易查詢文檔中的內嵌的對象及數組
7. 快速就地更新:查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃
8.高效的傳統存儲方式:支持二進制數據及大型對象mysql
MongoDB適用於
①網站數據:適合實時的插入,更新與查詢,並具有網站實時數據存儲所需對的複製及高度伸縮性;
②緩存:因爲性能很高,也適合做爲信息基礎設施的緩存層,在系統重啓以後,搭建的持久化緩存能夠避免下層的數據源過載;
③大尺寸、低價值的數據也是MongoDB的最佳選擇,使用傳統的關係數據庫存儲一些數據時可能會比較貴,再次以前不少程序員每每會選擇傳統的文件進行存儲
④高伸縮的場景,很是是個由數十或者數百臺服務器組成的數據庫
⑤用於對象及json數據的存儲,MongoDB的bson數據格式很是適合文檔格式化的存儲及查詢。
而mysql仍是更加適用於
①高度事務性的系統。例如銀行或者會計系統,傳統的關係型數據庫目前仍是更實用於須要大量原子性復瑣事務的應用程序
②傳統的商業智能應用,針對特定問題的BI數據庫會對產生高度優化的查詢方式,對於此類應用,數據倉庫多是更合適的選擇
Redis應用場景:
1. 用來作緩存-redis的全部數據時放在內存中的
2. 能夠在某些特定應用場景下替代傳統數據庫--好比社交類的應用
3. 在一些大型系統中,巧妙的實現一些特定的功能:session共享、購物車
4. MongoDB不支持SQL語句
---------------------
c++