Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю, что такого Код: plaintext И подмечены ли какие-то траблы при индексе на выражение для числового поля ~(f1,(-f2))? (т.е. допетривает ли оптимизатор до юзания таких вещей при банальной сортировке по f1, f2 DESC)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 14:10 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Для int8 пример: Находим в pg_class operatorclass int8_ops, слегка меняем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 17:04 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Funny_Falcon грустно что надо изгибхитряцца и при этом еще и Funny_Falcon"теоретически" да, а такая новая фича как bitmap, при наличии индексов (f1 ASC) и (f2 ASC )сможет их по мере необходимости поюзать через свою хитрую кухню как (f1 ASC,f2 DESC)? (а то вжеж я тут полный профан - как оно, эта фича т.е., работаит, и фсё такое) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 17:44 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
"теоретически" - значит, что в ситуации, когда для оптимизатора равнозначно: - index (i, j) и order by i, j; - index (i,j int8_ops_desc); и order by i, j desc; В обоих случаях оптимизатор использовал индекс в данном простом примере только после натягивания за уши. И самое интересное - оптимизатор был прав: считать таблицу (2М записей) и отсортировать действительно получалось у него шустрее чем по индексу сканить. Может если в таблице будет больше мертвых версий (после update/delete) скан по индеку и будет эфективней, надо будет попробовать. Если запрос выберет обычный индекс для order by f1, if2,то этот же запрос выберет изменённый индекс для order by f1, f2 desc. Но это будет далеко не всегда, ибо оптимизатор cost-based а не rule-based И ЭТО ПРАВИЛЬНО !!!!! ;0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 10:47 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
А bitmap работает только для условий - для order by даже теоретически bitmap не приделаешь (просто если порасуждать) (покрайней мере я не могу себе это представить эффективно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 10:49 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
вот и интересно в т.ч. для условий where i>700 and i < 1000 AND j<50 order by i, j desc; что будет вообще говоря у меня задача такого вида Код: plaintext 1. 2. 3. кажется для нее неплох индекс (a,b,actual,id DESC) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 11:01 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Ну и проверь :-) Буду благодарен, если сообщищь результат. Код: plaintext 1. 2. 3. 4. 5. 6. А по поводу AND j<50 - только что прочитал в доке - будет скан по индексу с фильтром j<50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 18:46 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Funny_FalconА по поводу AND j<50 - только что прочитал в доке - будет скан по индексу с фильтром j<50.этто я погорячился. Это не эквивалентно лимиту. вот для i=xxx AND j<yyy должен чисто индекс работать. Вот кстати для твоей таблички (записей токмо изрядно поменьше): Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:31 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
PS как видим, у разработчиков Постгреса весьма смутные понятия об отношениях порядка и возможности их инверсии. гнустно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:33 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
4321PS как видим, у разработчиков Постгреса весьма смутные понятия об отношениях порядка и возможности их инверсии. гнустно. Или все-таки ясные? Вот например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:41 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
2 4321 Не explain, а explain analyze увидеть зотелось бы, ибо разница бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:43 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Не обращай внимания, я гоню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:44 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Странно, а у меня с лимитом сразу пошел индекс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:59 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat 4321PS как видим, у разработчиков Постгреса весьма смутные понятия об отношениях порядка и возможности их инверсии. гнустно. Или все-таки ясные? Вот например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. даже если считать, что мои наезды относились к данному типу инверсии, то: 1. выколотую точку (оо без знака или тот же нулл) всегда можно оставить выколотой точкой. Вы не находите? (кстати не пойму, почему Нулл - самое больше в постгресе - это чем то норматируецца? А то я привык шо нулл - самое махонькое) Инверитировать же прочее мн-во ничто не мешает без изгибхитрения усера. Кажецца индекс не настолько сложная структура, чтобы из нее низзя было выколоть единственную точку "на лету"? Вот для вас задача обхождения алгоритмом одной точки из упорядоченного мн-ва - действительно сложна ? 2. А если я напишу в поле Not Null - так что, вы продолжите настаивать на ястности понимания инверсии и требования от усера неких извращений? Я же имел в виду то, что вместо указания в индексе примитивного служебного ASC/DESC г-да разработчики видимо рекоменудют занимацца всякой лабудой методом копи-паста, не имеющей никакого отношения к проэктированию Б.Д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 11:15 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Funny_FalconСтранно, а у меня с лимитом сразу пошел индекс: так у меня ж индекс лругой - см. выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 11:18 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что реализовать возможность создания индексов по некоторым полям ASC, по другим - DESC, можно. Но мнения разработчиков постгреса на этот счет я не знаю. :) 43211. выколотую точку (оо без знака или тот же нулл) всегда можно оставить выколотой точкой. Вы не находите? Инверитировать же прочее мн-во ничто не мешает без изгибхитрения усера. Кажецца индекс не настолько сложная структура, чтобы из нее низзя было выколоть единственную точку "на лету"?По-моему да. Однако в постгресе поиск по IS NULL невозможен по индексу. Возможно, здесь кроется корень проблемы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 12:13 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatОднако в постгресе поиск по IS NULL невозможен по индексу. Возможно, здесь кроется корень проблемы. пожалуй это надо запомнить 11.2. Index TypesConstructs equivalent to combinations of these operators, such as BETWEEN and IN, can also be implemented with a B-tree index search. (But note that IS NULL is not equivalent to = and is not indexable.) Мдя. И как токо недоумки из мелкософт и т.п. этого не понимают (и индексируют Null не вдаваясь в глубокоученые соображения) ? Правда есть и тут отмазка - можно сделать так : Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 12:54 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
4321но не совсем понятно, зачем Filter: (в обоих) и Recheck Cond: если выборка шла по индексам?Recheck Cond, как я понимаю, нужен для Bitmap Index Scan, так как скан возвращает страницы, на каждой из которых находится несколько строк, то надо перепроверить каждую строку. А замена на (j is null)=true не избавит от фильтра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 14:34 |
|
||
|
CREATE INDEX (f1, f2 DESC) - как?
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatА замена на (j is null)=true не избавит от фильтра?Где замена? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33633135&tid=2006513]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 401ms |

| 0 / 0 |
