Почему бы не использовать MySQL как memcached? - PullRequest
3 голосов
/ 22 июля 2011

По той же причине имеет смысл использовать как NoSQL, так и RDBMS в одном приложении. Для меня имеет смысл иметь кэш RDBMS помимо кеша NoSQL.

Я думал об использовании сервера MySQL со всемитаблиц с использованием механизма памяти.

Есть ли какие-либо предостережения в отношении этого подхода?

Просто для пояснения, я предлагаю здесь использовать сервер MySQL только для целей кэширования, а не для фактического хранения данных.моего заявления.

Ответы [ 3 ]

5 голосов
/ 22 июля 2011

Таблицы памяти хранятся полностью в памяти, поэтому это очень быстро.

Он использует хеш-индексы, которые также очень быстры, отлично подходят для временных таблиц и поиска.

Таблицы памяти имеют блокировки на уровне таблицы, поэтому, если требуется параллелизм, это проблема

Нет транзакций

Когда сервер отключается или аварийно завершает работу, ВСЕ СТРОКИ УТЕРЯНЫ

, хотя определение таблицы остается прежним, все данные будут удалены.

Возможно, вы захотите ознакомиться с официальными документами на модуле памяти

РЕДАКТИРОВАТЬ:

Механизм хранения памяти является хорошим кандидатомдля целей кэширования.

Вот несколько вещей, для которых хорошо подходит Memory Engine:

  • Таблицы поиска / отображения
  • кэширование результатов периодически добавляемых данных
  • для анализа данных
  • Управление сеансами
  • Операции с малой задержкой
  • Лучше, чем другие стратегии, такие как CREATE TEMPORARY TABLE, поскольку таблица памяти сохраняется (если это то, что вам нужно)

Есть несколько недостатков:

  • Он не поддерживает столбцы TEXT или BLOB, таблица будет преобразована в MyISAM на диске , еслитакое событие происходит.
  • Таблица не должна содержать слишком много данных, поскольку она потребляет ресурсы, которые в противном случае могут быть выделены для индексов / кэшей запросов

Все во всем ядре памятидолжен быть лучшим выбором для вас, если вам нужно кэширование.

0 голосов
/ 22 июля 2011

Если вы получили $$, следующая статья о возможностях MySQL и InnoDB будет очень интересна.

Превосходит любой тип кэша, памяти или memcached. Недостаток в том, что он требует оперативной памяти, очень много.

0 голосов
/ 22 июля 2011

другая причина,
ОЗУ сильно ограничено по сравнению с дисковым пространством,
Вы можете иметь диск до терабайт,
но вряд ли может позволить памяти идти до терабайта

...