1 つの大きなテーブルではなく、多くのテーブル (100,000 までとしましょう) を持つことの欠点は何かと思っていました。例として、ユーザーごとに 1 つのテーブル、または user_id がインデックスであるすべてのユーザーに対して 1 つの大きなテーブルがあります。
たとえば、これらの名前の 1 つstuff
:
+----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| user_id | int(11) | YES | | NULL | |
| x | int(11) | YES | | NULL | |
| y | int(11) | YES | | NULL | |
| . | . | . | . | . | . |
| . | . | . | . | . | . |
| . | . | . | . | . | . |
対。これらの多くは、それぞれに名前が付けられて[user_id]_stuff
います。そうすれば、user_id を指定してどのテーブルに移動するかがわかります。
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| x | int(11) | YES | | NULL | |
| y | int(11) | YES | | NULL | |
| . | . | . | . | . | . |
| . | . | . | . | . | . |
| . | . | . | . | . | . |
私の直感では、多くのテーブルを使用すると実行速度が速くなりますが、1 つのテーブルを使用すると保守性と堅牢性が向上します。
また、テーブル名を作成するためにユーザーの ID が連結されているため、セキュリティ上の問題はありますか? 提供されたIDが数値であるかどうかを確認するのは簡単だと思いますが。