Sun shine 16:15:55
帥哥 我有個手機表 大約有700百資料,,每天新增 大約五萬,並且新也有update 大約10萬 然後 我每晚 把當天的資料select 匯入一個新表中的時候 整個表就鎖死了, 有什麼好的解決方案嗎
黃杉() 17:32:18
你的匯入方式是?
剛才在忙
你的匯入方式或者大概過程是怎麼樣的?
Sun shine 17:43:39
insert 表 a select * from 表b where time=day
黃杉() 17:49:45
資料量一次性操作太多了
分成N個小的sql試下
Sun shine 17:50:17
每次大約 6萬條
黃杉() 17:50:18
比如, 5分鐘的資料拉一次
Sun shine 17:50:28
好的 我試試。
黃杉() 17:50:39
每拉一次,間隔5分鐘
做成一個contrab任務
Sun shine 17:51:30
我這邊是直接 程式 jdbc 寫的sql
黃杉() 17:52:27
那就做一個java的quart任務
放到業務最低峰的時候執行。
Sun shine 17:52:49
恩是的,現在是每天匯入一次。
黃杉() 17:53:08
分多次匯入吧,我猜測你們的mysql伺服器配置很低吧
Sun shine 17:53:38
伺服器 是 8g記憶體 4核的。
整個伺服器就放了一台資料庫
黃杉() 17:54:01
好吧,跟我們的個人pc機差不多的配置
Sun shine 17:55:04
是的 比較低。
公司小,一切都得省 得重程式的方面去最佳化。
黃杉() 17:55:55
那麼操作的時候,就每次執行少量的資料,不要太多了,磁碟io,cpu啥以及記憶體啥的消耗少一些
創業型的公司吧
前途大大的
加油
Sun shine 17:56:34
對的,剛創業的公司。
技術人員配的不齊,我們寫程式的 也得搞資料庫。
黃杉() 17:57:15
那以後就是多面手了, cto的候選人
Sun shine 17:58:26
這個 還要很多年的磨練
黃杉() 17:58:44
insert 表 a select * from 表b where time=day 中, time欄位有索引嗎?
Sun shine 18:10:58
沒有 ,準備建立個索引
黃杉() 18:11:42
那要建個索引的,不然會很慢的
總結: 這種查詢慢鎖表第一問就應該諮詢where後面的time欄位有無建索引,是自己疏忽了.有些開發人員的db水平不是很強,我們要想到這一點.