Почему бы не использовать MySQL как memcached?
По той же причине имеет смысл использовать как NoSQL, так и RDBMS в одном приложении. Для меня имеет смысл иметь кэш RDBMS помимо кеша NoSQL.
Я думал об использовании сервера MySQL со всеми таблицами, используя механизм памяти.
Есть ли предостережение в отношении этого подхода?
Просто чтобы уточнить, я предлагаю здесь использовать сервер MySQL только для целей кэширования, а не для фактического хранения данных моего приложения.
3 ответа
Таблицы памяти хранятся полностью в памяти, поэтому это очень быстро.
Он использует хеш-индексы, которые также очень быстры, отлично подходят для временных таблиц и поиска.
Таблицы памяти имеют блокировки на уровне таблиц, поэтому, если требуется параллелизм, это является проблемой
Нет транзакций
Когда сервер выключается или падает, ВСЕ СТРОКИ УТЕРЯНЫ
хотя определение таблицы остается прежним, все данные исчезнут.
Вы можете проверить официальные документы на движке памяти
РЕДАКТИРОВАТЬ:
Модуль Memory Storage Engine является хорошим кандидатом для целей кэширования.
Вот несколько вещей, для которых хорошо работает модуль памяти:
- Таблицы поиска / сопоставления
- кеширование результатов периодически добавляемых данных
- для анализа данных
- Управление сессиями
- Операции с низкой задержкой
- Лучше, чем другие стратегии, такие как
CREATE TEMPORARY TABLE
как таблица памяти сохраняется (если это то, что вам нужно)
Есть несколько минусов:
- Он не поддерживает столбцы TEXT или BLOB, таблица будет преобразована в MyISAM на диске, если такое событие произойдет.
- Таблица не должна содержать слишком много данных, так как она требует ресурсов, которые в противном случае могут быть выделены для индексов / кэшей запросов.
В целом, механизм памяти должен быть лучшим выбором для вас, если вам нужно кэширование.
Если вы получили $$, следующая статья о возможностях MySQL и InnoDB будет очень интересна.
Он превосходит любой вид кеша, памяти или memcached. Недостаток - это требует оперативной памяти, много этого.
Другой причиной,
ОЗУ сильно ограничено по сравнению с дисковым пространством,
Вы можете иметь диск до терабайт,
но вряд ли может позволить памяти идти до терабайтов