作者localhost (127.0.0.1)
看板PHP
標題[請益] json跟資料庫查詢的速度哪個快
時間Fri Apr 27 16:53:26 2018
目前接到案子是 成績評級加排序
排序沒問題 評級的話是有另外一個對照表 例如100分 A++ 90分A+
之類的
如果我用成績去select對照表
還是先用json把對照的資料全都傳過去 用成績當key值對應 這樣速度差異大嗎
目前測試資料量不多 是無感
這是要跑大量的報表 可能會有幾萬筆
加上有好幾科 數量會有幾十萬筆
這樣是用哪個方法效能最快?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.246.33.199
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1524819209.A.1B4.html
1F:→ MOONRAKER: 沒index: 資料庫快一點因為他code最佳化 04/27 18:10
2F:→ MOONRAKER: 有index: 資料庫電死你土製json 04/27 18:11
3F:→ MOONRAKER: 你做index絕難做贏資料庫 沒做更慘 所以不要土炮了 04/27 18:11
4F:→ MOONRAKER: 除非你的json是MongoDB那種表面json底下資料庫的玩意 04/27 18:12
5F:→ localhost: 程式是用angularjs+php開發的 資料庫是mysql 04/27 19:43
6F:→ localhost: angularjs似乎都是用json在傳遞 目前也只是剛接手 04/27 19:44
7F:→ localhost: 也就是說有索引的話 資料庫查詢會比較快? 04/27 19:47
8F:→ localhost: 我看之前的作法都是把資料全部塞在json裡面 04/27 19:47
9F:→ apple0660: 你是要把幾萬筆資料傳到前端處理嗎? 04/27 20:42
應該這麼說 程式的本體是JAVA寫的 就是用json來提供各種資料
目前接手到的都是用json送過來的資料 我也是有資料庫的連線設定
如果用資料庫的效能較高 我就可以直接處理 如果是json速度快
我就必須請對方將整個對照表的資料用json傳給我...就是這樣
當時為什麼不直接用資料庫 我在猜當時有可能是PHP跟資料庫放不同server
舊的連線被註解掉還留著QQ 應該是跨server效能不佳吧 現在是有整合了
※ 編輯: localhost (36.239.219.56), 04/27/2018 22:08:12
10F:推 liisi: 感覺案子的資料結構不複雜 還不需要用到json吧 04/27 23:16
11F:→ liisi: 另外 為何不在成績計算好時 也把評級放入 就不用作對照了 04/27 23:18
12F:→ iFEELing: 幾十萬筆對JSON很大 但對調好的DB是小CASE 04/28 09:58
13F:→ iFEELing: 評級固定的話直接用select case 做掉 不用再查表了 04/28 09:59
14F:→ MOONRAKER: 都angularjs應該是沒有辦法不用json。 04/28 10:41
15F:推 GALINE: 其實要看你怎麼用,批次作業的話一大包分行JSON有優勢 04/30 18:55
16F:→ GALINE: 但隨機存取不適合... 04/30 18:56
17F:→ GALINE: 如果常常需要隨機讀寫檔案,SSD 是你的好朋友 04/30 18:56
18F:→ banqhsia: 用 redia zset (有序集合),全部東西 push 進去,再 05/18 08:48
19F:→ banqhsia: 拿出來就是排序完的列表了。 05/18 08:48
20F:→ banqhsia: redis zset* 05/18 08:48