MySQLおよびPostgreSQLデータベースを操作する際の基本的な違いアマチュアレビュー

MySQLデータベースでの作業の既存のスキルを使用して、PostgreSQLデータベースの知識を継続し、実際にはMySQLに欠けている多くの興味深い有用な機能を発見しました。 このレビューの目的は、終わりのない討論を作成することではなく、より良いことですが、簡単な比較を提供することです。これは通常、最寄りのカフェで昼休みに議論されます。 それに比べて、新しい知識と経験が得られるので、それだけの価値があります。



1.多くの企業の求人は、スラッシュMySQL / PostgreSQLを使用して必要な知識を書くことがよくあります。



私の意見では、これらは完全に異なるデータベースであり、したがって、同様のSQLクエリの記述のみを考​​慮して、単にそれらの間にスラッシュを入れることは完全に正しいわけではありません。 それでも、PostgreSQLがMySQLの後にpsqlクライアントに自信を持ち始めるには数ヶ月かかります。



これら2つのデータベースのソースからコンパイル段階で私が選び出すものは、



1.1 PostgreSQLにはエンジンタイプ(MySQL-innodb、mysql、アーカイブなど)はありませんが、PHPなどの拡張機能が多数あり、追加インストールして機能を拡張できます。 PostgreSQLは機能が満載された一種のフレームワークのようです。

1.2 MySQLサーバーのデプロイは、基本的にサーバーの起動(systemctl start mysql.conf、service mysql start)になりますが、PostgreSQLでは、サーバーを起動するために(オペレーティングシステムの)別のユーザーが必要で、別のクラスター(クールワード、しかし本質的にMySQLと同じ-1つのサーバー上の複数のデータベース)

1.3 PostgreSQLのSQLレベルでのディスク上の新しいテーブルの場所(テーブルスペース)の物理的な表示。



など



2.データベースのクエリ時のクライアントの違い-psqlとmysql。



2.1 MySQLで明らかに欠けているのは、psqlの\ watchコマンドの類似性です。これにより、SQLクエリの実行を繰り返す秒数を指定できます(watch -nユーティリティのアナログ)。 これは通常、移行の進行状況を追跡するために便利です(テーブルにデータを入力する)



select NOW() \watch 1;
      
      







2.2 PostgreSQLでは、デフォルトでは、実行されたすべてのクエリに実行時間が表示されません。MySQLとは異なり、\ timingコマンドを追加で指定する必要があります。 コマンドを繰り返し実行すると、オプションが無効になります。 この手法は、MySQLとは異なり、多くのPostgreSQL設定でよく見られます。 同時に、PostgreSQLでは、ヘルプ情報を見ると、表示されている設定の現在の値が括弧の横に表示されます。 とても快適です。 唯一の悪い点は、1つのフォントでテストが行​​われ、すぐにすぐに認識されないことです。



2.3 PostgreSQLでは、\ sコマンドを使用してpsqlからクエリ履歴をすばやく表示できますが、MySQLクライアントでは、アップ/ダウンキーを使用してreadlineライブラリ機能を使用する必要があります(または、mysqlクライアントとは別にコマンド履歴を監視します)。 これは、インデックスを使用するクエリを再テストするときにしばしば必要です。 MySQLのプロファイルで行われるように、クエリをコピーしてクエリ番号をダイヤルする代わりに、\を入力した後のPostgreSQLの方が便利です。



3.たとえば、MySQLではより便利で、PostgreSQLではより複雑な多くの共通点があります。



たとえば、水平に収まらない選択結果の出力。 両方のデータベースクライアントには垂直出力があります。 MySQLの場合、クエリの最後に\ Gを追加するだけで十分です。一方、PostgreSQLでは、最初に\ pset expandを実行する必要があります。 すばやくブラウズする必要がある場合、私の意見ではPostgreSQLオプションはあまり便利ではありません。



4. MySQLとは異なり、PostgreSQLで特に興味深い点は、bashシェルとの緊密な統合です。



(vim editor :! Pwdのように)psqlからシェルコマンドを実行し、結果を変数に保存してから、SQLクエリの生成に使用できます。 MySQLでは、これらすべてを行うこともできますが、より長く、常に便利な方法ではありません。



5. PostgreSQLは、MySQLとは異なり、環境変数(エクスポート)の使用に対する特別な愛で際立っています。



ソースをコンパイルし、サーバーの「展開」を開始した直後に、データベースディレクトリへのパス(-DまたはPGDATA)を示して感じます。



これで、私は大まかな素人のレビューを終えると思います。 すでに書いたように、目標は特定のデータベースを配置することではなく、比較を通じて追加の経験を積むことです。 PostgreSQLを具体的に研究することは、競争上の技術的な追加の利点です。



All Articles