Вверх ↑
Ответов: 655
Рейтинг: 18
#1: 2014-07-03 02:21:26 ЛС | профиль | цитата
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); - такой вариант приемлим? или можно красивше\практичнее??







карма: 0

0