В моем приложении чата каждому сообщению нужен уникальный идентификатор. В традиционных реляционных базах данных, таких как MySQL, я бы использовал в качестве первичного ключа автоинкрементное целое число. Поскольку GridDB изначально не поддерживает автоматическое увеличение идентификаторов, мне нужен надежный способ создания уникальных идентификаторов для сообщений чата, который мог бы обрабатывать высокий уровень параллелизма, поскольку несколько пользователей могут отправлять сообщения одновременно.
Я попробовал объединение текущей отметки времени со случайным числом:
Я создаю приложение для чата в реальном времени с помощью Laravel и хочу использовать GridDB в качестве базы данных из-за его высокой производительности при работе с данными временных рядов. Поскольку у GridDB нет официального PHP-клиента, я настроил специальную интеграцию с использованием API промежуточного программного обеспечения на Python, который взаимодействует с GridDB. Мое приложение Laravel взаимодействует с этим промежуточным программным обеспечением через HTTP-запросы.
В моем приложении чата каждому сообщению нужен уникальный идентификатор. В традиционных реляционных базах данных, таких как MySQL, я бы использовал в качестве первичного ключа автоинкрементное целое число. Поскольку GridDB изначально не поддерживает автоматическое увеличение идентификаторов, мне нужен надежный способ создания уникальных идентификаторов для сообщений чата, который мог бы обрабатывать высокий уровень параллелизма, поскольку несколько пользователей могут отправлять сообщения одновременно.
Я попробовал объединение текущей отметки времени со случайным числом:
Код: Выделить всё
$messageId = time() . mt_rand(1000, 9999);
Я попытался имитировать автоматическое приращение, запрашивая максимальное значение. существующий идентификатор и его увеличение:
Код: Выделить всё
$maxId = $this->getMaxMessageIdFromGridDB();
$messageId = $maxId + 1;
Будет ли использоваться GridDB TIMESTAMP ключ строки с точностью до доли секунды может стать подходящим вариантом для уникальных идентификаторов?
Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-griddb