![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 127
|
Делаю в которой игроки распределены по комнатам. В комнате может быть от 2-х до 9-ти человек. При заходе нового игрока нужно его включить в комнату где минимальное количество игроков.
В БД сделал таблицу в которой записано в какой комнате сколько человек. room (Номер комнаты) members (число членов в комнате) timestamp (Последний пинг из комнаты) room - уникальный индекс members - индекс Запрос ниже не использует индекс А эти используют. SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<3 LIMIT 0,1 SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<4 LIMIT 0,1 SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<5 LIMIT 0,1 SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<6 LIMIT 0,1 SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<7 LIMIT 0,1 SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<8 LIMIT 0,1 SELECT `room`,`members` FROM `rooms` WHERE `rooms`>0 AND `members`<9 LIMIT 0,1 ![]() Если не писать `rooms`>0, то индекс используется Но я разделил комнаты на обычные публичные (`rooms`>0) и VIP (`rooms`<0) в VIP новых игроков добавлять нельзя. Как быть? Добавлено через 1 час 27 минут Все проблема решена. Добавил в таблицу еще одни столбец `type` Запрос ниже использует индекс. Только странным остается почему индекс не используется если написать `rooms` вроде тоже индексированный столбец. И в чем тут дело непонятно Добавлено через 1 час 28 минут Да а `type`, то как раз не индексированный. Последний раз редактировалось Андрей911; 05.04.2012 в 21:14. |
|
|||||
|
[+5 18.06.13]
[+1 20.07.13] Регистрация: Apr 2012
Адрес: ifinterface.com
Сообщений: 158
|
Я возможно не совсем понял, что за результат вы хотите получить,
но у MySql может стоит использовать конструкцию MIN(),MAX() с каким-то условием... Последний раз редактировалось ZicoRio; 17.04.2012 в 02:19. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:40. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|