mySQL之關(guān)鍵字的執(zhí)行優(yōu)先級講解
如下所示:
from 表
where 條件
group by 字段
形成虛擬的表及字段,聚合及字段添加
having 篩選數(shù)據(jù)
distinct 去重
order by 字段 asc,desc
limit 限制條數(shù)
select 羅列記錄
先根據(jù)where 約束條件 將數(shù)據(jù)從表中加載到內(nèi)存,所以where的條件作用在數(shù)據(jù)之前,然后根據(jù)字段進行分組,在內(nèi)存中形成一張?zhí)摂M的表包含字段,
如果此時有聚合函數(shù)則先執(zhí)行聚合函數(shù),并將聚合函數(shù)字段也加到虛擬的表中,接著進行having記錄篩選,篩選完成后對數(shù)據(jù)進行去重,排序,限制等操作后進行顯示。
補充知識:mysql where條件and的執(zhí)行順序從左到右
之前做功能,把三個條件通過md5加密之后得到一個字符串的字段unique_key,把這個字段設(shè)置為唯一索引,希望查詢的時候通過這個唯一索引來查詢,不用分三個條件分別進行查詢了,同時使用了replace方法保證相同的三個條件下更新數(shù)據(jù)的話數(shù)據(jù)庫只會有一條記錄。
后來發(fā)現(xiàn)列表查詢必須要開放這三個條件,于是只好將這個unique_key放到where條件and 的最左邊,通過unique_key篩選出來效率也不會差。
mysql的優(yōu)化方方面面,寫的時候要多考慮了。
以上這篇mySQL之關(guān)鍵字的執(zhí)行優(yōu)先級講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ubuntu mysql 5.6版本的刪除/安裝/編碼配置文件配置
這篇文章主要介紹了ubuntu mysql 5.6版本的刪除,安裝,編碼配置文件配置,需要的朋友可以參考下2017-06-06
Mysql添加用戶和設(shè)置權(quán)限的操作方法
這篇文章主要介紹了Mysql添加用戶和設(shè)置權(quán)限的操作方法,主要包括管理用戶,權(quán)限控制的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
MySQL數(shù)據(jù)庫高可用HA實現(xiàn)小結(jié)
MySQL數(shù)據(jù)庫是目前開源應(yīng)用最大的關(guān)系型數(shù)據(jù)庫,有海量的應(yīng)用將數(shù)據(jù)存儲在MySQL數(shù)據(jù)庫中,這篇文章主要介紹了MySQL數(shù)據(jù)庫高可用HA實現(xiàn),需要的朋友可以參考下2022-01-01
SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)
這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
LEFT JOIN條件在on后面和在where后面的區(qū)別及說明
這篇文章主要介紹了LEFT JOIN條件在on后面和在where后面的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
MySQL字符串轉(zhuǎn)數(shù)字的3種方式實例
這篇文章主要給大家介紹了關(guān)于MySQL字符串轉(zhuǎn)數(shù)字的3種方式,在使用mysql中經(jīng)常遇到要將字符串數(shù)字轉(zhuǎn)換成可計算數(shù)字,文中給出了詳細的代碼示例和圖文介紹,需要的朋友可以參考下2023-08-08
MySQL錯誤:You can‘t specify target table&n
在編寫MySQL的UPDATE或DELETE語句時,如果子查詢中直接引用了要操作的目標表,可能會遇到一個常見的錯誤:You can’t specify target table ‘xxx’ for update in FROM clause,這個錯誤讓許多開發(fā)者感到困惑,本文將深入分析其原因,并提供多種解決方案,2025-02-02

