私のアプリケーションでは、多くの外部キーの依存関係があり、多くの場合、多数の行を挿入します。これまで私が行ったことは、一度に1つのインサートを実行し、インサートIDを記録することです。多数の行を挿入する場合、apacheとmysqlが同じサーバーで実行されている場合でも、これには長い時間がかかる傾向があります。
私の質問は、単一のINSERTで複数の行を追加するようにアプリケーションを変更した場合、mysql接続によって返された最後の挿入IDに厳密に基づいて各行のIDを想定できるでしょうか?問題は、一度に複数の人がデータベースに大量の情報を入力する場合があるということです。
私が判断できたところによると、500行を挿入すると、別の接続からのクエリが開始または終了したかどうかに関係なく、挿入IDは(lastInsertID)から(lastInsertID + 499)の範囲になると想定しても問題ありません。完了するまでにかかった時間ですが、これが安全な方法として受け入れられていることを確認したいと思います。
私は主にInnoDBを実行していますが、MyISAMも時々あります。
皆さんありがとう!
-ジャー