Очень много строк в таблице за день, поле ID делать int или varchar?
Друзья добрый день, вопрос по оптимизации, если ли принципиальная разница, какой тип использовать для индекса таблицы? Например в день в таблицу добавляется около 1000-5000 строк, в int ограничение в 11 символов, у варчара значительно больше, понимаю что такое число не скоро забьется, но все же когда нибудь это случится, можно ли использовать varchar вместо int и на сколько это повлияет на производительность?
ну максимальный объем же 11 символов? т.е. если верить справочникам, то 2147483647 максимально возможный ID, это конечно много, но и объемы в день не маленькие, к тому же регулярно растут. Не почувствую я скорее всего при базе в 100к записей, а если записей 10 -20 лямов, что тогда?
И еще один смежный вопрос если позволите, тип int занимает 4 байта, а bigint 8 я так понимаю что одно и тоже число например: 999 будет занимать в int (4+4+4 = 12 байт) а в bigint (8+8+8 = 24 байт)? ход моих мыслей правилен, или нет?
Я вот случайно только заметил, что вы написали еще один вопрос в комментариях. На будущее, писали бы лучше отдельный вопрос. Или хотя-бы в комментариях к тем, кто дает ответы, а не самому себе - оповещение ведь только вам пришло.
999 в двоичном виде записывается так: 1111100111
В одном байте обычно 8 бит (хотя не всегда и не везде, об этом можно почитать хоть в википедии).
Если int на вашей платформе это 4 бита, то int 999 в будет записано как 00000000000000000000001111100111 4x8=32 бита
а bigint 999 8x8=64 бита
Если данные только численные, то хранить всегда только в числовом виде (для целочисленных значений int, bigint и др.). Это сократит занимаемое место (в большинстве ситуаций), упростит и ускорит индексацию, ускорит логические (<,>,вхождение в диапазон и т.д.) и арифметические (+,-,*,/,...) операции.