2013-05-31 8 views
0

У меня есть построение столбца в mysql db, оно хранит значение - 10000 в TINYINT, что, если я изменю его на 10k VARCHAR, какой из них будет лучше?Mysql TINYINT & VARCHAR performance

ex. 10000, 20000, 30000 .... или 10k, 20k, 30k ...

+1

Зависит от того, что вы делаете с этим. –

ответ

3

Если вы просто выбираете значение, это не имеет значения.

Но если вы используете его в таком состоянии, то производительность будет лучше, используя int. Пример:

select * from your_table 
where your_column > 1000 

будет работать только, если столбец является int и вам не нужно, чтобы преобразовать его обратно в номер.

Обычно, если это номер, храните его как номер.

+0

varchar будет 10k VARCHAR (3), 10000 TINYINT (5), будет ли это вопрос – user2178521

+0

'tinyint (5)' - маленький int от '0' до' 255'. 'varchar (3)' имеет 3 или более байта. В любом случае, varchar больше пространства. –

+0

Thx много! Это действительно помогает! – user2178521

0

Большой вопрос - поможет ли это вашему проекту? С помощью TINYINT вы можете выполнять на нем математические операции. Вы не можете сделать это с VARCHAR, так как ваши номера будут строкой. Конечно, вы можете манипулировать строкой в ​​число, но это будет стоить вам производительности, а также необходимости делать дополнительный код (который может излишне усложнять SQL или другой язык).

Если вы собираетесь сделать значение числом, то непременно сделайте его целым числом. Есть причина, по которой действительно умные люди делали разницу между строками &.

Смежные вопросы