2009-01-24 119 views
3

我一直在使用PostgreSQL,玩弄維基百科的數百萬個超鏈接等等,現在已經2年了。我要麼直接通過發送SQL命令來做我的事情,要麼我在Python中編寫客戶端腳本來管理一百萬個查詢,但這無法通過手動高效地(高效地)完成。PostgreSQL過程語言:選擇?

我會在我的32位筆記本電腦上運行我的python腳本,並讓它與運行PostgreSQL的$ 6000 64位服務器通信;因此,我將擁有額外的2.10 Ghz,3 GB的RAM,psyco和一個多線程SQL查詢管理器。

我現在意識到現在是我升級的時候了。我需要學習使用過程語言(PL)的服務器端腳本;我真的需要減少網絡流量和固有的序列化開銷。

現在,我真的不想研究所有PL。知道我已經知道python,並且我正在尋找努力和語言效率之間的方法,你應該安裝,學習和使用什麼PL,以及爲什麼和如何?

回答

6

既然你已經知道python,PL/Python應該看看。你聽起來像你爲數據庫查詢編寫SQL,所以PL/SQL是其自然延伸。

PL/SQL感覺就像SQL一樣,不管怎麼說,你會從SQL中得到所有東西,比如整行的變量和過程語言的常用控制結構。它適合您通常與數據庫進行交互的方式,但它不是有史以來最優雅的語言。我不能說PL/Python,因爲我從來沒有用過它,但既然你知道python,它應該很容易翻遍some examples,看看你是否喜歡它。

+0

是的。我在PL/Python或者普通的PL \ pgSQL之間猶豫不決。我知道python很慢;我想知道PL/pgSQL是否更快?我也想知道如何找出哪些PL已經集成到我的postgresql服務器中?感謝您的快速回答! – 2009-01-24 03:08:58

2

爲什麼你不能在數據庫服務器上運行你的Python?這具有最少的複雜性 - 您可以運行您已有的程序。

1

我和你的情況完全一樣,在PL/SQL上放棄一段時間後放棄了PL/Python。這是一個很好的決定,回頭看看。在unicode問題(客戶端編碼,字節序列)和特定postgres數據類型(bytea)的地方,有些東西讓我難以忍受。