ページのアクセス時にforeachでデータベースへの登録を行いたいのですが、件数が多く読み込み速度が遅くなってしまいます。
実際のものとは違うのですが簡潔に書くと以下のようなプログラムです。
データベースにデータがなければ追加するというような処理で、多いときは500件を超えます。
PHP
1foreach($rows as $row){ 2 $SQL = 'INSERT INTO test (ipaddr, port) SELECT "192.168.100.100", 6379 FROM test WHERE NOT EXISTS (SELECT * FROM test WHERE ipaddr = "192.168.100.100" AND port = 6379) LIMIT 1;'; 3 $wpdb -> get_results($SQL); 4}
SQLは;(セミコロン)で区切られるので、実行したいプログラムを変数にループですべて代入してから最後にget_resultsを実行と書いたらエラーとなってしまいました。
PHP
1$SQL = ''; 2foreach($rows as $row){ 3 $SQL .= 'INSERT INTO test (ipaddr, port) SELECT "192.168.100.100", 6379 FROM test WHERE NOT EXISTS (SELECT * FROM test WHERE ipaddr = "192.168.100.100" AND port = 6379) LIMIT 1;'; 4} 5$wpdb -> get_results($SQL);
ページの表示完了までに10秒を超えることもあり何か対策をしたいのですが、どうすればよろしいでしょうか?
環境・バージョンは以下のとおりです。
WordPress 5.1
PHP:7.0.33
MySQL:5.7.25
回答よろしくお願い致します。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/10 23:47
退会済みユーザー
2019/03/10 23:51
2019/03/11 03:08