mysqlデータベースの設計に関する意見や考えを聞きたいです。
基本的に、私は、フィールドにある約1000のシステムからさまざまなタイプのデータを受信するTomcatサーバーを持っています。これらのシステムはそれぞれ固有であり、固有のデータを報告します。
送信されるデータは、頻繁なデータと頻繁でないデータに分類できます。頻度の低いデータは1日に1回だけ送信され、あまり変更されません。基本的には、構成ベースのデータです。
頻繁なデータは、システムの電源がオンになっている間、2〜3分ごとに送信されます。また、システムの現在の状態を表します。
このデータは、システムごとにデータベース化する必要があり、phpページからいつでもアクセスできます。基本的に、フィールド内のすべてのシステムで、PHPページはそのクライアントシステム上のすべてのデータにアクセスして表示できる必要があります。つまり、データベースはシステムの状態を表示する必要があります。
情報自体はすべてテキストベースであり、たくさんあります。構成データ(あまり変更されない)はキーと値のペアであり、現在約100個あります。
私の設計のアイデアは、100以上の列と、構成データを保持するシステムごとに1つの行を持つことでした。しかし、主に将来的に列を追加する必要がある場合、将来性があまりないため、列がこれほど多くなるのではないかと心配しています。そうすると挿入速度も気になります。これは、1秒間に約100回アクセスされる2000行x 200列のテーブルに吹き飛ばされる可能性があるため、最初の設計でこれに対応する必要があります。
また、エンジンに基づいて頻繁に変更され、めったに変更されないデータに対応する設計哲学があるかどうかも疑問に思います。INSERT / UPDATE時間を低く抑えたいので、これは理にかなっています。phpからのSELECT時間についてはあまり気にしません。
また、データを分割する方法も知りたいです。つまり、頻繁に変更されるデータをいくつかの異なる方法で分類できる場合、データを表す一連のテーブルを用意して、それらを選択に結合する必要がありますか?すべてのシステムに共通のプロパティを表示する(つまり、特定の条件を持つすべてのシステムを表示する)ためにレポートを作成する必要があるため、これについて心配しています。
誰かが私を正しい方向に向けるために十分な情報をここに提供したことを願っています。この問題に関するどんな助けも素晴らしいでしょう。または、誰かが似たようなことをしてアドバイスを提供できるなら、私はとても感謝しています。ヒープに感謝します:)
〜ダン