作者: 3ldk 時間: 2017-11-20 04:26 標題: Insert快既db如何選擇?
評估過, 高峰期大約每秒收5000-6000個request
每個request只係簡單insert一個record
用慣php+mysql, 可以的話都盡量想用返依個組合
不過我估多數都唔得, 係咪要改language?
變成node.js+mysql?
如果咁都唔得, 係咪要node.js+另一隻更快的DB?
作者: pl8888 時間: 2017-11-20 05:21
你可以寫咗落 temp file, 再用background thread 一個 batch insert 落 mysql 到 (LOAD DATA INFILE)
via HKEPC Reader for Android
作者: hkce 時間: 2017-11-20 09:08
回覆 1# 3ldk
mysql 行緊咩engine? MyISAM? InnDB?
兩者要fine tune concurrent insert 都唔同方法,另要睇熟manual 先好tune,亂改會炒到好慢的。
作者: tsangwailam 時間: 2017-11-20 10:36
用redis做cache
https://medium.com/@amangoeliitb ... h-redis-dbd38fdf3cb
作者: KinChungE 時間: 2017-11-20 14:29
其實php同node.js都冇分別, 只係食U
最後都係靠mysql insert
係轉的話, 都可能係php + mssql / php + oracle db
而唔係轉node.js
作者: cise4832 時間: 2017-11-20 16:45
其實modern db一秒insert 5-6000個row應該濕濕碎?
作者: 3ldk 時間: 2017-11-20 18:15
網上D比較文章, 唔係成日話node.js的Non-blocking特性, 特別適合處理大量request的嗎? 仲話php好慢, 所以我諗住係考慮DB之前, 首先要考慮個app用咩language
如果幾千個request真係濕濕碎, 咁我就照以下組合去做了
php7+mysql+myisam
再進一步, 其實我仲用慣f3+f3內置的orm
所以如果可以用埋以下組合就更加好
php7+mysql+myisam+f3+f3內置的orm
我諗一聽到orm, 好多人一定話好慢, 要效能就遠離orm...等等
但其實就我觀察, f3個orm只不過係gen條sql出黎行, 其實同你自己打sql無分別
唔明點解個個都話orm慢
作者: 梁炳 時間: 2017-11-20 19:34
php都有分apache定nginx+fpm
apache prefork未必頂到每秒5,6000
orm係會慢左同食ram左,你點都係要實測下,個個webapp情況不同
作者: hihihi123hk 時間: 2017-11-20 21:48
回覆 1# 3ldk
做啲 Eventually Consistent 嘅 DB Op 多數啲人(大 Startup) 會用 Cassandra
主因離不開「易於 Horizontal Scaling」、「Linear Performance on Scaling」
不過如果唔洗考慮 Scaling 嘅話,SQL 揀岩 Engine 黎用,再做 Tuning 應該唔差得去邊
via HKEPC IR Pro v2.1.0 - iPhone
作者: 3ldk 時間: 2017-11-20 22:31
咁ok了, 可以揀php7+mysql了, 最緊要confirm依兩個係無問題, 只係server影響的話, 將來換server同tune db就OK, 主要係唔想揀錯, 將來要重新寫過
我諗我依個case唔屬於Eventually Consistent
個app只係單純做log, 單一table, 我諗唔需要nosql都得
作者: KinChungE 時間: 2017-11-20 22:33
因為ORM要將D data變成一個object
一開新object = memory allocation = 慢左
作者: hihihi123hk 時間: 2017-11-20 23:58
回覆 10# 3ldk
咁不如真係做 log ,然後再加個 elastic search
唔好用 SQL 喇
via HKEPC IR Pro v2.1.0 - iPhone
作者: 3ldk 時間: 2017-11-21 02:37
回覆 3ldk
咁不如真係做 log ,然後再加個 elastic search
唔好用 SQL 喇
via HKEPC IR Pro v2 ...
hihihi123hk 發表於 2017-11-20 23:58
elastic search第一次聽, google話佢係search engine, 我有無搵錯資料?
log file + elastic search係點玩法?
係咪即係將D log寫晒入csv, 然後elastic search查log?
不過果D log, 之後會做處理再出report, 咁既話仲適唔適合?
作者: 專業收買佬 時間: 2017-11-21 03:02
咁ok了, 可以揀php7+mysql了, 最緊要confirm依兩個係無問題, 只係server影響的話, 將來換server同tune db就 ...
3ldk 發表於 2017-11-20 22:31
單一table....殺雞用牛刀
作者: hihihi123hk 時間: 2017-11-21 09:19
本帖最後由 hihihi123hk 於 2017-11-21 09:21 編輯
elastic search第一次聽, google話佢係search engine, 我有無搵錯資料?
log file + elastic search係點 ...
3ldk 發表於 2017-11-21 02:37
唔知你有咩用途
但係 “Log” 嘅話,意義上應該係出咗事嘅時候可以 Trace 番 For Audit,平時無事無幹根本唔會理
一日一個 Log File , 每句 Log 都係純 String, 例如
“Starting to write xxxx to DB”
“Insert DB encounter exception $e, fall back to xxxx”
純 String 要容易 Full text Search 就要靠 Elastic Search 呢類 Engine
PHP 都有大量 “Logging” Library,之後拎住啲 Log file 射去 Elastic Search powered Application
一日百幾萬行 Log 都唔出奇, 如果用 SQL 做 full text search 一定慢到癲
via HKEPC IR Pro v2.1.0 - iPhone
作者: woodlcw 時間: 2017-11-21 10:23
用serverless background再batch落(local?) db 啦
每秒幾K record 你諗返穏定性好過效率囉
作者: YuiNarusawa 時間: 2017-11-22 01:11
做過ad banner log 大量banner impression都係先cache係redis 再batch insert入 db

