我有這個數據庫「stats19」與從英國事故的所有數據從2005年到2013年加入三個表
現在我必須創建一個DataWarehouse(星型)。
這是我想要在一個表中加入表格,省去這並不重要
stats19.casualty(202萬行),其他一些變量
AccidentIndex varchar(13)
VehicleReference int(11)
CasualtyReference_id int(11)
CasualtyClass int(11)
CasualtySeverity varchar(7)
CasualtySex varchar(28)
CasualtyAgeBand varchar(7)
...
stats19.typeperson(202萬行)
CasualtyType_id int(11)
fk_AccidentIndex varchar(13)
fk_VehicleReference int(11)
fk_CasualtyReference_id int(11)
...
stats19.accident(1494275行)
AccidentIndex varchar(13)
AccidentDate date
AccidentTime time
...
決賽桌必須有這個變量
dw.casualtytemporary(應該有202.000行)
AccidentIndex VARCHAR(255),
VehicleReference INT,
CasualtyReference INT,
CasualtyClass INT,
CasualtyType INT,
AccidentDate DATE,
AccidentTime TIME,
CasualtySex VARCHAR(255),
CasualtyAgeBand VARCHAR(255)
我一直在努力執行此項插入
INSERT INTO CasualtyTemp
(SELECT c.AccidentIndex,c.VehicleReference,c.CasualtyReference_id,
c.CasualtyClass,t.CasualtyType_id,a.AccidentDate,a.AccidentTime,
c.CasualtySex, c.CasualtyAgeBand
FROM (stats19.Casualty as c
INNER JOIN stats19.typeperson as t
ON c.CasualtyReference_id = t.cf_CasualtyReference_id
INNER JOIN stats19.accident as a
ON a.AccidentIndex = c.AccidentIndex))
);
問題是當MYSQL CommandLine或Workbench都無法通過獲取錯誤(斷開連接)或插入太多時間來插入。
決賽桌dw.casualtytemporary應該有2,020,000行,因爲這是原始表所具有的。
那麼,你的問題是如何使查詢更快?或者如何增加客戶端的超時時間,以便在完成之前不斷開連接? – IMSoP
你檢查過你選擇查詢嗎?如果你確信數據,那麼使用'LIMIT 10000'。然後繼續「LIMIT 10000,10000」等等。這只是超時問題 – Alex
我的問題是我做錯了嗎?或者,我是否正確地做,並應該嘗試提高超時或優化? select可以使用限制1000或限制1000,1000(偏移量)。問題出現在連接生成2,020,000行時,以及當做一個2,000,000的偏移量時,它將多達3,000,000行插入到命令表中。 – Napsteir