У меня есть построение столбца в mysql db, оно хранит значение - 10000 в TINYINT
, что, если я изменю его на 10k VARCHAR
, какой из них будет лучше?Mysql TINYINT & VARCHAR performance
ex. 10000, 20000, 30000 .... или 10k, 20k, 30k ...
У меня есть построение столбца в mysql db, оно хранит значение - 10000 в TINYINT
, что, если я изменю его на 10k VARCHAR
, какой из них будет лучше?Mysql TINYINT & VARCHAR performance
ex. 10000, 20000, 30000 .... или 10k, 20k, 30k ...
Если вы просто выбираете значение, это не имеет значения.
Но если вы используете его в таком состоянии, то производительность будет лучше, используя int
. Пример:
select * from your_table
where your_column > 1000
будет работать только, если столбец является int
и вам не нужно, чтобы преобразовать его обратно в номер.
Обычно, если это номер, храните его как номер.
varchar будет 10k VARCHAR (3), 10000 TINYINT (5), будет ли это вопрос – user2178521
'tinyint (5)' - маленький int от '0' до' 255'. 'varchar (3)' имеет 3 или более байта. В любом случае, varchar больше пространства. –
Thx много! Это действительно помогает! – user2178521
Большой вопрос - поможет ли это вашему проекту? С помощью TINYINT
вы можете выполнять на нем математические операции. Вы не можете сделать это с VARCHAR
, так как ваши номера будут строкой. Конечно, вы можете манипулировать строкой в число, но это будет стоить вам производительности, а также необходимости делать дополнительный код (который может излишне усложнять SQL или другой язык).
Если вы собираетесь сделать значение числом, то непременно сделайте его целым числом. Есть причина, по которой действительно умные люди делали разницу между строками &.
Зависит от того, что вы делаете с этим. –