У нас есть таблица, которая будет, скажем, от 100 миллионов до миллиарда строк (Имя таблицы: Архив)
На эту таблицу будут ссылаться из другой таблицы, Пользователи.
У нас есть 2 варианта первичного ключа в таблице Archive:
вариант 1: dataID (bigint)
вариант 2: userID + datetime (4-байтовая версия).
Схема:
Пользователи
- userID (int)
Архив
- Идентификатор пользователя
- дата и время
OR
Архив
- dataID (большой int)
Какой из них будет быстрее?
Мы уклоняемся от использования варианта № 1, поскольку bigint имеет размер 8 байт и 100 миллионов строк, которые в сумме добавят объем памяти.
Обновление
Хорошо, извините, я забыл упомянуть, userID и datetime должны быть независимо друг от друга, поэтому мы не добавили еще один столбец dataID в таблицу.