vanilich
@vanilich

Key/value значения. Как выбрать оптимальный способ хранения?

Доброго времени суток.
Разрабатываю Web-приложение (подробности опущу), где понадобилось скрывать реальные пользовательские ID (Primary Key в MySQL) за строкой фиксированной длины (хэшем). Хэши случайным образом генерируются при регистрации и заносятся в таблицу users_hashes вида:
| unique_hash | user_id |

Пример, где я это буду использовать:
Допустим, пользователь1 отправляет сообщение пользователю2, посредством ajax на сервер. Запрос выглядит так:
{
  "from": "c1fedb2d17ca40af1c27252646d8be48",
  "to": "7f5215959290e8ec6626e904d9e84648",
  "message": "some message..."
}

Сообщение приходит на сервер, где я должен найти такой же хэш в таблице "users_hashes" и вытащить соответственный ему ID пользователя, только затем поместив сообщение в бд. Я понимаю, что каждая такая выборка (хоть и не много), но будет нагружать сервер.

Короче, мне надо чтобы пользователь не узнал о своем ID (Детали проекта, к сожалению, разглашать не могу). И сделать весь этот процесс как можно более эффективным и быстрым.

Первая мысль, которая пришла в голову - это кэшировать полученные значения из users_hashes допустим в Memcache, и как раз вытаскивать ID пользователя по хэшу.

Буду благодарен любому ответу и конструктивной критике.
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 3
@IvanSenishin
Еще можно использовать redis
Ответ написан
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
ну в memcache и храните. Только.... А какая принципиальная разница между "мой id 6644" и "мой id c1fedb2d17ca40af1c27252646d8be48" ?
Ответ написан
@maxtm
Make money, not job
О каком объеме данных/запросов идет речь?
Если у Вас база меньше 250-300к юзеров, думаю, нет особой разницы где хранить - в мемкэше, или в mysql, в плане скорости и нагрузки.
На мой взгляд, если это не является на текущий момент узким горлышком, то это преждевременная оптимизация.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы