保存処理で早いのはどちらですか?
-
タームの保存処理を書いていて、ふと思いました。
方法1と方法2では、早いのはどちらでしょうか?理由も知りたいです。
<?php // タームの登録と、カスタムフィールドの登録 /* 方法1 1つのループで処理 */ function my_insert_terms( $taxonomy, $term_names ){ $drink_ids = []; foreach( $term_names as $term_name ){ // 既存ならそのまま取得 $drink_data = term_exists( $term_name, 'drink' ); // なければ登録して取得 if( ! $drink_data ){ // タームを登録 $drink_data = wp_insert_term( $term_name, 'drink' ); // カスタムフィールドを登録 update_term_meta( $drink_id, 'alcohol', '50%' ); } // タームのIDを取得 $drink_ids[] = intval( $drink_data['term_id'] ); } return $drink_ids; } /* 方法2 2つのループで処理 */ function my_insert_terms( $taxonomy, $term_names ){ $drink_ids = []; foreach( $term_names as $term_name ){ // 既存ならそのまま取得 $drink_data = term_exists( $term_name, 'drink' ); // なければ登録して取得 if( ! $drink_data ){ // タームを登録 $drink_data = wp_insert_term( $term_name, 'drink' ); } // タームのIDを取得 $drink_ids[] = intval( $drink_data['term_id'] ); } // カスタムフィールドを登録 foreach( $drink_ids as $drink_id ){ update_term_meta( $drink_id, 'alcohol', '50%' ); } return $drink_ids; }
方法1の方がループが1回で済む点で早そうですが、しかしターム登録処理のループの中で、そのタームIDを使って別のテーブルであるタームのカスタムフィールドを処理し、またタームを登録して、そのタームIDを使って別のテーブルであるタームのカスタムフィールドを処理し、、という風に、ループの中で二カ所のテーブルを処理しなければならなくなる点で遅いのではないかとも感じました。
方法2はループが2回ですが、方法1のようにあちこちのテーブルを交互に処理するということなく、タームの登録が終わったら、タームのカスタムフィールドを登録する、という処理になっていて、この点で早そうに思います。
このあたりはどのように判断できるでしょうか。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「保存処理で早いのはどちらですか?」には新たに返信することはできません。