私は古いサーバーと学生のマークの巨大なMySQLデータベースを持っている すべての学生のための唯一の共通のテーブルがあります:学校データベースの正規化は、より良いもパフォーマンスになります
STUDENT_IDは| teacher_id |マーク| 6つのプロジェクトでは、学校や生徒の〜800、日常のマーク
の生徒5000〜あり、我々が持ってい
コメントもパフォーマンスに問題がある - 彼らのマークのすべてのクエリは、結果を得るために約2分かかり 私は疑問を持っているテーブルのインデックス
を使用する方法によって、 - 私は正規化を使用して、このようなすべての学生のための別のテーブルを作成する場合:
STUDENTS_TABLE
student_id | table
ivanov | ivanov_table
IVANOV_TABLE
teacher_id | mark | comment
それは私がより良いもパフォーマンスをする助けとなるでしょうか?
私は新しいサーバーを購入する機会がありません。
追加: mysql> SELECT * FROM all_students_table where student_id=001
を使用すると時間がかかります。私はすべての学生の情報が1つの巨大なテーブルにあるためだと思います。そして、私はすべての生徒のための個々のテーブルが作成されると仮定します - それはこのようなクエリのための時間がより少なくなります:mysql> SELECT * FROM student_001_table
。私は正しい?
ADD: この表は、3歳と、唯一の賢明な結論を mysql> SELECT COUNT(*) FROM students_marks
は、行の2 453 389結果を与えるとSELECT * FROM all_students_table where student_id=001
のような単純なクエリは時間がかかりすぎるので、それは毎日
を支援質問とその問題のより具体的な説明。 – tadman
私は@tadmanに同意しますが、den-normalizedデータは報告用アプリケーション(例えば –
など)の方が優れていますが、学生ごとに別のテーブルを作成するのは正規化ではありません。あなたが私たちに示したことに基づいて、日付フィールドが役立つかもしれませんので、それをフィルタリングすることができます。 –