今現在、完全にWEBの人になってるのに、ナカナカ完成させられない自分にやや呆れています。
あっちがこうだと、こっちがこーで、行ったり来たりです。
で、今回は大量にSQLに登録するときのscriptをしったのでメモ。
大量登録はマルチプルインサートが良いらしい
今作っているベースシステムはやはりWordpressなワケです。
本格SEの人は、
そーゆーのにWordpressは向いてない
と言ってるのは知ってます。
でも、別のシステムを使うにはまた勉強が必要だし、知ってる範囲で一から作ろうとも思わないので
WordPressを上手く使おう
というのが課題の一つでありました。
で、すぐさま躓く事になったのが 記事の投稿とかのデータベース登録関係。
色々調べてはみたけど、効率良く一括でインサートしてくれるような関数が見つからない。
で 諸々 SQL系で調べてみると、『マルチプル』が良いらしい。
ようは
"INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) VALUES ( 123, 'abc', 'efg' ),( 124, 'abc2', 'efg2' )"
みたいに書いて、一個のINSERT文で済ませるって事のようです。
なるほど。
"INSERT INTO ...." "INSERT INTO ...." "INSERT INTO ...."
のようにはやらないでまとめられるのですね。
参考にさせて頂いたブログ→https://lightgauge.net/database/sqlserver/962/
という事で、機械的にUPしている部分とか、まとめて取得したりする部分は、
ループにループを繰り返しまくりで、SQL文を作って、記事全てをドカンとUP!!
という形にする事が出来ました。
といっても途中で止まってしまう可能性への保険をかけて、総まとめの一歩手前の100件単位だけど。
関数で組めば、後々場所をずらせば総まとめで行けるしとても便利。
ついでに、updateの場合は、デリートでまとめて消して、再度マルチプルでインサートのが早いらしい。
そー考えると、やっぱり専用のテーブル用意すべきでしたね・・・。
その辺は後々考えようかな・・・
ではでは。