Форум программистов CodeGuru
18 Сентябрь 2018, 23:08:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование индексов в mysql 5.0.51b  (Прочитано 19668 раз)
0 Пользователей и 1 Гость смотрят эту тему.
XBuddy
Новичок
*
Офлайн Офлайн

Сообщений: 9


Бойсо меня


Просмотр профиля
« : 04 Июль 2008, 10:39:04 »

столкнулся со странной проблемой есть таблица
CREATE TABLE `pro_user_data` (
`id_user` int(11) NOT NULL default '0',
`id_value` tinyint(3) unsigned NOT NULL default '0',
`value` enum('0','1') default '0',
`comment` varchar(128) NOT NULL default '',
PRIMARY KEY (`id_user`,`id_value`),
KEY `id_value` (`id_value`,`value`)
)

Делаю запрос SELECT * FROM `pro_user_data` WHERE id_value=0 and value='1'
на моем локальном компе (mysql 5.0.45-community-nt) Explain выдает что индекс id_value используется для выборки, на сервере (mysql 5.0.51b-community-nt-log) тот же самый запрос, по этой же самой таблице выдает что индекс не может быть использован.
В чем может быть проблема, ведь индекс идеально подходит для условия поиска? Разница между обьемом данных на локальном компе и серваком ну где то раз в 5, т.е. на серваке в 5 раз больше записей. Может быть такое что при превышении какого то критиечского обьема данных, мускуль перестает юзать индекс? Или например изза нехватки оперативки на сервере?
Записан
XBuddy
Новичок
*
Офлайн Офлайн

Сообщений: 9


Бойсо меня


Просмотр профиля
« Ответ #1 : 04 Июль 2008, 11:16:02 »

не поверите насколько мускуль умный. Изза того что в таблице все записи были одинкавы, т.е. index cardinality=1, он изза этого его не использовал, ибо смысла не было:)
Записан
c-coder
Пользователь
***
Офлайн Офлайн

Сообщений: 110


Просмотр профиля
« Ответ #2 : 14 Июль 2008, 18:29:42 »

Наверно надо ограниченния какие нибудь поставить.
Записан
XBuddy
Новичок
*
Офлайн Офлайн

Сообщений: 9


Бойсо меня


Просмотр профиля
« Ответ #3 : 15 Июль 2008, 00:14:41 »

да нет использование индекса в данном случае аналогично полному сканированию, тут даже незачем было использовать его. Кстати порою mysql отказывается от индекса в пользу полного сканирования, даже в случаях с index cardinality>1, просто потому что так быстрее.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!