2016-12-15 78 views
1

有沒有辦法處理髮送給MySQL的常見查詢以防止不必要的帶寬使用?針對常見MYSQL查詢的緩存

+0

PHP與MySQL之間的帶寬?如果結果相同,則可以將它們緩存在PHP層中,如果它們不同於帶寬將被使用,但可以通過使用MySQL查詢緩存來加速查詢。 – iceraj

+0

http://dba.stackexchange.com/questions/50877/how-to-permanently-enable-query-cache-in-mysql – Machavity

回答

1

選項包括:

  1. 使用MySQL來緩存查詢

    • 好:全自動
    • 壞:仍然需要前往數據庫服務器;一旦緩存讓我失望的一個項目,花了很長的時間來調試,但那是很久以前的事...
  2. 緩存在本地使用的Memcached或Redis的

    • 好:更快(沒有去DB服務器)。有些庫可以爲你處理,或者你可以自己「滾動」
    • 不好:你需要安裝memcached或Redis,要小心你選擇哪個庫,因爲有些庫不適合,難以處理。你需要處理到期。

的分佈式緩存或Redis的本地處理的另一個好處是,你還可以存儲編譯/轉換的結果。如果你失去了對結果的處理(例如把它變成一個包含其他驗證和查找的數組),那麼你可以緩存那個編譯結果。但是,那麼你需要處理到期/無效的緩存,這很容易,但需要在你的代碼紀律。