首頁 >後端開發 >php教程 >mysql的MEMORY引擎為什麼應用沒有redis的應用廣泛?

mysql的MEMORY引擎為什麼應用沒有redis的應用廣泛?

WBOY
WBOY原創
2016-09-02 08:57:051122瀏覽

我看很多人寧願用redis儲存資料的json也不會用mysql的MEMORY引擎,請問是這個引擎效能差還是什麼原因嗎?我觀察過國內一些開源專案基本上也沒有用到這個引擎,這是為什麼吶?

回覆內容:

我看很多人寧願用redis儲存資料的json也不會用mysql的MEMORY引擎,請問是這個引擎效能差還是什麼原因嗎?我觀察過國內一些開源專案基本上也沒有用到這個引擎,這是為什麼吶?

  1. 很多時間存的資料格式比較複雜,KV方式然後存JSON格式比較方便,容易解析

  2. 可靠性方面redis好一些 -- MySQL的Memory表掉電後會丟數據,redis好一些

首先:redis的速度比mysql快好幾個數量級。
所以:
1.資料量不太大 && 資料量經常存取 放到redis裡比較好。 這裡的資料量大小可以參考redis伺服器記憶體的大小。如果資料量小於redis伺服器記憶體大小的話,就是可以考慮放入redis的。

2.redis存取比mysql更簡單。

先來了解 MySQL 的 Memory engine 吧

<code>http://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html
</code>

看看有多少 Unsupport 的。

回到跟 Redis 的比較,就扯三點吧

  1. Mysql 的 Memory engine 不支援 expire_date,我得手動刪除吧?

  2. 儲存資料前,我得建表吧,如果我的資料不是行列的,那是無序的呢?

  3. 你回傳給前端的是 JSON 字串,還是你從資料庫取出來序列化的 Model 類別呢?那我為什麼不直接從 Redis 裡面取個 JSON 字串出來直接回傳呢。

當然以上 Mysql 的 Memory engine 也可以辦到,但是痛苦指數就上升了很多,說明它不是很適合以上場景,總不能用剪刀去砍木頭吧?雖然也砍得下來。

至於更深層的原子性之類的比較,0 - 0我覺得還沒到討論這個東西出場的份兒,因為你會跟苦瓜和蘋果比甜度?

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn