PostgreSQL процедурные языки: выбрать? - PullRequest
3 голосов
/ 24 января 2009

Я работаю с PostgreSQL, играю с миллионами гиперссылок Википедии и так далее уже 2 года. Я либо делаю свое дело напрямую, отправляя команды SQL, либо я пишу сценарий на стороне клиента на python для управления миллионом запросов, когда это невозможно сделать продуктивно (эффективно и результативно) вручную.

Я запустил бы свой скрипт Python на своем 32-битном ноутбуке и установил связь с 64-битным сервером за 6000 $, работающим на PostgreSQL; Следовательно, у меня были бы дополнительные 2,10 ГГц, 3 ГБ ОЗУ, psyco и менеджер многопоточных SQL-запросов.

Теперь я понимаю, что мне пора повышаться. Мне нужно научиться серверному сценарию с использованием процедурного языка (PL); Мне действительно нужно уменьшить сетевой трафик и присущие ему издержки сериализации.

Теперь мне действительно не хочется исследовать все PL. Зная, что я уже знаю Python, и что я ищу средства между усилием и эффективностью языка, какой PL, как вы думаете, ребята, я должен установить, выучить и использовать, и почему и как?

Ответы [ 3 ]

6 голосов
/ 24 января 2009

Поскольку вы уже знаете Python, PL / Python должен быть на что посмотреть. И кажется, что вы пишете SQL для запросов к базе данных, поэтому PL / SQL является естественным продолжением этого.

PL / SQL ощущается как SQL, просто со всеми вещами, которые вы все равно ожидаете от SQL, такими как переменные для целых строк и обычные структуры управления процедурными языками. Он соответствует тому, как вы обычно взаимодействуете с базой данных, но это не самый элегантный язык всех времен. Я ничего не могу сказать о PL / Python, поскольку я никогда не использовал его, но, поскольку вы знаете python, должно быть легко пролистать некоторые примеры и посмотреть, нравится ли вам это.

2 голосов
/ 24 января 2009

Почему вы не можете запустить свой Python на сервере базы данных? Это имеет наименьшую сложность - вы можете запустить уже имеющуюся программу.

1 голос
/ 24 января 2009

Я был в той же ситуации, что и вы, и через некоторое время отказался от PL / SQL после того, как отказался от PL / SQL. Это было хорошее решение, оглядываясь назад. Некоторые вещи, которые меня раздражают, когда возникают проблемы с юникодом (кодировка клиента, последовательность байтов) и конкретные типы данных postgres (bytea).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...