Tad, хочу посоветоваться с Вами.
По вашей рекомендации отделил таблицу orders от исполнителей.
Теперь есть 3 таблицы users, orders, job, последняя имеет внешние ключи для связи с таблицами orders и users.
Таблица orders:
id
service -заказ
price1 -сумма заказа
price2 -сумма пердоплаты
cash - тип оплаты
dt1 -время создания заказа
dt2 -вермя завершения заказа
status -стату выполнения
Вопрос по индексам:
Если я создам индекс например create index newIndx on orders(price1, status);
То при запросе select * from orders where price1>500 and status>1 то сначало найдутся все заказы где цена>500 и потом уже в найденом будет искать те заказы статус которых>1?
А если я создам index newIndx1 on orders(price1); и index newIndx2 on orders(status); то при запросе приведенном выше таблица будет перелопачиваться Sqlite'ом 2 раза? т.е. мы тут не повышаем производительность а наоборот?
(про моих баранов)
Селекты по таблице orders в 99% случаев планируется делать по столбцам id, cash, status и по диапазону дат dt1 и dt2.
status и cash можно быстро получить по id который integer primary key,но будут и запросы для диапазона дат по которым нужно будет получать теже самые status и cash.
create index order_index on orders(cash,status,dt1,dt2); - такой вариант приемлим? или можно красивше\практичнее??
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
|