吐槽 MySQL 5 6的NoSQL功能如「雞肋」

2021-06-17 01:12:57 字數 1426 閱讀 1122

2023年初,甲骨文公司發布了正式版的mysql 5.6資料庫(參考:甲骨文發布最新mysql 5.6版 ),其中增加了一些nosql特性,即通過memcached api對innodb的靈活nosql訪問,提供了innodb資料的簡單、關鍵值查詢。然而在一些業內人士看來,mysql 5.6的nosql功能卻形如「雞肋」。

大資料創業公司datastax的技術總監jonathan ellis近期就在部落格中對mysql 5.6的nosql功能進行了「深度」的吐槽,他認為甲骨文還沒有摸到nosql的門呢。以下就是jonathan ellis的幾個觀點:

1. 擴充套件性

普遍的觀點認為nosql的乙個主要優勢就是橫向擴充套件(scale out),這也是許多公司從mysql轉向nosql(cassandra)資料庫的乙個重要原因。而隨著mongodb的崛起,越來越多的公司也開始從mysql轉向mongodb陣營。

cassandra能夠簡單透明地在多個機器上進行擴充套件,它們可以是廉價的硬體組成的集群,而無需購買昂貴的伺服器或者san儲存。但同樣重要的是,透明地按需擴充套件和縮減集群的能力,使得公司能夠更好地利用雲的靈活性,針對小型工作負載可以新增合適的計算能力。這一點mysql 5.6是做不到的。

2. 持續可用性

cassandra的普及率在不斷的公升高,其中乙個原因就是擴多資料中心組成單一集群的能力。可協調的一致性使得cassandra能夠在資料中心內部進行同步複製,同時非同步複製到其他資料中心。

另一方面,基於主機的複製由於限制往往會造成較大的延遲,即便多主複製在關係型資料庫方面也無法解決這一問題,因為兩步提交機制也需要多個round-trip。

而通過多資料中心的無主複製,cassandra能夠對整個資料中心進行無縫的故障轉移,並在電力或連線修復之後對未同步的機器進行修復。

3. 靈活性

nosql另外乙個流行的原因,就是讓設計原型更加靈活,特別是面向文件型的資料庫,如mongodb。新增json的支援是非常有用的,就像postgresql最新的更新一樣。

但是mysql的memcached層只提供了乙個鍵值(key/value)api,在表達性方面存在巨大缺陷與限制。

4. 效能

基於b-tree的儲存引擎(innodb和myisam)事實上並不適合傳統磁碟和ssd,因為有很多小的隨機寫入操作。但為何關係型資料庫又是如此強勢呢,主要還是因為sql語義。比如,insert或update需要首先進行乙個行的讀取以確保它是否存在。

這也是為什麼mysql資料庫的寫效能在資料集增長的時候會隨之下降的原因。即使是針對相對合適的資料集,在混合的工作負載之下,這一結果也會逐漸顯現。

5. 查詢語言

在nosql世界中,相對不太重要的就是查詢語言,但甲骨文還是非常重視這一點,這也是沒辦法的事。比較諷刺的是,cassandra現在也開始越來越多地轉向sql語言,以改進分布式架構中的效能。而像 batch_mutate 和 get_slice_range這樣的複雜api已經被cassandra拋棄。

mysql5 6亂碼 mysql5 6亂碼

安裝mysql5.6版本遇到乙個問題,字符集亂碼,如下圖 由於是新安裝的本地資料庫,所以一定是配置的事情,查詢資料庫字符集配置,如下 有兩個是latin1的字符集,本人是window7環境,在網路找了很多資料,都顯示為修改 c program files mysql mysql server 5.6...

編譯mysql5 6 編譯安裝mysql5 6

mysqlwget tar zxvf mysql 5.6.33.tar.gz tar zxvf cmake 2.8.5.tar.gz cd cmake 2.8.5 安裝編譯工具.bootstrap prefix usr local cmake sudo gmake sudo gmake instal...

mysql5 6原始碼 mysql5 6原始碼部署

一.準備環境 環境 centos 7.3 一台 軟體版本 mysql 5.6.39 1.安裝依賴 yum y install autoconf libaio bison ncurses devel 2.建立使用者 groupadd mysql useradd g mysql s sbin nolog...