シナリオを問い合わせ:
は、2つのテーブルがあるとします。表Aと表B Aが100万行が含まれ、表Bには表A速度差が
におけるいくつかの場合ではないすべての行を含めることができます# Table A
,----,-------,------,---------,-------,---------,
| id | email | name | surname | score | updated |
'----'-------'------'---------'-------'---------'
# INDEXES
PRIMARY email
INDEX date_open
INDEX date_click
INDEX date_send
INDEX score
# Table B
,-------,-------,---------,
| email | score | updated |
'-------'-------'---------'
# INDEXES
PRIMARY email
INDEX score
質問:
を使用すると、1つのあなたが選ぶだろう2つのクエリの1、のどちらかを選択する必要があると仮定?
REPLACE INTO `Table_B` (`email`, `score`, `updated`) SELECT `email`, `score`, `updated` FROM `Table_A`;
REPLACE INTO `Table_B` (`email`, `score`, `updated`) SELECT `email`, `score`, `updated` FROM `Table_A` WHERE `updated` = 'yes';
どのクエリが高速になりますか?表Aのupdated
にインデックスを追加すると、クエリが高速化されますか?