データを保存するには mysql とファイルのどちらを使用する方が良いでしょうか?
質問
データを保存するために mysql を使用するのが良いのか、それともファイルを使用するのが良いのか疑問に思っています。何が安全で、何が速いのでしょうか?phpとmysqlについて話しています。
解決
これは完全にあなたの要件や設定に依存します。
複雑なクエリを必要としない少量のデータの場合、ファイルが高速です。サイトのキャッシュは一例であります。
の詳細な構造を持つ大規模なデータセットやセットの場合、データベースは、より高度な方法でデータを照会することができます。
は、安全性の面では、ファイルは(許可を使用して)保護することができ、ウェブルート外に格納します。データベースは、特定のホストにロックすることができ、異なる役割/権限を持つユーザーを持つことができます。
他のヒント
前述したように、それはデータにも依存しますが、現在のボトルネックにも依存します。
IO リソースがすでに不足しているサーバー上でアプリケーションが実行されている場合は、いずれにしてもネットワーク タイプのストレージを選択することをお勧めします。
セキュリティの問題は、使用されているテクノロジーよりも、セットアップと優れた実践方法に関連しています。ファイルを書き込む場合は、そのファイルがダウンロードできないようにする必要があります。データベースを使用する場合は、SQL インジェクションなどに注意する必要があります。
ファイルとリレーショナル データベースに限定されないことを強調したいと思います。
も使用できます memcached データをメモリに保存します (キャッシュなどに最適です)。NOSQL のようなデータベース レディス もオプションです。
- データベース (つまり MySQL):
長所:検索可能、複雑で構造化されたデータを処理できる、別のサーバーでホストできる、永続的
短所:遅い
一般的な使用法:ビジネスデータストレージ - ファイル:
長所:セットアップが非常に簡単、非常に高速、永続的
短所:非常に複雑なデータの処理には適さない、検索できない、サーバーホストの IO リソースを消費する、 それ 速い
一般的な使用法:ログ ファイル、テンプレート キャッシュ ファイル - NOSQL (つまり Redis):
長所:高速、リモートホスト上でセットアップ可能、永続的
短所:検索が容易ではないため、強力に構造化されたデータには適していません
一般的な使用法:パフォーマンスハック (検索) - メモリ:
長所:最速のもの!は、リモートホストのConsでセットアップできます。NOSQL と同じ + 永続的ではない
一般的な使用法:オブジェクトのキャッシュ
は、データに依存します。
それはしかし、本当に些細でない限り、あなたにもMySQLを使用することができます。明白な欠点は本当にありません。
一般に、データを保存するには、ある種のデータベースまたはオブジェクト ストアが必要になります。これは、データにクリーンなインターフェイスを提供するためです。 取得する あなたのデータ。ただし、保存しようとしているデータに大きく依存します。
ユーザーが変更可能なデータを含む Web サイトを作成している場合は、おそらく MySQL またはその他のデータベースを使用することになるでしょう。単に文書を入力することについて話しているだけであれば、データベースのオーバーヘッドはおそらく価値よりも問題のほうが大きいでしょう。
より良い回答を提供するには、保存しているデータの種類とそのデータへのアクセス方法を知る必要があります。