MySQLデータベースを設計しています...
UserIDを主キーとして使用するテーブルがいくつかあります。これらのテーブルはすべて、ユーザーごとに1行あるため、同じ速度で増加します。主キー(UserID)を介してアクセスできることを確認すると、それぞれが一意であるため、このキーにインデックスを付ける必要はないと思います。
また、主キーとして増分番号を持ち、UserIDが2番目の列になるテーブルがいくつかあります。これらのテーブルでは、2番目の列にUserIDの複数のインスタンスがあります。(このUserIDにはそれぞれ多くの友達がいて、それぞれが異なる行にリストされています)。これらのテーブルは非常に長くなると思いますが、それほど広くはないため、GBに関しては大きくありません。
質問:上記のパート2(ユーザーID / 2番目の列)のテーブルにインデックスを追加し、クエリが結合にユーザーIDを使用している場合(すべての結合はユーザーIDから外れます)、これは結合がより大きなテーブルにアクセスすることを意味します(上記のパート2) )インデックス付きのUserIDを介して、したがってこれらの大きなテーブルへのアクセス速度は、パート1の小さなテーブルと同様になりますか?
UserIDを一意の主キー(短いテーブル)またはインデックス付きの列(大きいテーブル)として使用して結合の一部となるすべてのテーブルを持つ-これは、テーブルが取得した場合の良好な応答時間を確保するという点で、妥当な設計のように見えますか?かなり大きい-これまでに1億行になりましたか?(HWなどの他の要件を除く)。
考え?どうも