Въпросче за индекси
1 отговора
86 прегледа
Въпросче за индекси
здравейте
значи, имам таблица в която 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.
значи, имам таблица в която 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.
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
Щом казваш, че "рядко ще е 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