2011-11-15 13 views
1

DjangoコミュニティはPostgresの使用を奨励しているようですが、大きなプロジェクトではおそらくSQLiteなどを使いたくないと思っていますが、Mysqlがあまり好きではない理由はわかりません。djangoコミュニティがPostgresをMysqlで使用することを推奨しているのはなぜですか?

ちょうど簡単な例 - Djangobookページ9:

私たちは、本書の範囲外の理由のため、PostgreSQLの自分自身の非常に好きですので、我々は最初にそれを言及。しかし、これらのエンジンはすべてDjangoと同じように動作します。

のPostgres名は常にジャンゴと関連している - のMysqlは常にPHP

+0

は私が良い見つければその – Lynob

+0

理由があるかどうちょうどたいが知っている、議論を開始したくありません理由は、私はPostgresを使うつもりです – Lynob

+0

Python、Django、PostgreSQLに慣れていないにもかかわらず、MySQLを使うべきではない理由が一つもありません。 –

答えて

1

ベスト答えは、フレームワークを書き込み人々からこのquiestionにある与えられたかもしれない...

しかし、あなたがdocumentationから得ることができるものからは次のようになります。デフォルトで

、ジャンゴのデータベース接続が最初に使用されたときにトランザクションを開始し、要求/応答処理の終了時に結果をコミットします。 PostgreSQLバックエンドは通常、この点で他のDjangoバックエンドと同じように動作します。

Djangoは強い離断コントロールを持っている、との強い離断コントロールを持っている強力なfree DBMSを使用することはプラスです...また

は、MySQLの以前のバージョン(前は、MySQL 5.0)、MySQLは、いくつかの整合性を持っています問題。また、MySqlのファストストレージエンジンMyISAMは、外部キーとトランスセクションをサポートしていません。ですから、MyISAMを使用することは、そのプラスが重要なマイナスを持っています...

そしてwhy Postgres is better than Mysqlのwiki。そのかなり古いですが、それは良いです。

0

に関連付けられているだけのように私は、PostgreSQLを自分自身を使用したことがないので、私は本当にオーバー持つようになっている利点について多くを語ることはできませんMySQL。 しかし、私が収集したことから、トランザクション処理はPostgreSQLによってすぐにサポートされています。 MySQLを使用している場合、トランザクションをサポートしていないMyISAMをストレージエンジンとして使用するという変更があります。

https://docs.djangoproject.com/en/dev/topics/db/transactions/#transactions-in-mysql

たぶん、Djangoの開発者は、単に取引が機能しなかったバグレポートに対処することの病気や疲れたが、問題はMyISAMテーブルではなくジャンゴによるものでした。

南の開発者(Djangoのための最も使用されるデータベーススキーマの移行フレームワークは)明らかに、このメッセージは、私は、MySQLとかなり頻繁に見てきたことを示唆している、いずれかのMySQLの好きにはされない:

! Since you have a database that does not support running 
! schema-altering statements in transactions, we have had to 
! leave it in an interim state between migrations. 
[...] 
! The South developers regret this has happened, and would 
! like to gently persuade you to consider a slightly 
! easier-to-deal-with DBMS. 
0

私はいつもPostgresを使用していましたが、これは成熟していることと、空間データ機能をデータベースに追加するPostGIS拡張機能のためです。私がアプリケーションの空間データを欲しいと思っていないとしても、後の段階でMySQLを裂き、それをPostGISに置き換えるのではなく、DBがそれをサポートしているならば、 。

私は今、MySQLに空間的な拡張があると思いますので、今では空間操作を行うことができるかもしれません。しかし、Postgresはこれをやっていて何年もそれをやっています。

または私は私が思う、Oracle Spatialのため$$$$$を過ごすことができ...

関連する問題