這個查詢極其緩慢花費大量的時間來執行:的MySQL更新查詢使用索引
UPDATE facturacion2013_full a, facturacion2013_contadores b SET a.B1 = b.consumo WHERE a.contador = b.contador
這裏我表結構:
CREATE TABLE IF NOT EXISTS `facturacion2013_full` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`poliza` int(8) NOT NULL,
`contador` varchar(12) NOT NULL,
`B1` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fields_idx` (`contador`),
KEY `fields_iidx2` (`poliza`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
CREATE TABLE IF NOT EXISTS `facturacion2013_contadores` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`poliza` int(8) NOT NULL,
`contador` varchar(12) NOT NULL,
`consumo` int(8) NOT NULL,
PRIMARY KEY (`id`),
KEY `idx1` (`contador`),
KEY `idx2` (`poliza`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
我試着改變小事情,沒有運氣。還嘗試改變一些參數,如緩衝區大小,max_heap_table_size的mysql配置...我錯過了什麼?提前致謝!
首先使用'EXPLAIN'找出數據庫正在做什麼。 – 2014-02-12 19:16:11
我安裝了5.1版本我無法使用EXPLAIN UPDATE ... –