
Athena(S3)上に
{ user_id: varchar(24) column1: ... column2: ... : }
のようなデータが有ってこれを MySQL で使うためにインポートしたいのですが
CREATE TABLE test1 ( id int AUTO_INCREMENT NOT NULL PRIMARY KEY, user_id nchar(24), : UNIQUE (user_id) )
というような Rails で使いやすいように PK を int にしたテーブルを作ったところ
上長にパフォーマンスに問題がなければテーブルの型は同じにしてくれといわれて
(id が複数あるとまぎらわしいらしい)
CREATE TABLE test2 ( user_id nchar(24) PRIMARY KEY, : )
という形式で作り直したところインポート時間が著しく悪化します
(数十万件のレコードのバルクインサートが数秒だったのが数十秒かかるようになります…)
PK を int から 24 文字の文字列にしただけでここまでパフォーマンスがおちるものなのでしょうか
前者はカラムを追加してかつもとの user_id にも UNIQUE index を作成しているのに
後者のほうが遅い理由がよくわかりません
それとも create 文の書き方が悪いのでしょうか

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/06/18 02:40