2011-04-01 10 views
1

私は、私たちの全社規模のIP情報を含む既存の(そして肥大化した)ExcelシートをMySQLデータベースに移植することを任されました。私はちょうど他のいくつかのExcelシートを変換しましたが、何千もの行を保持していませんでした。これは新しいデータベースであり、100万レコード以下であれば近いので、私はそれを最適化するようにしたいと思っています。最適な速度〜1M行のためのテーブルデザイン

私たちは、各アドレスを持っている必要がある情報:

  • IPアドレス
  • マスク
  • ホスト名
  • 部門
  • ネットワーク(音声、データ、ルーティング、等)

ご協力いただければ幸いです!

感謝:)

+5

ような何かにあなたのデータを正規化するために、あなたを助言します。 – zerkms

答えて

2

あなたが最適な速度を求める場合には、それが挿入または選択のスピードの速さになります考慮

  • を取るためにいくつかのこと。どちらも解決できるが、それを犠牲にして解決することができる。
  • 実際には、うまく設計されたデータベースでは100万行はそれほど多くありません。

私はそれはあなたがこのテーブルに対して実行されます問い合わせるかに依存し、次の

CREATE TABLE Hosts (
    HostID AUTOINCREMENT PRIMARY KEY 
    , IPAddress VARCHAR(15) 
    , Mask  VARCHAR(15) 
    , Hostname VARCHAR(32) 
) 

CREATE TABLE Departments (
    DepartmentID AUTOINCREMENT PRIMARY KEY 
    , Department VARCHAR(32) 
) 

CREATE TABLE Divisions (
    DivisionID AUTOINCREMENT PRIMARY KEY 
    , Division VARCHAR(32) 
) 

CREATE TABLE Networks (
    NetworkID AUTOINCREMENT PRIMARY KEY 
    , Network VARCHAR(32) 
) 

CREATE TABLE CompanyWide (
    HostID INTEGER 
    , DepartmentID INTEGER 
    , DivisionID INTEGER 
    , NetworkID INTEGER 

    , FOREIGN KEY (HostID) REFERENCES Hosts(HostID) 
    , FOREIGN KEY (Department) REFERENCES Hosts(DepartmentID) 
    , FOREIGN KEY (DivisionID) REFERENCES Hosts(DivisionID) 
    , FOREIGN KEY (NetworkID) REFERENCES Hosts(NetworkID) 
) 
+0

これは、選択の速度が増します。挿入はあまり頻繁ではないでしょう。私はちょうど部門全体を見上げるには時間がかかると心配しています。ありがとう:) – PsychoKlown

関連する問題