Как легче начать работать с PostgreSQL имея опыт в MySQL?

    Возникла передо мной задача подружиться с PostgreSQL. Сам я разработчик на PHP и до сих пор использовал СУБД MySQL. По ней имею довольно высокий уровень. Как, затратив наименьшие усилия, начать работать с Postgres? Перечитывать мануал — куча потерянного времени, потому что различия между двумя этими СУБД не сильно велики. Попытался поискать статей по теме миграции, но ничего толкового не нашел. Может у кого-нибудь есть такие статьи в букмарках, или кто-то сам писал? Или сможет опытом поделиться?

    Речь конечно идет о чем-то более полном, чем описания отличий в счетчиках (инкрементных полях).

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 6

      +1
      Если имеются ввиду сами СУБД, то ничего лучше чтения мануалов по настройке и оптимизации предложить сложно.
      Впрочем и различия в SQL диалектах проще всего изучать тем же путем.

      В свое время, когда передо мной стояла такая же задача, мне хватило пары часов просмотра по диагонали официальной документации + php.net для уточнения особенностей взаимодействия с СУБД средствами PHP.

      Хотя если под "подружиться с PostgreSQL" имелся еще и PL/pgSQL, то все далеко не так тривиально, но опять же в роли стартовой точки я бы предложил именно http://www.postgresql.org
        +2
        Используйте ORM :)

        http://ru.wikipedia.org/wiki/ORM
          +1
          аналог show tables \dt
          аналог show fields from table \d table
          консолька: psql -U postgres база
          выход из нее \q )
          вместо limit x,y limit x offset y (возможно спутал места x и y)
          вместо автоинкремента serial и bigserial
          Работа с датой другая немного (что то в кавычки надо заключать не помню точно)
          Куча индексов для этого манул надо читать
          Полнотекстовый поиск (с версии 8.3, поможет только манул)

          Это так в двух словах с чем я столкнулся), остальное за меня ActiveRecord делает
            0
            ОООО блин помниться я работал с ней лет 5 назад.
            Тогда реально парился с инкрементальными полями. Слава богу тот опыт остался в прошлом, сейчас я на mysql сижу. Хотя слышал что Постгрес оч сильно продвинулся в масштабировании.

            Вобщем эта штука называется SEQUENCE. Она создается отдельно. А потом используется для поля в твоей таблице. Чет это мне оракл напоминает.

            Вобщем правильно народ грит посмотри в сторону ORM и не парься.
            Или рискни ADODB для PHP, Hybernate для Java.
              0
              А как же быть с заменой SQL_CALC_FOUND_ROWS mysql в postgres? Это подсчет найденных строк по запросу без учета limit. Сегодня выяснил, что аналога в постгри нет. Предложили юзать курсоры, но в web-приложении так не получится. Делать 2 одинаковых запроса, первый из которых делает count(*), а второй тянет записи по limit слишком затратно, если используются сортировка: время увеличится почти в 2 раза. Может на админке с ORM на это и плевать, но на фронтэнде самое важное — скорость.
                0
                Я глубоко я не копал - в основном поверхностные отличия и различия в DQL которые уже упомянуты были. Из интересного что находил я у себя писал ( http://kurapov.name/technology/web/datab… ), а вот во внутренности того как на физическом уровне работает СУБД, индексы и как работает трансляция в поиск по индексам - этого я и с mysql толком не знаю. Максимум EXPLAIN :)

                Для блог-движка использую адаптер как и для mysql, который упрощает работу ( типа ActiveRecord ), но
                поскольку функции многие всё-равно отличаются (даты) то лёгкой миграции не получится. AdoDB использовал раньше при миграции на Oracle, много плевался но тогда этот тяжеловес спас положение.

                Only users with full accounts can post comments. Log in, please.