PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Database
[討論] 大量update下,資料庫設計的方式
作者:
keke0421
(zrae)
2015-01-15 23:14:15
各位大大好
最近設計資料庫時遇到一些問題 想請問前輩
假設一個網站上面有50個功能,每個功能結束時會call一個api去update
一張資料表的欄位 及 select 動作。
若同時間約有10萬人使用這50個功能,而且不用批次寫入資料庫的方式,
有比較好的設計方式?
我的想法是,將這一張資料表,在依功能拆成5~10張小表,
分散資料表被request的數量。
網路上有找到Partition Table的資訊,但無奈看不是很懂,
想請各位前輩有沒有好的方式,關鍵字也可以QQ
作者:
iamnotfat
(我不肥)
2015-01-16 10:44:00
用戶行為結束後, 為何還要select 給他? 這個overhead有點危險~
作者:
gname
((′口‵)↗︴<><...<><)
2015-01-16 13:23:00
原po指的SELECT 應該是 UPDATE 完後使用者要看新的資料給原po: 你的系統可以同時間承載10萬人連上來用嗎?如果不行,那你何必去考量這個情況?
作者:
konkonchou
(卡卡貓)
2015-01-16 15:36:00
效能是個問題,deadlock也得考慮,AP加個排queue功能或許犧牲一點點即時性但整體穩定會比較好一些
作者: wen001 (專長就資料庫阿,奇怪嗎?)
2015-01-17 21:51:00
你的update與select可否再描述一下。例如是否update同一筆row,還是有其他where條件值。你有client sn與任務sn 所以就不會存在同一筆row update問題,lock問題沒有程式干預就還好。你的問題在於可能會在單一table的select產生大IO。能盡量拆分table就儘量拆,where條件要考慮index,同一語句下若where條件太多先用子查詢縮小範圍,記得同一sql語句 子查詢會先載入在記憶體。partition概念有點像是用月份拆分不同減少IO。建議用程式解決,開發階段先別考慮partition。加油,硬體上大陸有用一台AIX+夠強的Storage撐整個中國的春運,沒理由臺灣不行。你說的index是必須存在的,但是index也是一個table,假設Row過多也是要把Table用陳舊資料的方式區分,最簡單是用日期月份年份區分。看起你的問題瓶頸會在selectIO
作者:
gname
((′口‵)↗︴<><...<><)
2015-01-23 11:00:00
從你的敘述看起來任務條件表是拿來讀的? 那何不進 cache ?
繼續閱讀
[SQL ] MYSQL 遠端批次備份條件式指令如何下?
duolala
[SQL ] 請問使用to_number字串轉數字的錯誤
erho
[SQL ] 由兩個欄位之計算自動得到第三個欄位?
HelloJimmy
Re: [討論] 需要下條件的欄位太多
wen001
Re: [討論] 資料量大的時候要怎麼優化db & sql?
wen001
[討論] 請問要儲存重複表格的設計?
embman
[討論] MySQL Transaction Timeout
b60413
[情報] 對DB有興趣的朋友,歡迎參加Sql Pass聚會
rockchangnew
[SQL ] 關於次一筆資料排序及選取
Marty
[討論] datamining weka問題
goturback
Links
booklink
Contact Us: admin [ a t ] ucptt.com