簡體   English   中英

為什么 Heroku 使用 Postgresql?

[英]Why does Heroku use Postgresql?

我正忙着將一些 MySQL 特定代碼移植到 Postgresql,以便將它與 Heroku 一起使用。 只是想知道 Heroku 使用 Postgresql 而不是 MySQL 是否有任何具體原因? 性能、架構等?

更新:來自 heroku 博客文章

在 Heroku,我們相信 PostgreSQL 提供了地球上任何 SQL 數據庫的強大功能、數據完整性、速度、標准合規性和開源代碼的最佳組合。

Postgres 在很多方面都比 mysql 您可以閱讀這些關於將 rails 應用程序從 mysql 遷移到 postgres 的帖子。 雖然 mysql 比 postgres 更受歡迎,但instagram 使用postgres 可能是由於這些原因。 我覺得 postgres 比 mysql 更加成熟和健壯。 而mysql更容易使用。

在 Rails 中將 MySQL 遷移到 PostgreSQL « mindlev

將 Rails 應用程序數據從 MySQL 轉換為 PostgreSQL

對於數據遷移,一個方便的小腳本: Rake task to transfer a Rails database,比如從 MySQL 到 Postgres 再返回

將此MySQL 陷阱列表的長度與postgresql 陷阱列表的長度進行比較。 MySQL 更有可能把你搞砸。

一般來說,我發現 pgsql 比 mysql 更適合 24/7 操作。 此外,它似乎內置了更少的腳踏槍。 我認為,如果您更熟悉其中一個,那么這比其他任何事情都更有可能影響您的決定。

嗯,Postgres 的性能通常更適合復雜查詢,比如 ORM 生成的那種。 此外,postgres 往往更“可靠”。 這是古老的,但我管理的 postgres 服務器總是比 mysql 麻煩得多,mysql 喜歡偶爾隨機崩潰,偶爾會在下降過程中損壞表。

我目前正在將我客戶的一個 Rails 應用程序從 Heroku Postgresql 遷移到 Mysql(ClearDB 插件)。 PostgreSQL 在很多方面都是更嚴格和更“正確”的數據庫服務,這似乎是 Heroku 認可它的原因。 然而,我發現 Rails 框架或多或少地消除了差異,而且大多數 Rails 應用程序不會增長到足以讓 Mysql 的性能問題成為破壞者。

另一方面,PostgreSQL(尤其是 Heroku 的產品)對於啟動應用程序有幾個明顯的缺點:

  • 價格。 為了防止在使用 Heroku Postgres 時每周出現“數據庫連接丟失”錯誤,您必須每月支付 200 美元 在 ClearDB 上,每月10 美元的計划可以獲得 100% 正常運行時間的承諾(我們還沒有機會評估此聲明),該計划還提供 1 GB 的空間——這超出了我們的需要。
  • 列排序。 在進行 Rails 開發時,我每 5 分鍾參考一次schema.rb數據庫架構文件,為了保持該文件的整潔和可讀性,我發現能夠指定應添加列的順序至關重要。MySQL 支持指定的順序列; PostgreSQL 沒有。 在許多情況下,此功能並不重要,但由於 Rails / ActiveRecord 的工作方式,當我無法對列重新排序時,我的生活變得更加艱難。

與上述任何建議都不矛盾,但如果出於某種原因你真的想要或需要堅持使用 MySQL,我最近注意到 Heroku 現在提供了一個免費的 MySQL 附加組件,稱為 ClearDB:

https://addons.heroku.com/cleardb

沒用過,所以不敢保證。 Heroku 聲稱免費版本的正常運行時間為 99.95%(而任何付費版本都聲稱正常運行時間為 100%),並且他們否認免費版本是“生產就緒”。 他們聲稱 ClearDB 是“原生的、未經修改的 MySQL”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM