Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
Появилась необходимость разобраться с PostgreSQL. Я начинаю понимать что переход с MySQL бдует очень болезненный. Версия PostgreSQL 7.3.15 поставленная с пакета Комп: Core 2 duo 1.8 с 2 гигами оперативы под FreeBDS 6.2 Вопрос: Есть таблица "a" с полем "b" в которой всего 1.5 млн. записей. Я хочу сделать select distinct(b) from a; - 22 сек. select count(distinct(b)) from a; - 9 сек. А у уникальных значений всего 500. Попытки строить индексы по b: btree и hash. Я вот не понимаю: что индекс никак не помагает в этой операции? ОФТОП: Да и вообще count, который пробегает все записи - что это за бред!? Или автоинкримент через сиквенсы и некствал. А max и min который не использует индескы!? Где удобство!? Мы уже 21 веке, когда корабли бороздят просторы космотра, и в свет выходит Microsoft surface но PostgreSQL по моему забыли где-то в прошлом веке! Я посотроил пару ключей, ключей но не один из них мне не дал хоть какой-то прирост, хотя в одном случае explain мне сказал что мы юзаем индекс! Может есть что-то не сильно длинное почитать об этих всех недочетах и как их обходить!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:00 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
авторМы уже 21 веке, когда корабли бороздят просторы космотра, и в свет выходит Microsoft surface... а кто-то ещё умудряется ставить PostgreSQL 7.3 .15 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:04 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
Вы еще в 8 Oracle'е TIMESTAMPы поищите ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:06 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
VassozДа и вообще count, который пробегает все записи - что это за бред!? так сделано, как обходить это в поиск по форуму/мейлинг листам/гуглу VassozИли автоинкримент через сиквенсы и некствал. Чем вам сиквенсы не угодили? (в оракле они живут уже сколько лет и есть не просят) VassozА max и min который не использует индескы!? сейчас уже используют вроде (не проверял специально) VassozPostgreSQL 7.3.15 ... Где удобство!? Мы уже 21 веке, когда корабли бороздят просторы космотра, и в свет выходит Microsoft surface но PostgreSQL по моему забыли где-то в прошлом веке! Мы уже в 21 веке, а вы до сих пор 7.х ветку пользуете. ССЗБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:09 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
VassozЯ хочу сделать select distinct(b) from a; - 22 сек. select count(distinct(b)) from a; - 9 сек. Попробуй: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:21 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
st_sergДа и вообще count, который пробегает все записи - что это за бред!? так сделано, как обходить это в поиск по форуму/мейлинг листам/гуглу Да я полистал. Это уже в разделе офтоп написал я. st_sergЧем вам сиквенсы не угодили? (в оракле они живут уже сколько лет и есть не просят) Просто сравненивая с MySQL... st_serg Мы уже в 21 веке, а вы до сих пор 7.х ветку пользуете. ССЗБ. Моя б воля... Сами понимаете, не от хорошей жизни. Я как раз базу буду мингрировать в постгре посвежее. Хоть обманите меня что там все хорошо :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:22 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
VassozЕсть таблица "a" с полем "b" в которой всего 1.5 млн. записей. Я хочу сделать select distinct(b) from a; - 22 сек. select count(distinct(b)) from a; - 9 сек. А у уникальных значений всего 500. Попытки строить индексы по b: btree и hash. Я вот не понимаю: что индекс никак не помагает в этой операции?Не помогает. Можно ускорить через plpgsql, смотри http://sql.ru/forum/actualthread.aspx?tid=392601#3745890 . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 17:59 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
Funny_Falcon Попробуй: Код: plaintext 1. 2. Я до этого догшел своими размышлениями и сразу проверил. Индекс не пользует. Тянет послдовательность и сортит потом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 18:35 |
|
||
|
distinct и другие неприятности
|
|||
|---|---|---|---|
|
#18+
Кстати: VassozОФТОП: Да и вообще count, который пробегает все записи - что это за бред!? А вы почитайте документацию к MySQL InnoDB в разделе оптимизации - тоже самое - очень не советуют делать select count(*) from table - ибо тоже версионник. VassozА max и min который не использует индескы!? Версия 8.1.9: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 12:27 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=53&tid=2005139]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
87ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 430ms |

| 0 / 0 |
