1


0

2つのデータベース、1つ?

私はすべての国と都市のデータベースを持っています。ajaxを使用して、国の都市フィールドにフォームで提案を提供したいと思います。サイトの内部動作に関連するdbには多くのテーブルがあります。 これを別のデータベース(この世界地図データベースだけ)に入れても大丈夫ですか? 私はむしろそれを別のデータベースに入れてより整理し、メインデータベースに接続するのと同じページで実際に接続することはしません。 基本的にはjsonで文字列を提案する小さなphpページです。 別のデータベースとは、データベースプールを共有してパフォーマンスを低下させることを意味するのでしょうか?

これらの新しいテーブルはgeobytes.comのsqlスクリプトであり、それらがどれだけ良いのか、またはそれらをパスで使用するのかどうかはわかりません! IPテーブルの最新のリストでもっと良いものを見つけたいと思っています! ip2locationのような

5 Answer


1


時期尚早な最適化を避けます。 (アーキテクチャ上の理由から)物事を分離しようとしている場合は、それで問題ありません。 パフォーマンスを向上させようとしている場合、これによりパフォーマンスがさらに向上することをどのように知っていますか? 追加のデータファイルのオーバーヘッドが発生します。複数のデータベースを管理するデータベースサーバーのオーバーヘッドが増加する可能性があります。

せいぜいパフォーマンスウォッシュです。


1


なぜあなたがこれをしたいのかよくわかりません。 それは次の点で物事を複雑にします:

  1. 2つのデータベースの管理-例 バックアップと復元。

  2. 2つの接続構成と接続プールの管理。

  3. 将来の潜在的な参照整合性(例: ある段階であなたは エンティティは都市/国に関連付けられていますか?)

これらのテーブルは今のところそのままにしておきます。 パフォーマンスの問題が発生する場合は、それらを引き出します。


1


特に問題はありません。 私はその_necessary_かどうかを知らない-そのテーブルが1つか2つの場合、それがどうしてもパフォーマンスやセキュリティの点で重要な理由がわからない。 これらの追加テーブルにアクセスするスクリプトが心配な場合は、jsonスクリプトに別のデータベースユーザー名を使用し、読み取り専用に設定して、何らかの方法で悪用された場合に他のテーブルを変更できないようにすることができます。

正直なところ、現時点では1つのdbに保存するのが最善の策だと思いますが、必要に応じて別のデータベースにポイントできるように十分に柔軟にスクリプトを記述してください。


0


スケールアウトする必要がある場合は、アプリで既に分割されているため、簡単になります。 パフォーマンスの問題になる場合は、2番目のデータベースを2番目のマシンに配置できます。

多くのコアデータベースサーバーがある場合、それらを単一のマシンに配置することは、ほとんどのアプリで問題になりません。


0


この地理的参照データは自分のものであるように聞こえますが、あなたのウェブサイトには他の多くの「内部の仕組み」があります。

あなたのウェブサイトはサードパーティのDrupal / Joomla / etcのCMSまたは類似のものですか?

もしそうなら、そこにあなた自身のデータを保管してください。 この地理データをWebサービスに公開することを計画している場合、それは独立しています。

このサイトが自分のサイトである場合、そのデータベース内の他のテーブルと地理参照テーブルとの間の正規化の程度を考慮してください。