ワークロードを多くの行に垂直に分散すると、ワークロードを多くのテーブルに水平に分割するよりもパフォーマンスが向上しますか?
- したがって、150,000,000,000 行と 6 列の 1 つのテーブル
table1(item_id,cat_id,note)
NOTE 列には、常に変化する繰り返しのない INT が格納されます。
標準的な方法。
VS
- 300,000 行と 1,000 列の 5000 個のテーブル。
table1(id,cat_id,item_1,item_2,item_3,...item_999) table2(table1_id,id,cat_id,item_1000,item_1001,item_1002,...item_1998)
...
table5000(table1_id,id,cat_id,item_499000,item_499001 ,item_499002,...item_500000)
列自体は、アイテムが含まれるすべてのカテゴリを定義します。
行は、そのカテゴリのすべてのアイテムを定義します。
上からの注: 交差するセルに配置されます。
どちらが良いですか?なんで?可能であればリンク
- 複数のテーブルを検索する場合と 1 つのテーブルを検索する場合のパフォーマンスの大幅な遅延はありますか?