Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Индексирование по 2м полям раздельно или вместе.

Сообщения:  [1-3] 

 
 автор: FaStY   (11.07.2009 в 11:02)   письмо автору
 
   для: .   (11.07.2009 в 00:51)
 

Т.е. получается, что при запросе
Select * FROM table WHERE user_id = 1 AND game_id = 1

Если у меня есть 2 индекса: user_id и game_id. То будет работать быстрее, чем у меня один индекс на 2 поля (user_id,game_id) ? почему так?

  Ответить  
 
 автор: .   (11.07.2009 в 00:51)
 
   для: FaStY   (10.07.2009 в 23:59)
 

Перед использованием какой-то штуки надо прочитать как ей пользоваться. В rows содержится количество рядов, которое MySQL необходимо проверить, чтобы вернуть ответ. Очевидно, что второй случай лучше.

  Ответить  
 
 автор: FaStY   (10.07.2009 в 23:59)   письмо автору
 
 

Подскажите, у меня есть таблица-связка, где показываются игры сыгранные пользователем. подскажите, мне индекс создавать по каждому полю (user_id и game_id), или делать общий индекс на оба эти поля? Вот я провел эксперимент через explain сделал выборку

id    selext type        table    type            possible_keys                key                    key_len    ref                rows    Extra

1    SIMPLE            table    ref                 user_id,game_id,user_id_2     user_id_2            10        const,const        240        Using where

1    SIMPLE            table    index_merge        user_id,game_id                user_id,game_id        5,5        null            6        Using intersect(user_id,game_id); Using where

по скорости оба запроса однинаковые (походу просто закэшировалось)
Объясните пожалуйста, почему во втором случае выводится row 6, хотя если я убираю explain у меня показывает 240 рядов.
Заранее спасибо.

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования