Должен ли я хранить Unix время в отдельной таблице - PullRequest
2 голосов
/ 03 апреля 2020

Мое приложение записывает изменения статуса в разногласиях. (В сети, в автономном режиме, в режиме ожидания и DND) Это достигается с помощью discord.py и сервера SQL (MariaDB).

В частности, если я получаю сотни обновлений состояния в секунду (все с одинаковыми Unix отметка времени, поскольку они произошли в течение секунды друг от друга), следует ли мне хранить каждую отметку времени Unix в отдельной таблице с идентификатором для каждого?

Я задаю этот вопрос в надежде сэкономить место на диске в в долгосрочной перспективе.

Моя гипотеза состоит в том, что, если меньшее число хранится с меньшим количеством цифр (идентификатор, указывающий на временную метку), оно будет занимать меньше места, поскольку большая временная метка Unix не потребуется повторяться сотни раз.

1 Ответ

2 голосов
/ 03 апреля 2020

Ваше сообщение вызывает несколько вопросов / замечаний ...

  1. Вам действительно нужно хранить метки времени с точностью до секунды? Хранение с большим интервалом будет означать меньшее использование пространства.
  2. Вы можете использовать меньшее целое число для хранения меток времени с эпохой ближе к настоящему, чтобы вы могли использовать меньше места в целом, без необходимости новой таблицы.
  3. Возможно, вам следует рассмотреть возможность отбрасывания событий, которые происходят слишком часто. Если пользователь меняет статус 10 раз в минуту, может быть, не стоит записывать их все?
  4. Наконец, enum (smallint) и отметка времени не так уж велики в базе данных. Они обычно могут обрабатывать тысячи гигабайт "просто отлично"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...