Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Почему VARCHAR бфстрее INT  [new]
orbita2000
Member

Откуда:
Сообщений: 2
Приветствую! Прошу помощи разобраться.

Есть таблица - лог визитов на сайт. В ней IP хранятся в виде ip2long т.е. чистой цифрой.
На поле ip стоит индекс.

Делаю выборку по IP:
SELECT count(*) FROM `db_log` WHERE ip='787290000'

Не пойму прикола по скорости выборки:
Если тип поля IP установить:
int(11) - то выбирает за 0,050 сек. (долго)
varchar(11) - то выбирает за 0,001 сек. (быстро)

Мне кажется должно быть наоборот и вообще непонятно откуда такая разница?


Вот результаты EXPLAIN
EXPLAIN SELECT count(*) FROM `psy_log` WHERE ip='787290000'

При: INT(11)
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE psy_log ref ip ip 4 const 17503 Using index

При: VARCHAR(11)
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE psy_log ref ip ip 13 const 6441 Using where; Using index
24 окт 13, 10:42    [15024551]     Ответить | Цитировать Сообщить модератору
 Re: Почему VARCHAR бфстрее INT  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
неочень ясно вы и когда у вас поле инт - передаете его как строку ? (WHERE ip='787290000')
24 окт 13, 10:45    [15024567]     Ответить | Цитировать Сообщить модератору
 Re: Почему VARCHAR бфстрее INT  [new]
Гость333
Member

Откуда:
Сообщений: 3683
orbita2000,

У вас ведь MySQL, да?
24 окт 13, 10:47    [15024585]     Ответить | Цитировать Сообщить модератору
 Re: Почему VARCHAR бфстрее INT  [new]
Glory
Member

Откуда:
Сообщений: 104760
orbita2000
Вот результаты EXPLAIN

И причем тут Microsoft SQL Server ?
24 окт 13, 10:48    [15024588]     Ответить | Цитировать Сообщить модератору
 Re: Почему VARCHAR бфстрее INT  [new]
kalimba
Member

Откуда:
Сообщений: 297
В SQL Server есть EXPLAIN? Я что-то пропустил? )
24 окт 13, 10:48    [15024590]     Ответить | Цитировать Сообщить модератору
 Re: Почему VARCHAR бфстрее INT  [new]
orbita2000
Member

Откуда:
Сообщений: 2
Прошу прощения, не в тот раздел запостил )
MySQL
24 окт 13, 10:51    [15024614]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить