mysql優化 》查詢快取

2022-06-21 13:00:09 字數 1595 閱讀 8791

在mysql中查詢快取的原理

:

其實是mysql建立了乙個臨時的空間叫

qcache(

這個空間生成在

mysql

的編譯器記憶體中

),這個空間的大小是

用位元組大小來計算

的,所以快取多少資料可以根據需求進行調節

.如果是第一次查詢

,則從硬碟找查詢並返回結果

,如果有記錄返回

qcache

會記錄查詢到的結果

,當使用者發出第二次查詢

,mysql

就會詢問

qcache

是否已經存在了這個查詢。如果存在則從

qcache

中返回查詢結果

,如果不存在則又一次從硬碟中查詢結果並把找到的結果放到

qcache當中.

語法規則: set global query_cache_size = 開闢記憶體的位元組大小

比如我們要把乙個qcache的查詢快取的空間設定為

64m,那麼我們可以使用以下命令:

set global query_cache_size = 64 * 1024 * 1024

換算原理如下:

64m = ?位元組

1kb = 1024 位元組

1m = 1024kb = 1024 * 1024位元組

64m = 64 * 1024 * 1024

預設的情況下,mysql是沒有開啟查詢快取的功能

沒有開啟查詢快取,那麼無論你查多少次資料庫都是去硬碟當中查詢資料,因此速度不會發生很多的時間差,然後現在設定查詢快取qcache的空間為

64m後在來檢視結果,詳細步驟如下:

第1步:使用命令set global query_cache_size = 64 * 1024 * 1024 設定查詢快取的空間(qcache的空間)

不出現任何的錯誤就代表設定成功,就代表當前開啟了查詢快取,並且擁有64m的臨時記憶體空間。

第2步:再次測試select * from  tbl_no where username=』itheima』檢視結果

第1次查詢:

4.78sec

,並且qcache

會記錄當前的查詢結果

第2,3,4...次查詢:0sec,從qcache中返回結果,發覺速度提公升了很多倍

總結:查詢快取是一種非常簡單的手段,只需要乙個簡單命令設定空間的位元組大小就能完成這個優化技術,然而查詢快取是需要付出代價的,因為查詢快取會佔據記憶體的空間,因此如果你開啟很多的記憶體空間,而記憶體空間爆滿了,那麼計算機的作業系統有可能會緩慢甚至重啟,因此查詢快取是在乙個公司創立時候大概只有100萬條資料左右的時候建議使用,如果你資料已經超過千萬級別訪問量又特別的大的時候,查詢快取極有可能造成伺服器的重啟或者記憶體的崩潰.

注意事項:查詢快取對整個資料庫都有效

語法規則: set global query_cache_size = 0

關閉後,快取就會失效

,之前的查詢結果全部又會到硬碟當中去查詢了

tom的mysql查詢快取 MySQL優化

mysql優化 1 sql語句優化 2 索引優化 3 資料庫結構優化 4 innodb表優化 5 myisam表優化 6 memory表優化 7 理解查詢執行計畫 8 緩衝和快取 9 鎖優化 10 mysql伺服器優化 11 效能評估 12 mysql優化內幕 mysql 資料庫引擎 常用的 inn...

mysql資料快取查詢 Mysql查詢快取

查詢快取 mysql提供了一種快取型別,會快取整個select查詢結果。mysql查詢快取儲存查詢返回的完整結果。當查詢命中該快取,mysql會立即返回結果,跳過了解析 優化和執行階段。以下兩種情況不能被快取 頻繁更新 修改的的表,所有快取資料都會失效,mysql查詢快取會跟蹤查詢中涉及的表,如果這...

查詢優化(MySQL優化查詢)

關聯查詢太多join 設計缺陷或不得已的需求 資料庫伺服器調優及各個引數設定不適當 緩衝 執行緒數等 慢查詢日誌 找出執行速度慢的sql語句 慢查詢的開啟並捕獲 explain 慢sql分析 show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調...