データベースを選択する方法: 1. ターゲット、2. 機能、3. 何人が使用し、同時実行の問題を理解しているか、4. セキュリティと安定性、5. 使用されているオペレーティング システム。
関連する無料学習の推奨事項: mysql ビデオ チュートリアル
データベースの選び方:
5つの側面から全体のバランスを考える:
(1) ターゲット(2) 機能 (3) 使用人数(同時実行性の問題) (4) セキュリティと安定性 (5) 使用する操作 システム ( UNIX、linux、windows)使用されるデータベースは次のとおりです: • DOS/Novell/Windows 3.x 世界の dBase/FoxBase/FoxPro # • MS SQL Server • Oracle • Sybase SQL/ASE サーバー • Sybase IQ • Informix/Dynamic • MySQL
• PostGreSQL/EnterpriseDBいくつかの主要な要件の選択肢:
ミッションクリティカル (OLTP) および高性能システム
主要なビジネス システムにおいてデータベースがより重要な役割を果たす必要があり、ダウンタイム/高可用性/クラスタリング、信頼性 (パフォーマンスとデータ量)、災害時レプリケーション、自動レポート生成などの目標を達成したい、または極めて高いレベルの速度と低遅延 (HPC、ハイ パフォーマンス コンピューティング) の効果を考慮すると、エンタープライズ クラスのデータベース機能が必要になる可能性がありますが、コストも高くなります。 HA (High Availability) クラスタ機能 各データベースプラットフォームのクラスタ機能は以下のとおりです。 • Oracle RAC は HA クラスタ、ロードバランシング、拡張に最適です。 ; • MS SQL Server は HA フェイルオーバー機能を提供しますが、ロード バランシングはありません;# • Sybase ASE 15 クラスタは Oracle RAC と同等の機能を備えています;
# • TeraData 自体は分散データベース プラットフォーム; ;•MySQL Cluster は、TPC-C パフォーマンス ベンチマークが Oracle RAC よりも高いと主張;;•IBM P シリーズ上の IBM DB2/UDB/Power running AIX HACMP (High Availability Cluster Multiprocessing) ) Veritas VCS/Sun などのサーバーやクラスター上で非常にうまく動作します。 高パフォーマンス/低遅延/インメモリデータベース • OracleはTimesTenインメモリデータベースを提供; • MySQLクラスタはインメモリストレージエンジンを使用;• Sybase Provide ASE メモリ データベース; • さらに、RAMSAN/SSD (ソリッド ステート ドライブ) を使用して SQL Server データベースをインストールすることもできます。データベースに関連するすべてのディスク I/O は、従来のハードディスクの代わりに SSD を使用するため、ディスク I/O レイテンシーを大幅に削減し、I/O スループットを向上させ、データベースの全体的なパフォーマンスを向上させることができます; • 他にもインメモリ データベースがあります、SQLite や eXtremeDB などがありますが、そのほとんどは組み込みシステムのみをサポートするか、同時に単一のユーザーまたは単一の接続のみをサポートします。
スケーラビリティ/パフォーマンス
• Oracle RAC および Sybase ASE 15 クラスタを使用する場合、既存のハードウェアがパフォーマンス要件を満たせない場合は、Use a を追加するだけで済みます。より強力なサーバーを使用し、徐々に他のノードを置き換えます。
• SQL Server クラスターを使用する場合、アクティブ/パッシブ モードのみがサポートされるため、インスタンス レベルでの拡張性がありません。既存のハードウェアが条件を満たすことができない場合は、必要な場合は、クラスター全体を交換する必要があります。##• MySQL Cluster は、すべてのノードがアクティブになっているクラスターへのノードの追加もサポートしていますが、これはシェアードナッシング クラスターであり、ノードが増えるとデータベース コピーも増え、ストレージも増えます。すべてのノード間でデータを複製するには、より多くのネットワーク トラフィックが必要になります。
レプリケーション
• Sybase: Sybase は、Oracle の Data Guard や SQL Server のレプリケーション ソリューションを上回る、最高のレプリケーション ソリューションを持っています (つまり、ミラーリング/ログ配布/トランザクション レプリケーションを使用しているのに対し、SQL Server のレプリケーションにはまだ及ばない) Sybase のレプリケーション サーバーよりも悪い) が理由の 1 つです。
Sybase レプリケーションは、データベース レベル (SQL Server のミラーリングよりも優れたアクティブ/アクティブ レプリケーション)、トランザクション レベル (SQL Server のトランザクション レプリケーションに似ています)、テーブル レベル、ストアド プロシージャ レベル、関数レベル、MSA (マルチサイト利用可能)、ログ シッピング(レプリケーションの世界における貧乏人のソリューション)経由で実装されており、そのミラー アクティベーターと EMC/SRDF を組み合わせることで、計画的および計画外のダウンタイムが発生した場合でも ZDL(データ損失ゼロ)を真に保証できます。
• SQL Server: SQL Server のレプリケーションは、ログ配布とデータベース ミラーリング (アクティブ/パッシブ、R/W または読み取り専用) を通じて実装でき、オブジェクト レベル (テーブル) の詳細なトランザクション レプリケーションをサポートします。
• Oracle: Oracle の Data Guard は、データベースのクローン作成と災害復旧 (RMAN を使用) に最適なソリューションの 1 つです。
• MySQL: MySQL はシェアードナッシング クラスタを提供します。基本的にすべてのアクティブ ノードは同期的にレプリケートされます。その非同期レプリケーションはトランザクション レベルとオブジェクト レベルのレプリケーションもサポートします。
• ストレージ レベルのソリューション: EMC の BCV、NetApp の Snapshot Manager、Hitachi の Snapshot、Veritas の Volume Replicator を使用すると、ディスク ブロック レベルとボリューム レベルでデータ レプリケーションを実行できます。
ハイブリッド システム
通常、バックエンド データベースには大量のデータが保存されており、データの取得時にパフォーマンスの問題が発生します (データの並べ替え、グループ化、集計と計算)問題は、実行速度が遅くなると、データの書き込みプロセスに影響を与えます。
したがって、この種のアプリケーションでは、データベースが大量のデータを適切に処理し、読み取り/書き込みのブロック問題も適切に処理することが期待されます。
• Oracle
Oracle では、読み取り/書き込みプログラムが相互にブロックせず、読み取りプロセス/セッション/全体にわたってデータが保持されるため、この種のシステムには Oracle が最適です。これらはすべて一貫性があり、システム オーバーヘッドは主にメモリ ロックと REDO ログで発生します。
• SQL Server
SQL Server 2005 の新しいスナップショット分離では、Oracle と同じ行バージョン管理機能が使用されますが、tempdb でより多くの IO が生成されます。
• Sybase ASE
Sybase ASE の読み取り/書き込みプログラムは相互にブロックしますが、Sybase IQ はスナップショットのバージョン管理を使用してこのブロックの問題を解決します。
• その他のデータベース
ブロッキングの問題が発生しないデータベースは他にもありますが、その中には ACID (原子性、一貫性、分離性、耐久性) 標準にさえ準拠していないデータベースもあります。
データ ウェアハウス
企業は、すべての履歴データと、データベースに配置する必要があると考えられるデータを保存/アーカイブするためにデータ ウェアハウスを構築します。 - 正規化されたデータはデータ ウェアハウスに送られ、多次元により OLAP およびビジネス インテリジェンス (BI) ソリューションの高速検索が可能になります。
データ ウェアハウスは、新しいビジネス戦略や強化されたビジネス戦略のバックテストにも使用され、さらに、データ ウェアハウス内のデータは直線的ではなく指数関数的に増加します。
列ベースのリレーショナル データベースの利点
列ベースのリレーショナル データベースには、本質的に多次元であり、各列が自己インデックス (B ツリー) であるため、大きな利点があります。
一般的な列ベースのデータベースには、Google の Big Table、Sybase IQ、Vertica、MySQL 上に構築された KickFire などがあります。
これらの列ベースのデータベースは、Oracle、SQL Server、Sybase ASE、TeraData、DB2、MySQL などの従来の行ベースのリレーショナル データベースよりもデータ取得が平均して 60 ~ 100 倍高速です。行レベルに基づいてデータを更新すると遅くなります。今のところ、この分野では Sybase IQ がリーダーのようです。世界最大のデータ ウェアハウス (1P バイト以上) では Sybase IQ が使用されていると言われています。
一般に、行ベースのリレーショナル データ (SQL Server、Oracle、Informix、DB2/UDB、MySQL、Sybase ASE など) は OLTP アプリケーションに適していますが、列ベースのリレーショナル データベース (Sybase IQ、 KickFire、Vertica など) は、OLAP/DSS およびデータ ウェアハウス アプリケーションにより適しています。
注: OneTick、kdb、Vhayu などの時系列データベースはリレーショナル データベースとは見なされません。それらのストレージ構造はファイルに基づいています。各列のデータは別個のファイルに保存されます。基本的には列です。データベース、列ベースのデータベースもバックテストに使用できます。さらに、行ベースのデータ ウェアハウス (キューブ) 内のデータは指数関数的に増加しますが、列ベースのデータ ウェアハウス内のデータは直線的に増加します。
従来、Oracle はデータ ウェアハウス分野のリーダーでしたが、現在は列ベースのリレーショナル データベース (Sybase IQ、Vertica、KickFire など) の前にその優位性を失いました。 Google が使用しているものも、列ベースのデータベース/ストレージ システムです。
以上がデータベースの選び方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。