Въпросче за индекси

1 отговора 86 прегледа
#1

Въпросче за индекси

здравейте
значи, имам таблица в която 2 от колоните са както следва:

id smallint primary key
price decimal(4,2) not null

SQL-а който използвам, за да взема данни е:
SELECT id FROM table_name WHERE price > 0;

price ми е индексирана колона.
Тъй като рядко price ще е 0, този индекс не се използва, поне по сегашните ми наблюдения.
Има ли начин да оптимизирам заявката.
благодаря.

P.S. базата данни е MySQL.

Отговор
в отговор на pipupip #2

Re: Въпросче за индекси

Не.

Щом казваш, че "рядко ще е 0" едва ли въобще някога ще се използва а и ако приемем, че заявката връща 90% от редовете така или иначе няма никакво ускорение от индекса - дори можа да е по-бавно.


Ако това е единственото приложение на този индекс просто го махни за да не бави INSERT, UPDATE, DELETE

Виж ако имаш заявки от рода на
... WHERE price > 9999;
... WHERE price < 25;
... WHERE price BETWEEN 100 AND 256;

за някои случаи индексът ще ти върши работа ... EXPLAIN...

EXPLAIN SELECT id FROM table_name WHERE ...;

salle.online.bg/sig
Отговор