1

ログ データベースを開発しています。この場合、ログに記録されるコンポーネントの ID は、データベース自体ではなく、レポートを送信するシステムによって決定されます。システム ID は一意の varchar であり、コンポーネントの ID はシステムによって (離れた場所で) 決定されるため、コンポーネントの主キーが system_id + component_id である場合に一意性が保証されます。

私が疑問に思っているのは、このアプローチが効率的であるかどうかです。自動インクリメントされた整数を ID として使用できますが、それは、システムが提供する既知の文字列 ID を使用する代わりに、この生成された ID を取得できるように、挿入する前に選択操作を行う必要があることを意味します。

データベースは小規模になり、システムごとに数十個のコンポーネントがあり、おそらく数千個のコンポーネントが更新されます (別のテーブル)。古い更新は定期的にファイルにダンプされ、データベースから削除されるため、「大きく」なることはありません。

推奨事項はありますか?

4

2 に答える 2

1

varchar() キーを使用すると、数百万行のテーブルが正常に機能することがわかると思います。

テストするのは簡単です。データをインポートするだけです。

于 2012-04-12T11:32:23.240 に答える
1

主キーとして自動インクリメントされた整数に傾倒し、system_id と component_id にインデックスを配置します。その挿入の前に選択すると、非常に安価で高速になります。

于 2012-04-11T23:52:19.833 に答える