質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

3回答

2850閲覧

MySQL で ON DUPLICATE KEY UPDATE を使う時 id(auto_increment) が増える対策方法を知りたい

kyaw1990

総合スコア12

MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

2クリップ

投稿2021/10/12 11:42

ON DUPLICATE KEY UPDATEを使うとき id(auto_increment)が更新の時も増えているので対策方法はあるでしょうか?

それを使わないで他に方法もあるでしょうか?

やりたい事

最大1.8万レコード分のデータ処理を1分以内で終わらせる必要があります。
新規作成の時は insert だけなので bulk insert を使っています。
更新の時はON DUPLICATE KEY UPDATEを使っているですが id が増えている問題が出ています。
laravel8 を使っています。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2021/10/12 14:48 編集

更新をUPDATEで行わない理由は何ですか? それから、名称は適当なものに変更した状態で構わないので、テーブルの定義と実行しているSQL文も追記された方が良いです
guest

回答3

0

投稿2021/10/13 00:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

更新の時はON DUPLICATE KEY UPDATEを使っているですが id が増えている問題が出ています。

何が問題なのでしょうか。auto_incrementの値は、(上限に達しない限り)一意であることは保証されますが、連番であることはもとから保証されていません

投稿2021/10/13 00:29

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

更新の時はON DUPLICATE KEY UPDATEを使っているですが id が増えている

普通の運用なら増えないと思いますが・・・

SQL

1create table tbl(id int primary key auto_increment,val int); 2insert into tbl values 3(1,100), 4(2,200), 5(3,300); 6 7insert into tbl values 8(1,200), 9(2,200), 10(4,400) 11on duplicate key update val=values(val);

投稿2021/10/13 00:19

yambejp

総合スコア115012

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問