MySQL: сравнение с целым числом быстрее, чем с полем varchar? - PullRequest
0 голосов
/ 03 апреля 2012

В таблице 'test' у меня есть целочисленное поле TestID с индексом.

SELECT * FROM test WHERE TestID=1234

SELECT * FROM test WHERE TestID='1234'

SELECT * FROM test WHERE TestID=COALESCE(1234, 0)

SELECT * FROM test WHERE TestID=COALESCE('1234', '')

Сейчас я использую второй вариант, потому что в моем приложении часть 1234 вставляется динамически, итакже может быть NULL или пустой строкой, и я не хочу, чтобы оператор не выполнялся из-за этого.

Сколько будет разница в скорости между этими операторами или нет вообще?

1 Ответ

0 голосов
/ 03 апреля 2012

Если ваш столбец TestID неиндексирован, тогда varchar будет медленнее, чем целое число. Но если это поле проиндексировано, разницы в скорости практически не будет.

P.S. если ваши строки действительно длинные - index будет более объемным, поэтому в этом случае использование integer будет более предпочтительно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...