大量データをMySqlでインサートするために、バルクインサートを実装しておいたのだが、
1回で使用できるプレースフォルダ数の制限数を勘違いしていた。
それも桁数で、完全に。

そして、テストデータインサートで見事にエラーで落としました!

Laravelベースでサービス構築をしておりますが、
たまに一括してデータを入れたい時があります。
その場合はQuery Builderで使ってinsertするわけです。
ところが、通常はModelにイベントをつけて、生成日時などを自動で入れているため、
Eloquentでcreate連打する分にはいいのですが、insertはイベント発火しないため、手動で設定しなくてはなりません。
そこでプレースホルダが増える、増える。

そもそも、バルクインサート処理で問題はないかなーと事前にググっていたところ
「65535」とプレースホルダの限界の記事がいくつかネットに転がっておりました。
公式の解説はどこにあるのか、いまだに見つけられませんが、リミットは必ず存在するものなので、
気を付けようと。

が、ここで「655350」と、なぜか一桁あげて認識してしまった!

ログなどの一括insertの場合は、全体で25フィールドぐらいになることがあります。
1レコードで25フィールド使うと、「655350」だと、26000件相当なので、一回でそんなに行くことは、めったにないなーと。
ところが、「65535」だと、2600件ぐらいしか、1回で入らんのです。
5000件でテストとかってざらにあるではないですか!

プレースホルダの制限にはお気を付けください。
また、制限に関する数値については、3度から5度は見直すことを心に決めた瞬間でした。