2016-01-29 26 views
0

即時建立一個應用程序laravel(不相關的這個查詢我不認爲)。mysql提取所有行vs按需選擇

有一些用戶提供的設置保存在數據庫表「設置」中。

爲便於使用,這些值將在啓動時合併到應用程序(一個簡單的php數組)的默認配置中,這意味着我可以使用1個接口訪問值,無論是從默認配置陣列還是覆蓋由數據庫中的值。

這意味着一個SELECT key,value FROM settings;查詢在啓動之前正在使用。

即時通訊只是想知道如果有人知道這是次優?

我不期望在這個表中有超過100行左右的行,每個請求都需要60%左右的行。

考慮連接/查詢/查詢的回報會是最佳的:

  1. 保留原樣,只是加載所有開機

  2. 與添加autoload列,只加載設置這是真的在引導和「按需」裝載其餘部分(當有要求)

  3. 負載下,每一個「按需」

由於行數很少,數據是每行兩個簡單的字符串,我猜只需加載它們,總體速度與加載速度一樣快,其餘的請求包含多個連接請求。

我是對還是應該考慮通過選項2/3或其他方法進行優化?

+0

其實我會保存設置序列化到一個文件,所以你只能打開該文件,反序列化並覆蓋默認值。這將阻止始終重新加載相同的設置,並且如果您決定更改設置,則只需刪除緩存文件並使用新設置寫入新文件即可。 –

回答

0

爲了簡單(不太複雜的代碼),我只是加載它們。那麼,如果某個特定請求不需要40%的話,那該怎麼辦?

這是一個簡單的SQL語句。它沒有其他變體(用不同的WHERE子句)需要測試。總體而言,看起來它會是更少的代碼來測試。我沒有看到其他替代方案的潛在節約。我無法證明額外的複雜性。