我注意到我的腳本變得非常慢,於是我縮小了這個問題:它是一個更新查詢。奇怪的是,SELECT查詢速度非常快。該表有大約600,000個條目。是的,id是唯一的主鍵。下面是一些例子:極慢的UPDATE查詢
SELECT * FROM `tmp_pages_data` WHERE id = 19080 LIMIT 0 , 30
Showing rows 0 - 0 (1 total, Query took 0.0004 sec)
而現在的更新查詢:
UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080
1 row(s) affected. (Query took 24.5968 sec)
正如你所看到的,選擇是非常快的,但更新慢veery。這怎麼可能?
請添加模式的結構,尤其是索引。編寫索引大小和引擎類型 – 2010-10-29 00:01:37
好吧,這裏是表格的樣子:CREATE TABLE IF NOT EXISTS'tmp_pages_data'( 'id' int(10)unsigned NOT NULL AUTO_INCREMENT, 'site_id' int(11) DEFAULT NULL, 'url' VARCHAR(255)DEFAULT NULL, 'date_added'日期時間DEFAULT NULL, 'page_status' TINYINT(4)DEFAULT NULL, 'page_type' VARCHAR(255)DEFAULT NULL, 'title_normal' VARCHAR( 255)DEFAULT NULL, 'cat_id' INT(11)DEFAULT NULL, 'title_id' INT(11)DEFAULT NULL, PRIMARY KEY('id') KEY'url'('url') )ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 658002; – okaybmd 2010-10-29 00:13:21
索引:PRIMARY(BTREE)獨特:是包裝:否\t字段:編號\t基數:658001整理:A \t無:無;指數:網址(BTREE)\t獨特:沒有\t包裝:沒有\t現場:URL \t基數:658001 \t整理:一\t空:是 – okaybmd 2010-10-29 00:13:49