在我的數據庫中我有名爲fo_image_guestimage的表,它僅包含多於2,63,000行。但是,當我試圖更新只有一個的內容,它yakes太多的時間(121.683ms)如何最小化在mysql中的查詢時間
我的表結構 -
我的查詢執行和它的時間
如何最小化mysql中的查詢時間?我的表類型是InnoDB。
編輯1-
我的數據庫大小 - 3.5 GB,fo_guest_image表大小2.8 GB
表結構
CREATE TABLE `fo_guest_image` (
`Fo_Image_Id` INT(10) NOT NULL AUTO_INCREMENT,
`Fo_Image_Regno` VARCHAR(10) NULL,
`Fo_Image_GuestHistoryId` INT(10) NOT NULL,
`Fo_Image_Photo` LONGBLOB NOT NULL,
`Fo_Image_Doc1` LONGBLOB NOT NULL,
`Fo_Image_Doc2` LONGBLOB NOT NULL,
`Fo_Image_Doc3` LONGBLOB NOT NULL,
`Fo_Image_Doc4` LONGBLOB NOT NULL,
`Fo_Image_Doc5` LONGBLOB NOT NULL,
`Fo_Image_Doc6` LONGBLOB NOT NULL,
`Fo_Image_Billno` VARCHAR(10) NULL,
PRIMARY KEY (`Fo_Image_Id`)
)
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
AUTO_INCREMENT=36857
查詢隨着執行時間 -
select COUNT(Fo_Image_Regno) from fo_guest_image; Time: 11.483ms
select * from fo_guest_image where Fo_Image_Regno='G13603'; Time: 101.381ms
update fo_guest_image set Fo_Image_Regno='T13603' where Fo_Image_Regno='G13603'; Time: 144.360ms
我已經嘗試了nonblob表: - fo_daybook大小400 KB
查詢隨着執行時間 -每天
select * from fo_daybook; Time: 0.144ms
select fo_daybok_Regno from fo_daybook; Time: 0.004ms
update fo_daybook set fo_daybok_Regno ='T13603' where fo_daybok_Regno ='G13603'; Time: 0.011ms
我的客戶增加了1000行fo_guest_image。現在fo_guest_image表格大小爲2.8 GB,肯定會逐日增加。如果桌子有一天達到10 G.B,我很可怕。那麼演出會發生什麼。
在'fo_image_GuestHistoryId'上創建索引? – hjpotter92
非BLOB列的更新需要多長時間?表中總共有多少行,而'fo_image_GuestHistoryId = 0'?這張桌子上是否有任何索引或限制? – Stoleg
@stoleg這是一個非BLOB列!我的桌子上沒有索引。 fo_image_id是主鍵,全部都是 – Sagotharan