深入學習MySQL 01 一條查詢語句的執行過程

2022-08-29 08:51:13 字數 1386 閱讀 8014

在學習springcloud的同時,也在深入學習mysq中,聽著,本系列文章是本人學習過程的總結,水平有限,僅供參考,若有不對之處或有啥建議都可與我聯絡,感謝!在學習乙個東西之前,了解它的歷史都是很有必要的,那麼首先,我們先來了解mysql的歷史。

1.2023年,有乙個小夥子被客戶要求提供通用的sql支援,當時他首先借助了msql的**進行整合,但效果不太滿意,便自己重寫了乙個sql支援。

2.2023年,1.0版的mysql發布,內部引擎為isam。

3.2023年,mysql ab公司成立,並開發出berkeley db引擎,bdb引擎支援事務,這是mysql第乙個支援事務的引擎。

4.2023年,mysql開源,重新整理儲存引擎isam,重新命名myisam。

5.2023年,整合了儲存引擎innodb,這個引擎不僅能持事務處理,並且支援行級鎖。後來該引擎被證明是最為成功的mysql事務儲存引擎。

6.2023年,oracle把innodb引擎的開發公司innobase收購完成。mysql明確地表現出邁向高效能資料庫的發展步伐。

7.2023年,sun公司以10億收購了mysql ab。

8.螳螂捕蟬,黃雀在後。2023年,資料庫老大oracle大筆一揮,74億美將sun和mysql通盤收於旗下,從此mysql資料庫進入oracle時代。

9.2023年,mysql 5.5正式版發布,oracle完成了大量改進,並將innodb改成預設引擎。

10.由於mysql的開源性被廣泛傳播,也被更多的人了解。伴隨著更多的技術開發人員加入到mysql開發中,從此它被不斷完善,一步一步邁向人生巔峰。

11.歷史只需要了解,不需要背誦哈~

然後進行"語法分析",判斷整個sql語句是否錯誤,並判斷是否存在"t"表,是否存在列"id"

4.優化器

在這會對sql語句進行優化,比如索引的選取,多表關聯(join)時連線表的順序等,然後選取最優的方案生成執行計畫

ps:優化器有時也會有出錯,比如選錯索引

5.執行器

首先判斷該使用者有無對該錶查詢的許可權,無則直接返回,有則根據執行計畫執行sql語句。

執行完成後,將結果快取到查詢快取中,並返回結果給客戶端。

至此,一條查詢語句執行完了

參考《mysql45講》

《高效能mysql》

如果覺得不錯,分享給你的朋友!

thandks

乙個立志成大腿而每天努力奮鬥的年輕人

伴學習伴成長,成長之路你並不孤單!

mysql查詢深入 Mysql查詢 深入學習

1 開篇 在學習的過程中我們一起進步,成長。有什麼寫的不對的還望可以指出。2 查詢 1 多表之間的查詢 笛卡爾積 100 100 10000 查詢的資料量可能非常大 給表名取別名 2 關聯查詢 隱示內連線查詢。sql92 內連線查詢。sql99 left join on 如果我寫 left join...

Mysql查詢 深入學習

1 開篇 在學習的過程中我們一起進步,成長。有什麼寫的不對的還望可以指出。2 查詢 1 多表之間的查詢 笛卡爾積 100 100 10000 查詢的資料量可能非常大 給表名取別名 2 關聯查詢 隱示內連線查詢。sql92 內連線查詢。sql99 left join on 如果我寫 left join...

深入學習mysql 一

相信很多人都說過一句玩笑話,刪庫跑路哈哈哈 說到刪庫跑路,那麼你是否了解過,如何給mysql設定許可權來防止這樣的事情發生呢 如果你使用的是root許可權的賬號,你需要給不同的賬號來分配許可權時,可以使用如下的sql語句來建立對應的賬號和許可權 grant select on practice.to...