回答編集履歴

5 修正

fagai

fagai score 2128

2016/03/19 02:41  投稿

まずPARTITIONSの理解を間違われているかと。。。 PARTITIONS 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)の値によって対象のパーティションに格納されます)
もしも300件しか登録しないのであればidなりにprimaryキーをつけて、300件迄しか登録できない処理は別途アプリケーション側等で制御した方が良いかと思います。
追記
もし、ユーザー情報が300件までしか登録されないことが確約されているとすれば以下が良いかなと感じました。
userテーブルはidをprimaryにして管理する。
scoreテーブルとかはPARTITION BY KEY(user_id)のように指定しておけばユーザーごとにパーティションが切られることになるので良いと思います。
scoreテーブルとかはPARTITION BY KEY(user_id)のように指定しておけばユーザーidでパーティションが切られることになるので良いと思います。
また、ユーザーによって件数の振れ幅が大きいということもあるので、サブパーティションを切っておくと良いかもですね。
4 修正

fagai

fagai score 2128

2016/03/19 02:40  投稿

まずPARTITIONSの理解を間違われているかと。。。 PARTITIONS 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)の値によって対象のパーティションに格納されます)
もしも300件しか登録しないのであればidなりにprimaryキーをつけて、300件迄しか登録できない処理は別途アプリケーション側等で制御した方が良いかと思います。
追記
もし、ユーザー情報が300件までしか登録されないことが確約されているとすれば以下が良いかと。
もし、ユーザー情報が300件までしか登録されないことが確約されているとすれば以下が良いかなと感じました。
userテーブルはidをprimaryにして管理する。
scoreテーブルとかはPARTITION BY KEY(user_id)のように指定しておけばユーザーごとにパーティションが切られることになるので良いと思います。
また、ユーザーによって件数の振れ幅が大きいということもあるので、サブパーティションを切っておくと良いかもですね。
3 修正

fagai

fagai score 2128

2016/03/19 02:39  投稿

まずPARTITIONSの理解を間違われているかと。。。 PARTITIONS 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)の値によって対象のパーティションに格納されます)
もしも300件しか登録しないのであればidなりにprimaryキーをつけて、300件迄しか登録できない処理は別途アプリケーション側等で制御した方が良いかと思います。
もしも300件しか登録しないのであればidなりにprimaryキーをつけて、300件迄しか登録できない処理は別途アプリケーション側等で制御した方が良いかと思います。
追記
もし、ユーザー情報が300件までしか登録されないことが確約されているとすれば以下が良いかと。
userテーブルはidをprimaryにして管理する。
scoreテーブルとかはPARTITION BY KEY(user_id)のように指定しておけばユーザーごとにパーティションが切られることになるので良いと思います。
また、ユーザーによって件数の振れ幅が大きいということもあるので、サブパーティションを切っておくと良いかもですね。
2 修正

fagai

fagai score 2128

2016/03/19 02:27  投稿

まずPARTITIONSの理解を間違われているかと。。。 PARTITION 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)の値によって対象のパーティションに格納されます)
まずPARTITIONSの理解を間違われているかと。。。 PARTITIONS 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)の値によって対象のパーティションに格納されます)
もしも300件しか登録しないのであればidなりにprimaryキーをつけて、300件迄しか登録できない処理は別途アプリケーション側等で制御した方が良いかと思います。
1 修正

fagai

fagai score 2128

2016/03/19 02:27  投稿

まずPARTITIONSの理解を間違われているかと。。。 PARTITION 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)です)
まずPARTITIONSの理解を間違われているかと。。。 PARTITION 300ならパーティションが300個作られるだけで、ユーザーテーブルは300件を超えて登録可能です。(HASHの場合は、分割の方式がMOD(HASHに設定した値, パーティション数)の値によって対象のパーティションに格納されます)
もしも300件しか登録しないのであればidなりにprimaryキーをつけて、300件迄しか登録できない処理は別途アプリケーション側等で制御した方が良いかと思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る