|
|
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 10:42:37 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
А в первом случае нет агрегирования... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 12:05:41 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
Оно там не нужно. Результат выборки сортируется в обратном порядке, поэтому max дата будет вверху списка. Далее стоит директива rows 1, т.е. выдать только одну эту строку. (причём всю!!!) Потом нет необходимости выполнять ещё один запрос или лепить запрос с подзапросом на max дату. Но вот операций-то чтения 27, а не 2 и не 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 12:42:25 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
Привет. Оно там не нужно. Результат выборки сортируется в обратном порядке, поэтому max дата будет вверху списка. Далее стоит директива rows 1, т.е. выдать только одну эту строку. (причём всю!!!) Потом нет необходимости выполнять ещё один запрос или лепить запрос с подзапросом на max дату. Но вот операций-то чтения 27, а не 2 и не 3. Дак ведь сервер сначала должен перелопатить все строки, проверить удовлетворяют ли они where, затем отсортировать, а уж потом из результата выдать первую строчку. Т.е. fetch <> read. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 13:12:39 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
ЛентяйДак ведь сервер сначала должен перелопатить все строки, Блин, ёбтть! А я о чём? Почему выборка 27 строк через сортировку идёт В РАЗЫ быстрее чем выборка 3-5 строк через агрегирование. И можно ли агрегирование довести до нужной скорости или выборку и сортировку 27 строк скинуть до 4-5 строк??? Какую комбинацию индексов для этого сделать? Или бесполезно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 13:28:32 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
Предположения: В первом запросе (без агрегата) строится индексная битовая карта, а при каждом фетче (т.е. потом) происходит обращение к страницам данных. В случае агрегата обращение к страницам данных происходит на этапе выполнения запроса. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 13:53:51 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
Ты бы планы привел, что-ли... и статистику полную - reads/fetches и потабличные чтения (индексированные и нет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2004, 15:36:51 |
|
||
|
Работа индексов
|
|||
|---|---|---|---|
|
#18+
У меня все чтения индексные, иначе я себя уважать перестану. К тому же любые другие запросы отрегулированы так, что сколько записей попало в результат выборки — ровно столько операций индексного чтения и было сделано. (Иногда чуть больше на 3-5 чтений). Но в этих запросах результат 1 запись. И чтобы её выдернуть он делает без агрегата 27 чтений вместо допустимых 3-5, но менее чем за 1 мс, либо 3-5 чтений с агрегатом, но за 1.5 сек (зараза!). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2004, 16:55:56 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32593681&tid=1578311]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 467ms |

| 0 / 0 |
