0

アプリケーションに mysql db を使用しています。4,000 万行のデータを含む 1 つのテーブルがあります。このテーブルで 1 つの更新クエリを実行したいと考えています。テーブルには 3 つのフィールドが含まれています。ID、TaxiId、date&distance です。 Taxiid's.I は、このような 1 つのクエリを使用しています

 update abc set distance=0 where TaxiId in(2026,2031,2033,2035,2037,2039);

説明を使用すると、結果を下回っています

 id select_type table   type    possible_keys   key key_len ref rows    Extra
 1  SIMPLE  abc range   abc_trip_fk abc_trip_fk 5       1916397 Using where

テーブル宣言

   CREATE TABLE  `testdb`.`abc` (
 `id` int(8) NOT NULL AUTO_INCREMENT,
    `TaxiId` int(8) DEFAULT NULL,
 `distance` double DEFAULT NULL,
 `date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
   PRIMARY KEY (id),
  KEY `trip_fk` (`TaxiId`) USING BTREE,
 ) ENGINE=InnoDB AUTO_INCREMENT=125127797 DEFAULT CHARSET=latin1;

このクエリを実行すると、アプリケーション全体がハングします。

4

1 に答える 1