MySQL
最終更新日: 2020年7月6日
Wagby で指定した型は、データベース内で次のように扱われます。
Wagby のインポート処理では、大量の更新用SQLを発行します。このとき、MySQL がトランザクション毎に物理ディスクに対してログのフラッシュ処理が行われる設定になっていると、処理に時間がかかります。
次のように設定すると、書き込みパフォーマンスが向上します。
仕様および制約
「java.sql.SQLException: Specified key was too long; max key length is 1024 bytes」
上記エラーが発生した場合には、モデルの定義を見直し主キーの長さが 1023 バイト以内に収まるようにしてください。型のマッピング
整数型
integer
文字列型
varchar(255) (※1,2)
文字列型 (テキストエリア)
text (※3)
日付型
date
時間型
time
日付時間型
datetime
ファイル型(ファイル名)
varchar(255)
1バイト整数
tinyint
2バイト整数
smallint
4バイト整数
integer
8バイト整数
bigint
4バイト浮動小数点数
float
8バイト浮動小数点数
double precision
固定値 (作成日/更新日)
datetime
その他 (URL型/メールアドレス型など)
varchar(255)
パフォーマンスチューニング情報
インポート処理の改善
innodb_flush_log_at_trx_commit = 0
ただしこの設定のままですと、通常の運用で障害発生時にデータを失う可能性が高まるので、インポート処理が終わり次第、デフォルト値 ("1") に戻すことが求められます。
参考資料
InitLoaderコマンドで複数のSQLを実行させる場合
Wagbyが提供するデータのインポートツールInitLoaderは、開発者が独自に定義したSQL文を実行することができます。
InitLoaderが読み込む設定ファイルに記述したsql要素で、複数のSQLをセミコロンで区切って記述する場合、MySQLのMultiQueries指定を有効にする必要があります。
環境設定ファイル project_env.xls で、MySQL への接続URLの末尾に以下の指定を加えることで、本設定を行うことができます。
&allowMultiQueries=true
参考情報:「Connector/J の Driver/Datasource クラス名、URL シンタックス、および構成プロパティ」
http://dev.mysql.com/doc/refman/5.1/ja/connector-j-reference-configuration-properties.html