Всем привет, давно мучает вопрос, но не могу найти конкретный ответ на него. Допустим есть интернет магазин, есть таблица с товарами, в таблице есть много полей, 2 поля это конкретно цена товара, пусть будет INT и дата создания товара, пусть будет DATETIME. Таблица скажем на 100,000 товаров. На самом сайте есть форма поиска, где человек может указать цену от и до и отсортировать по новым товарам. При поиске будут задействованы 2 поля, которые указал выше. Вопрос в том, что если ли смысл индексировать эти поля? Ведь поле дата создания товара, всегда будет иметь уникальные значения (практически невозможно создать 2 товара в одно и тоже время), если создать по нему индекс, то в индекс попадут все равно все значения из таблицы и при поиске по индексу базе все равно прийдется перебрать все записи. То же самое и по полю цена, тут дела обстоят немного лучше, но все равно будут доминировать уникальные значения и базе прийдется их перебирать. Так стоит индексировать такие поля?
@pr0n1x, у вас несколько извращённое понимание индексов, цена должна быть проиндексирована однозначно, по поводу даты добавления если на склад, то индекс по любому, если просто дата добавления на сайт, то смотря что за выборка будет по этому полю.
как понимать извращенное понимание индексов? как база ищет по индексу можете объяснить на примере цены?
Делает запрос к индексу, если найдет нужное, то это хорошо все быстренько выполнится. Если не найдет, делает общий запрос и будет два запроса что медленней соответственно.