Ответы пользователя по тегу PostgreSQL
  • Изменение типа данных из numeric в integer?

    @whats
    Вы вопрос сами понимаете ? Анонимном блоке ? Что это такое ?
    Поменять тип у существующего столбца
    ALTER TABLE articles
        ALTER COLUMN manufacturer TYPE integer -> На какой тип меняем
        USING manufacturer::integer; -> Преобразовываем значения
    Ответ написан
  • Есть ли средство для нечеткого поиска по строкам в БД (Postgres или MySQL)?

    @whats
    В постгресе есть встроенный полнотекстовый поиск который это умеет делать, ни чем не медленнее сфинкса.
    Ответ написан
    Комментировать
  • В чем PostgreSQL лучше чем MySQL?

    @whats
    Всем лучше чем mysql
    Особенно функционалом и хранимыми процедурами.
    Репликация в 4 шага, так же легко как и mysql.
    Большинство статей сравнивают со скоростью, но это все бред. Реляционные базы это не скорость а удобство. Хотите скорость установите NOSQL. Но даже в этом случае база быстрее.

    Ну а самый главный плюс - это люди которые ее разрабатывают. Постоянное совершенство и следование стандартам. Чего нельзя сказать о гомункуле mysql
    Ответ написан
  • Как оптимизировать запрос PostgreSQL?

    @whats
    SELECT max(client_id), level1, level2, level3, 388 FROM client_4_level_group   group by client_id, level1, level2, level3

    Этим запросом ты формируешь список по уникальным полям. У тебя в этом списке будут все строки в которых все эти поля будут различаться. Какой смысл в уникальных строках что то агрегировать, когда значения в группе всегда будут одинаковыми ? Результат будет один и тот же
    SELECT client_id, level1, level2, level3, 388 FROM client_4_level_group   group by client_id, level1, level2, level3
    Ответ написан
    Комментировать
  • Выбрать строки в первой таблице по условию частоты во второй

    @whats
    Select 
        * 
    FROM 
        loy_transaction lt 
    JOIN 
        loy_bonus_transactions lbt 
    ON 
        lt.id = lbt.transaction_id 
    group by 
        lbt.shift_number , lbt.discount_card 
    HAVING count(*) > 3
    Ответ написан
  • Почему не удается подключиться в PhpPgAdmin?

    @whats
    Нужно найти конфиг phppgadmin (/etc/phppgadmin/config.inc.php - deb 7)
    и указать там параметр
    $conf['extra_login_security'] = false;

    Первым комментарием было решение
    Ответ написан
    Комментировать
  • Как установить utf8 локаль для postgresql?

    @whats
    Сам долго с этим боролся.
    Включаешь консоль
    Удаляем старый кластер базы данных
    pg_dropcluster --stop 9.1(версия кластера) main(имя кластера, получить можно pg_lsclusters)

    Создаем новый кластер
    pg_createcluster --locale de_DE.UTF-8 --start 9.3 main

    При этом локаль должна быть установлена
    dpkg-reconfigure locales
    Ответ написан
    Комментировать
  • Как ускорить ORDER BY в Postgres?

    @whats Автор вопроса
    work_mem - 1GB Сортируется в памяти. Какие еще параметры нужно назвать для информативности ?

    Кстати если сделать вот так :
    select * from (SELECT DISTINCT t0.groupname as s1, t1.groupname,  t2.groupname
    FROM grouptree as t0 
    left join models as m on m.id = t0.idmodel 
    left join grouptree as t1 on t1.parent = t0.groupno AND t1.idmodel = t0.idmodel
    left join grouptree as t2 on t2.parent = t1.groupno AND t2.idmodel = t1.idmodel
    where t0.parent = 0 AND m.typeauto = 0) as t
    order by t.s1 ASC

    Что, я считаю, в корне не верно, то запрос отработает за секунды.
    "Sort  (cost=147755.31..147835.47 rows=32063 width=117) (actual time=1241.491..1241.930 rows=10716 loops=1)"
    "  Output: t0.groupname, t1.groupname, t2.groupname"
    "  Sort Key: t0.groupname"
    "  Sort Method: quicksort  Memory: 2612kB"
    "  Buffers: shared hit=1240970"
    "  ->  HashAggregate  (cost=144714.35..145034.98 rows=32063 width=117) (actual time=1228.137..1229.846 rows=10716 loops=1)"
    "        Output: t0.groupname, t1.groupname, t2.groupname"
    "        Buffers: shared hit=1240970"
    "        ->  Nested Loop Left Join  (cost=2379.07..144473.88 rows=32063 width=117) (actual time=29.937..852.961 rows=1391881 loops=1)"
    "              Output: t0.groupname, t1.groupname, t2.groupname"
    "              Buffers: shared hit=1240970"
    "              ->  Nested Loop Left Join  (cost=2378.64..128016.41 rows=32063 width=86) (actual time=29.927..172.365 rows=264099 loops=1)"
    "                    Output: t0.groupname, t1.groupname, t1.idmodel, t1.groupno"
    "                    Buffers: shared hit=162206"
    "                    ->  Hash Join  (cost=2378.21..25071.47 rows=32063 width=47) (actual time=29.915..67.004 rows=30423 loops=1)"
    "                          Output: t0.groupname, t0.idmodel, t0.groupno"
    "                          Hash Cond: (t0.idmodel = m.id)"
    "                          Buffers: shared hit=21731"
    "                          ->  Bitmap Heap Scan on public.grouptree t0  (cost=660.19..22638.32 rows=35066 width=47) (actual time=22.059..35.273 rows=34960 loops=1)"
    "                                Output: t0.idmodel, t0.groupno, t0.parent, t0.groupname, t0.groupnameen, t0.pictureindex, t0.mark, t0.sortorder"
    "                                Recheck Cond: (t0.parent = 0)"
    "                                Buffers: shared hit=20791"
    "                                ->  Bitmap Index Scan on "2-parent-to-idmodel"  (cost=0.00..651.42 rows=35066 width=0) (actual time=14.175..14.175 rows=34960 loops=1)"
    "                                      Index Cond: (t0.parent = 0)"
    "                                      Buffers: shared hit=98"
    "                          ->  Hash  (cost=1346.41..1346.41 rows=29729 width=4) (actual time=7.824..7.824 rows=29715 loops=1)"
    "                                Output: m.id"
    "                                Buckets: 4096  Batches: 1  Memory Usage: 1045kB"
    "                                Buffers: shared hit=940"
    "                                ->  Seq Scan on public.models m  (cost=0.00..1346.41 rows=29729 width=4) (actual time=0.003..5.017 rows=29715 loops=1)"
    "                                      Output: m.id"
    "                                      Filter: (m.typeauto = 0)"
    "                                      Rows Removed by Filter: 2798"
    "                                      Buffers: shared hit=940"
    "                    ->  Index Scan using "2-parent-to-idmodel" on public.grouptree t1  (cost=0.43..3.20 rows=1 width=51) (actual time=0.001..0.002 rows=9 loops=30423)"
    "                          Output: t1.idmodel, t1.groupno, t1.parent, t1.groupname, t1.groupnameen, t1.pictureindex, t1.mark, t1.sortorder"
    "                          Index Cond: ((t1.parent = t0.groupno) AND (t1.idmodel = t0.idmodel))"
    "                          Buffers: shared hit=140475"
    "              ->  Index Scan using "2-parent-to-idmodel" on public.grouptree t2  (cost=0.43..0.50 rows=1 width=47) (actual time=0.001..0.002 rows=5 loops=264099)"
    "                    Output: t2.idmodel, t2.groupno, t2.parent, t2.groupname, t2.groupnameen, t2.pictureindex, t2.mark, t2.sortorder"
    "                    Index Cond: ((t2.parent = t1.groupno) AND (t2.idmodel = t1.idmodel))"
    "                    Buffers: shared hit=1078764"
    "Total runtime: 1242.392 ms"


    Как правильно отсортировать ?
    Ответ написан
    Комментировать