MySQL 查詢優化

1.查詢過程

    客戶端發送查詢請求(請求中攜帶select語句),服務端首先做權限認證,安全處理等。如果通過這些檢查, 則從“查詢緩存”中查找是否已有了這次查詢的緩存結果,如果有則直接返回緩存結果(“查詢緩存”功能可以關閉)。

    如果“查詢緩存”沒有命中,則將select語句交給“解析器”進行語法解析,解析完後會生成解析樹。解析樹會通過“預處理器”進行預處理,然後生成“新解析樹”。 “新解析樹”交給查詢優化器進行優化,優化完畢後生成“執行計劃”。“執行計劃”交給“查詢執行引擎”進行執行,然後將執行結果返回給客戶端(當然還會做“查詢緩存”處理)。


2.TIMESTAMP 和 DATETIME

     timestamp使用4個字節存儲, datatime使用8個字節存儲,因而timestamp只能表示1970-2038年,比datetime表示的範圍小的多,而且timestamp的值因時區的不同而不同。


3. Decimal

Decimal這種數據類型,儘量少用, 因爲可能浮點數計算不準確或者計算代價高,可以轉換一下(比如擴大100倍),用bigint表示。




   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章