0

テーブルのインデックス作成に関するアドバイスを読んだところ、後で SQL クエリの実行が遅いときにインデックスを導入する必要があることがわかりました。

私の問題は、ほとんどすべての列を 1 つのテーブルにインデックス付けすることです。このテーブルは他のテーブルに関連付けられています。たとえば、users テーブルの列 country は country テーブルに関連付けられています。

user table          country table
id                  id
countryId           name

列にインデックスがない場合は外部キー制約を作成できないため、countryId 列にインデックスを追加して、それを国テーブルの ID にリンクできるようにしました。

基本的に、列に制約を追加するためだけに、他のテーブルにリンクされている多くの列があります。

たとえば、国テーブルは 100 を超えないため、誰かが誤って 101 の値を挿入した場合、国テーブルには 1 ~ 100 しかないため、mysql はそのデータを受け入れません。

では、インデックスを追加せずにテーブル データ制約の機能を維持するにはどうすればよいでしょうか。

4

1 に答える 1

1
  1. そのアドバイスはひどいです。

  2. 検索する列、または一意の値などの特定の制約が必要な列にインデックスを付けます。

インデックスを追加しない唯一の理由は、インデックスがスペースを占有することです。ただし、データベース管理者が必要なほど大量のデータを扱っていない限り、おそらく気にする必要はありません。

于 2012-05-16T04:52:29.937 に答える