はじめに
行と列のテーブルにデータを整理するリレーショナルデータモデルは、データベース管理ツール 今日、NoSQLやNewSQLを含む他のデータモデルがありますが、リレーショナルデータベース管理システム(Rdbms)は、世界中のデータの保存と管理に依然として支配的です。
この記事では、最も広く実装されているオープンソースのRdbmsのうち、SQLite、MySQL、PostgreSQLの三つを比較し、対比しています。 具体的には、各RDBMSが使用するデータ型、それらの長所と短所、およびそれらが最適化されている状況について説明します。
データベース管理システムについてのビット
データベースは、論理的にモデル化された情報、またはデータのクラスターです。 一方、データベース管理システム(DBMS)は、データベースと対話するコンピュータプログラムです。 DBMSを使用すると、データベースへのアクセスの制御、データの書き込み、クエリの実行、およびデータベース管理に関連するその他のタスクの実行ができます。 データベース管理システムはしばしば「データベース」と呼ばれますが、この2つの用語は互換性がありません。 DBMSは、データベースと対話することを可能にするソフトウェアですが、データベースは、コンピュータに格納されているだけでなく、データの任意のコレクシ
すべてのデータベース管理システムには、データの格納方法とアクセス方法を構造化する基礎となるモデルがあります。 リレーショナル-データベース管理システムは、リレーショナル-データ-モデルを採用するDBMSです。 このモデルでは、データはテーブルに編成され、Rdbmsのコンテキストではより正式に関係と呼ばれます。 リレーションは、タプルのセット、またはテーブル内の行であり、各タプルは一連の属性または列を共有します。
ほとんどのリレーショナルデータベースは、構造化クエリ言語(SQL)を使用してデータを管理およびクエリします。 ただし、多くのRdbmsは独自のsql方言を使用していますが、これには一定の制限や拡張がある場合があります。 これらの拡張機能には、通常、ユーザーが標準SQLで実行できるよりも複雑な操作を実行できるようにする追加機能が含まれています。ノート
: このガイドでは、”標準SQL”という用語が何度か登場しています。 SQL標準は、米国標準化協会(ANSI)、国際標準化機構(ISO)、および国際電気標準会議(IEC)によって共同で維持されています。 この記事では、「標準SQL」または「SQL標準」について言及するたびに、これらの機関によって公開されたSQL標準の現在のバージョンを参照しています。
完全なSQL標準は大きく複雑であることに注意する必要があります:完全なコアSQL:2011準拠には179の機能が必要です。 このため、ほとんどのRdbmsは標準全体をサポートしていませんが、一部のRdbmsは他のRdbmsよりも完全な準拠に近づいています。
各列には、その列で許可されるエントリの種類を指示するデータ型が割り当てられます。 異なるRdbmsは異なるデータ型を実装していますが、これらは常に直接交換可能ではありません。 一般的なデータ型には、日付、文字列、整数、ブール値などがあります。
数値データ型は、正と負の両方の数値を表すことができる符号付き、または正の数値のみを表すことができる符号なしのいずれかにすることがで たとえば、MySQLのtinyint
データ型は8ビットのデータを保持できます。 このデータ型の符号付き範囲は-128~127で、符号なし範囲は0~255です。
場合によっては、データベース管理者がテーブルに制約を課して、どの値を入力できるかを制限することがあります。 通常、制約は1つの特定の列に適用されますが、一部の制約はテーブル全体にも適用できます。 SQLで一般的に使用される制約は次のとおりです。
UNIQUE
NULL
UNIQUE
NOT NULL
PRIMARY KEY
NULL
そして、すべてのエントリは区別されていること。FOREIGN KEY
FOREIGN KEY
: AFOREIGN KEY
PRIMARY KEY
FOREIGN KEY
PRIMARY KEY
列に既に存在している必要があります。CHECK
:この制約は、列に入力できる値の範囲を制限します。 たとえば、アプリケーションがアラスカの居住者のみを対象としている場合は、ZIP code列にCHECK
制約を追加して、99501から99950までのエントリのみを許可データベース管理システムの詳細については、SQLおよびNoSQLデータベースとさまざまなデータベースモデルについての記事をご覧ください。リレーショナルデータベース管理システムについて一般的に説明したので、この記事ではSQLiteについて説明します。
SQLite
SQLiteは、メモリ不足の環境でも移植性、信頼性、強力なパフォーマンスで知られている、自己完結型のファイルベースの、完全にオープンソースのRDBMSです。 そのトランザクションは、システムがクラッシュしたり、停電を受けた場合でも、ACIDに準拠しています。
SQLiteプロジェクトのwebサイトでは、これを「サーバーレス」データベースと説明しています。 ほとんどのリレーショナルデータベースエンジンは、プログラムが要求を中継するプロセス間通信を介してホストサーバーと通信するサーバープロ しかし、SQLiteでは、データベースにアクセスするプロセスは、データベースディスクファイルから直接読み書きします。 これにより、サーバープロセスを構成する必要がなくなるため、SQLiteのセットアッププロセスが簡素化されます。 同様に、SQLiteデータベースを使用するプログラムには必要な設定はありません。
SQLiteは無料でオープンソースのソフトウェアであり、特別なライセンスは必要ありません。 ただし、このプロジェクトでは、圧縮と暗号化に役立ついくつかの拡張機能が提供されています—それぞれが1回限りの料金で-。 さらに、プロジェクトは、年間料金のための様々な商業的なサポートパッケージを提供しています。
SQLiteでサポートされているデータ型
SQLiteでは、次のストレージクラスに編成されたさまざまなデータ型を使用できます。
データ型 説明 データ型 説明 null
任意の NULL
値を含みます。/td>integer
符号付き整数、に格納されています1, 2, 3, 4, 6, または、値の大きさに応じて8バイト。td> real
実数、または浮動小数点値、8バイトの浮動小数点数として格納されます。 text
データベースエンコーディングを使用して格納されたテキスト文字列(UTF-8、UTF-16BE、またはUTF-16LEのいずれかです。 blob
すべてのblobが入力されたとおりに正確に格納されたデータのblob。SQLiteのコンテキストでは、”ストレージクラス”と”データ型”という用語は互換性があると見なされます。 SQLiteのデータ型とSQLiteの型親和性について詳しく知りたい場合は、sqliteの公式ドキュメントを参照してください。 SQLiteの利点
- 小さなフットプリント:その名前が示すように、SQLiteライブラリは非常に軽量です。 それが使用するスペースは、それがインストールされているシステムによって異なりますが、それはスペースの600kib未満を取ることができます。 さらに、完全に自己完結型であり、SQLiteが機能するためにシステムにインストールする必要のある外部依存関係はありません。
- ユーザーフレンドリー:SQLiteは、箱から出してすぐに使用できる”ゼロ構成”データベースとして記述されることがあります。 SQLiteはサーバープロセスとして実行されないため、停止、開始、または再起動する必要はなく、管理する必要のある構成ファイルは付属していません。 これらの機能は、SQLiteのインストールからアプリケーションとの統合への道を合理化するのに役立ちます。
- ポータブル: 通常、データを別々のファイルの大規模なバッチとして格納する他のデータベース管理システムとは異なり、SQLiteデータベース全体が単一のファイルに格納され このファイルは、ディレクトリ階層内の任意の場所に配置でき、リムーバブルメディアまたはファイル転送プロトコルを介して共有できます。
SQLiteの欠点
- 制限された同時実行性:複数のプロセスがSQLiteデータベースに同時にアクセスしてクエリを実行できますが、一度にデータベースに変更を加えることができるのは1つのプロセスだけです。 つまり、SQLiteは他のほとんどの組み込みデータベース管理システムよりも高い並行性をサポートしますが、MySQLやPostgreSQLのようなクライアント/サーバー Rdbmsほどではありません。
- ユーザー管理なし:データベースシステムには、多くの場合、ユーザーのサポート、またはデータベースとテーブルへの事前定義されたアクセス権限を持つ管理された接 SQLiteは通常のディスクファイルに直接読み書きするため、適用可能なアクセス許可は、基になるオペレーティングシステムの一般的なアクセス許可のみ これにより、SQLiteは、特別なアクセス権限を持つ複数のユーザーを必要とするアプリケーションには適していません。
- セキュリティ:サーバーを使用するデータベースエンジンは、場合によっては、SQLiteのようなサーバーレスデータベースよりもクライアントアプリケーションのバグ たとえば、クライアント内の浮遊ポインタは、サーバー上のメモリを破損することはできません。 また、サーバーは単一の永続プロセスであるため、クライアント-サーバー-データベースは、サーバーレス-データベースよりも精度の高いデータ-アクセスを制御でき、よりきめ細か
Sqliteを使用する場合
- 組み込みアプリケーション:SQLiteは、移植性を必要とし、将来の拡張を必要としないアプリケーションのためのデータベース 例としては、シングルユーザーローカルアプリケーションやモバイルアプリケーシ
- ディスクアクセスの置き換え:アプリケーションがディスクにファイルを直接読み書きする必要がある場合、SQLを使用することに付属している追加の機能と簡単さのためにSQLiteを使用することが有益です。
- テスト: 多くのアプリケーションでは、追加のサーバープロセスを使用するDBMSで機能をテストするのが過剰になる可能性があります。 SQLiteにはメモリ内モードがあり、実際のデータベース操作のオーバーヘッドなしでテストを迅速に実行するために使用できるため、テストに理想的な選択肢です。
SQLiteを使用しない場合
- 多くのデータを扱う:ディスクドライブとファイルシステムもデータベースのサイズ要件をサポートしている限り、SQLiteは技術的に140TBまでのデータベースをサポートすることができます。 しかし、SQLiteのウェブサイトは、そのサイズ以上のSQLiteデータベースを管理することが困難であるため、1TBに近づくすべてのデータベースを集中型のクライ
- 高書き込みボリューム:SQLiteは、任意の時点で一つの書き込み操作のみを実行することができます,大幅にそのスループットを制限します. アプリケーションが大量の書き込み操作や複数の同時書き込みを必要とする場合、SQLiteはニーズに十分ではない可能性があります。
- ネットワークアクセスが必要です: SQLiteはサーバーレスのデータベースであるため、データへの直接ネットワークアクセスは提供しません。 このアクセスはアプリケーションに組み込まれているため、SQLiteのデータがアプリケーションとは別のマシンにある場合は、ネットワークを介した高帯域幅 これは高価で非効率的な解決策であり、そのような場合にはクライアント-サーバー DBMSがより良い選択になる可能性があります。
MySQL
DB-Enginesランキングによると、MySQLは2012年にデータベースの人気を追跡し始めて以来、最も人気のあるオープンソースのRDBMSでした。 これは、Twitter、Facebook、Netflix、Spotifyなど、世界最大のウェブサイトやアプリケーションの多くに力を与える機能豊富な製品です。 MySQLを使い始めるのは比較的簡単で、その大部分は網羅的なドキュメントと開発者の大規模なコミュニティ、そして豊富なMySQL関連のリソースのオンラ
MySQLは、標準SQLを完全に遵守することを犠牲にして、速度と信頼性のために設計されました。 MySQLの開発者は、標準SQLへの準拠に向けて継続的に取り組んでいますが、他のSQL実装にはまだ遅れています。 ただし、さまざまなSQLモードと拡張機能が付属しており、準拠に近づきます。 SQLiteを使用するアプリケーションとは異なり、MySQLデータベースを使用するアプリケーションは、別のデーモンプロセスを介してアクセスします。 サーバープロセスはデータベースと他のアプリケーションの間にあるため、データベースへのアクセス権を持つユーザーをより詳細に制御できます。
MySQLは、その機能を拡張し、作業を容易にするための豊富なサードパーティ製のアプリケーション、ツール、および統合ライブラリに影響を与えました。 これらのサードパーティツールの中でより広く使用されているものには、phpMyAdmin、DBeaver、HeidiSQLがあります。MySQLのサポートされているデータ型
MySQLのデータ型は、数値型、日付と時刻型、および文字列型の3つの広範なカテゴリに分類できます。データ型
説明 データ型 説明 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 tinyint
非常に小さな整数です。 この数値データ型の符号付き範囲は-128~127で、符号なし範囲は0~255です。 smallint
小さな整数です。 この数値型の符号付き範囲は-32768~32767で、符号なし範囲は0~65535です。/td> mediumint
中型の整数。 この数値データ型の符号付き範囲は-8388608~8388607ですが、符号なし範囲は0~16777215です。 int
integer
通常のサイズの整数。 この数値データ型の符号付き範囲は-2147483648~2147483647で、符号なし範囲は0~4294967295です。/td> bigint
大きな整数。 この数値データ型の符号付き範囲は-9223372036854775808~9223372036854775807で、符号なし範囲は0~18446744073709551615です。/td> float
小さな(単精度の)浮動小数点数。/td> double
double precision
real
通常のサイズの(倍精度の)浮動小数点数。td> dec
decimal
fixed
numeric
パックされた固定小数点数。 このデータ型のエントリの表示長は、列の作成時に定義され、すべてのエントリがその長さに準拠します。 bool
boolean
ブール値は、通常、 true
false
のいずれかの二つの可能な値のみを持つデータ型です。bit
1から64までの値ごとのビット数を指定できるビット値タイプ。/td> 日付と時刻のタイプ:
Data Type Explanation date
A date, represented as YYYY-MM-DD
.datetime
A timestamp showing the date and time, displayed as YYYY-MM-DD HH:MM:SS
.timestamp
A timestamp indicating the amount of time since the Unix epoch (00:00:00 on January 1, 1970). time
A time of day, displayed as HH:MM:SS
.year
A year expressed in either a 2 or 4 digit format, with 4 digits being the default. String types:
Data Type Explanation char
A fixed-length string; このタイプのエントリは、格納時に指定された長さを満たすために、右側にスペースが埋め込まれます。/td> varchar
可変長の文字列。 binary
char
型と似ていますが、非バイナリ文字列ではなく、指定された長さのバイナリバイト文字列です。varbinary
varchar
型と似ていますが、非バイナリ文字列ではなく可変長のバイナリバイト文字列です。blob
A binary string with a maximum length of 65535 (2^16 – 1) bytes of data. tinyblob
A blob
column with a maximum length of 255 (2^8 – 1) bytes of data.mediumblob
A blob
column with a maximum length of 16777215 (2^24 – 1) bytes of data.longblob
A blob
column with a maximum length of 4294967295 (2^32 – 1) bytes of data.text
A string with a maximum length of 65535 (2^16 – 1) characters. tinytext
A text
column with a maximum length of 255 (2^8 – 1) characters.mediumtext
A text
column with a maximum length of 16777215 (2^24 – 1) characters.longtext
A text
column with a maximum length of 4294967295 (2^32 – 1) characters.enum
テーブルの作成時に宣言された値のリストから単一の値を取る文字列オブジェクトです。 set
列挙型と同様に、ゼロ以上の値を持つことができる文字列オブジェクトで、テーブルの作成時に指定された許可された値のリ MySQLの利点
- 人気と使いやすさ: 世界で最も人気のあるデータベースシステムの一つとして、MySQLでの作業経験を持っているデータベース管理者の不足はありません。 同様に、MySQLデータベースのインストールと管理方法に関する豊富なドキュメントや、phpMyAdminなどの多くのサードパーティ製ツールがあり、データベースの開始プロセスを簡
- セキュリティ: MySQLには、インストールのパスワードセキュリティレベルの設定、rootユーザーのパスワードの定義、匿名アカウントの削除、およびデフォルトですべてのユーザーが また、SQLiteとは異なり、MySQLはユーザー管理をサポートしており、ユーザーごとにアクセス権限を付与することができます。
- Speed:SQLの特定の機能を実装しないことを選択することで、MySQL開発者は速度を優先することができました。 より最近のベンチマークテストでは、PostgreSQLのような他のRdbmsが速度の点でMySQLと一致するか、少なくともMySQLに近いことが示されていますが、MySQLは依然として非常に高速なデータベースソリューションとしての評判を保持しています。これは、信頼性、可用性、およびフォールトトレランスを向上させるために、複数のホスト間で情報を共有する方法です。 これは、データベースのバックアップソリューションを設定したり、データベースを水平方向にスケーリングしたりするのに役立ちます。
MySQLの欠点
- 既知の制限事項: MySQLは、完全なSQL準拠ではなく、スピードと使いやすさのために設計されているため、特定の機能制限が付属しています。 たとえば、
FULL JOIN
句はサポートされていません。 - ライセンスとプロプライエタリな機能:MySQLはデュアルライセンスのソフトウェアであり、Gplv2の下でライセンスされたフリーでオープンソースのcommunity editionと、プロプライエタリなライセンスの下でリリースされたいくつかの有料の商用エディションがあります。 このため、一部の機能とプラグインは、プロプライエタリ版でのみ使用できます。
- 開発が鈍化した: MySQLプロジェクトが2008年にSun Microsystemsに買収され、その後2009年にOracle Corporationに買収されて以来、DBMSの開発プロセスが大幅に減速しているというユーザーからの苦情が
Mysqlを使用する場合
- 分散操作:MySQLのレプリケーションサポートにより、プライマリ-セカンダリアーキテクチャやプライマリ-プライマリアーキテクチャのような分散データベース設定に最適です。
- ウェブサイトとウェブアプリケーション: MySQLは、インターネット上の多くのwebサイトやアプリケー これは、大部分が、MySQLデータベースのインストールとセットアップがいかに簡単であるか、そして長期的には全体的な速度とスケーラビリティのおかげです。
- 期待される将来の成長:MySQLのレプリケーションのサポートは、水平スケーリングを容易にすることができます。 さらに、自動シャーディング、別の水平スケーリングプロセスをサポートするMySQL Clusterのような商用MySQL製品にアップグレードするのは比較的簡単なプロセスです。
MySQLを使用しない場合
- SQL準拠が必要です: MySQLは完全なSQL標準を実装しようとしないため、このツールは完全にSQLに準拠していません。 完全な、またはほぼ完全なSQL準拠がユースケースに必須である場合は、より完全に準拠したDBMSを使用することができます。
- 同時実行性と大規模なデータボリューム:MySQLは一般的に読み取りの多い操作では良好に実行されますが、同時読み取り書き込みは問題になる可能性が アプリケーションに一度に多くのユーザーがデータを書き込む場合は、PostgreSQLのような別のRDBMSがデータベースのより良い選択かもしれません。
PostgreSQL
PostgreSQLは、Postgresとしても知られており、「世界で最も先進的なオープンソースのリレーショナルデータベース」と自称しています。「拡張性が高く、標準に準拠していることを目標に作成されました。 PostgreSQLはオブジェクトリレーショナルデータベースであり、主にリレーショナルデータベースですが、テーブルの継承や関数のオーバーロードなどの機能も含まれています。
Postgresは、同時に複数のタスクを効率的に処理することができ、これは並行性として知られています。 Multiversion Concurrency Control(MVCC)の実装により、読み取りロックなしでこれを実現し、ACID準拠とも呼ばれるトランザクションの原子性、一貫性、分離、および耐久性を保証します。
PostgreSQLはMySQLほど広く使用されていませんが、pgAdminやPostbirdなど、PostgreSQLでの作業を簡素化するために設計されたサードパーティのツールやライブラリがまだあります。
PostgreSQLのサポートされているデータ型
PostgreSQLは、MySQLのような数値、文字列、日付と時刻のデータ型をサポートしています。 さらに、幾何学的形状、ネットワークアドレス、ビット文字列、テキスト検索、およびJSONエントリのデータ型、およびいくつかの特異なデータ型をサポートしています。データ型
説明 データ型 説明 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 データ型 bigint
符号付き8バイトの整数。 bigserial
An autoincrementing 8 byte integer. double precision
An 8 byte double precision floating-point number. integer
A signed 4 byte integer. numeric
ordecimal
An number of selectable precision, recommended for use in cases where exactness is crucial, such as monetary amounts. real
A 4 byte single precision floating-point number. smallint
A signed 2 byte integer. smallserial
An autoincrementing 2 byte integer. serial
An autoincrementing 4 byte integer. Character types:
Data Type Explanation character
A character string with a specified fixed length. character varying
orvarchar
A character string with a variable but limited length. text
A character string of a variable, unlimited length. Date and time types:
Data Type Explanation date
A calendar date consisting of the day, month, and year. interval
A time span. time
ortime without time zone
A time of day, not including the time zone. time with time zone
A time of day, including the time zone. timestamp
ortimestamp without time zone
A date and time, not including the time zone. timestamp with time zone
A date and time, including the time zone. Geometric types:
Data Type Explanation box
A rectangular box on a plane. circle
A circle on a plane. line
An infinite line on a plane. lseg
A line segment on a plane. path
A geometric path on a plane. point
A geometric point on a plane. polygon
A closed geometric path on a plane. Network address types:
Data Type Explanation cidr
An IPv4 or IPv6 network address. inet
An IPv4 or IPv6 host address. macaddr
A Media Access Control (MAC) address. Bit string types:
Data Type Explanation bit
A fixed-length bit string. bit varying
A variable-length bit string. Text search types:
Data Type Explanation tsquery
A text search query. tsvector
A text search document. JSON types:
Data Type Explanation json
Textual JSON data. jsonb
Decomposed binary JSON data. Other data types:
Data Type Explanation boolean
A logical Boolean, representing either true
orfalse
.bytea
Short for “byte array”, this type is used for binary data. money
An amount of currency. pg_lsn
A PostgreSQL Log Sequence Number. txid_snapshot
A user-level transaction ID snapshot. uuid
A universally unique identifier. xml
XML data. Advantages of PostgreSQL
- SQL compliance: More so than SQLite or MySQL, PostgreSQL aims to closely adhere to SQL standards. According to the official PostgreSQL documentation, PostgreSQL supports 160 out of the 179 features required for full core SQL:オプション機能の長いリストに加えて、2011年のコンプライアンス、。
- オープンソースとコミュニティ主導:完全にオープンソースのプロジェクト、PostgreSQLのソースコードは、大規模で献身的なコミュニティによって開発されています。 同様に、Postgresコミュニティは、公式ドキュメント、PostgreSQL wiki、さまざまなオンラインフォーラムなど、DBMSの操作方法を説明する多数のオンラインリソースを維持し、
- 拡張可能:ユーザーは、カタログ駆動の操作と動的ロードの使用を通じて、PostgreSQLをプログラム的かつオンザフライで拡張できます。 共有ライブラリなどのオブジェクトコードファイルを指定することができ、PostgreSQLは必要に応じてそれをロードします。
PostgreSQLの欠点
- メモリパフォーマンス:新しいクライアント接続ごとに、PostgreSQLは新しいプロセスをフォークします。 それぞれの新しいプロセスには約10MBのメモリが割り当てられ、多くの接続を持つデータベースにすばやく追加できます。 したがって、単純な読み取り重い操作の場合、PostgreSQLは通常、MySQLのような他のRdbmsよりもパフォーマンスが低くなります。
- 人気: 近年ではより広く使用されていますが、PostgreSQLは歴史的に人気の点でMySQLに遅れをとっていました。 その結果、PostgreSQLデータベースの管理に役立つサードパーティ製のツールがまだ少なくなっています。 同様に、Postgresデータベースの管理経験を持つデータベース管理者は、MySQLの経験を持つデータベース管理者と比較してあまり多くありません。
PostgreSQLを使用する場合
- データの整合性が重要です: PostgreSQLは2001年以来完全にACIDに準拠しており、データの一貫性を維持するためにマルチバージョン通貨管理を実装しているため、データの整合性が重要な場合にRDBMSの強力な選択肢となっています。
- 他のツールとの統合:PostgreSQLは、プログラミング言語やプラットフォームの広い配列と互換性があります。 つまり、データベースを別のオペレーティングシステムに移行したり、特定のツールと統合したりする必要がある場合は、PostgreSQLデータベースを使用する方が別のDBMS
- 複雑な操作: Postgresは、より高速でクエリに応答するために、複数のCpuを活用できるクエリプランをサポートしています。 これは、複数の同時ライターの強力なサポートと相まって、データウェアハウスやオンライントランザクション処理などの複雑な操作に最適です。
PostgreSQLを使用しない場合
- 速度は不可欠です:速度を犠牲にして、PostgreSQLは拡張性と互換性を念頭に置いて設計されました。 プロジェクトが可能な限り高速な読み取り操作を必要とする場合、PostgreSQLはDBMSの最良の選択ではないかもしれません。
- シンプルなセットアップ: その大規模な機能セットと標準SQLへの強い遵守のために、Postgresは単純なデータベース設定のために過剰になる可能性があります。 速度が必要な読み取り量の多い操作では、通常、MySQLがより実用的な選択です。
- 複雑なレプリケーション:PostgreSQLはレプリケーションを強力にサポートしていますが、それでも比較的新しい機能であり、primary—primaryアーキテクチャのようないくつかの設定は拡張機能でのみ可能です。 レプリケーションはMySQLのより成熟した機能であり、多くのユーザーは、特に必要なデータベースおよびシステム管理の経験がない人にとって、MySQLのレプリケーション
結論
今日、SQLite、MySQL、PostgreSQLは、世界で最も人気のあるオープンソースのリレーショナルデータベース管理システムです。 それぞれには独自の機能と制限があり、特定のシナリオに優れています。 RDBMSを決定する際にはかなりの数の変数があり、その選択は最も速いものや最も機能のあるものを選ぶほど簡単ではありません。 次にリレーショナルデータベースソリューションが必要な場合は、これらのツールやその他のツールを深く調べて、ニーズに最も適したツールを見つけてくださ
SQLの詳細と、リレーショナルデータベースの管理にSQLを使用する方法については、”SQLデータベースの管理方法チートシート”を参照することをお勧めします。 一方、非リレーショナル(またはNoSQL)データベースについて学びたい場合は、NoSQLデータベース管理システムの比較をチェックしてください。