Mysql大合集,你要內容的這裏全都有,誰說漂亮女程序猿就不能拿大廠Offer了

不掉發的小易 2021-09-19 18:49:06 阅读数:914

mysql 合集 全都有 全都 都有

過程。

所以今天我想和你一起把 MySQL 拆解一下,看看裏面都有哪些“零件”,希望借由這個

拆解過程,讓你對 MySQL 有更深入的理解。這樣當我們碰到 MySQL 的一些异常或者問

題時,就能够直戳本質,更為快速地定比特並解决問題。

下面我給出的是 MySQL 的基本架構示意圖,從中你可以清楚地看到 SQL 語句在 MySQL

的各個功能模塊中的執行過程:
Mysql大合集,你要內容的這裏全都有,誰說漂亮女程序猿就不能拿大廠Offer了_Java
大體來說,MySQL 可以分為 Server 層和存儲引擎層兩部分。

Server 層包括連接器、查詢緩存、分析器、優化器、執行器等,涵蓋 MySQL 的大多數核

心服務功能,以及所有的內置函數(如日期、時間、數學和加密函數等),所有跨存儲引擎

的功能都在這一層實現,比如存儲過程、觸發器、視圖等。

而存儲引擎層負責數據的存儲和提取。其架構模式是插件式的,支持 InnoDB、MyISAM、Memory 等多個存儲引擎。現在最常用的存儲引擎是 InnoDB,它從 MySQL 5.5.5 版本開始成為了默認存儲引擎。

也就是說,你執行 create table 建錶的時候,如果不指定引擎類型,默認使用的就是

InnoDB。不過,你也可以通過指定存儲引擎的類型來選擇別的引擎,比如在 create table

語句中使用 engine=memory, 來指定使用內存引擎創建錶。不同存儲引擎的錶數據存取方

式不同,支持的功能也不同,在後面的文章中,我們會討論到引擎的選擇。

從圖中不難看出,不同的存儲引擎共用一個Server 層,也就是從連接器到執行器的部分。

對於MySQL的學習,從基礎到深入的進階,都需要我們不斷的了解學習,才能够有更多的進步。

那如何去學呢,是否有正確的指引方式,從初級到高級。不用擔心,我手裏有來自各種大牛總結的資料,包括《MySQL面試專題》、《MySQL性能優化的21個最佳實踐》《MySQL實戰筆記》《MySQL55題》等。應有盡有,接下來我就會將這些學習筆記的精華分享給大家!下面我們就來一起看看

《MySQL55題》:

1、一張錶,裏面有ID自增主鍵,當insert了17條記錄之後,删除了第15,16,17條記錄,再把Mysq|重啟,再insert-條記錄,這條記錄的ID是18還是15 ?
(1)如果錶的類型是MyISAM,那麼是18
因為MyISAM錶會把自增主鍵的最大ID記錄到數據文件裏,重啟MySQL自增主鍵的最大ID也不會丟失
(2)如果錶的類型是InnoDB,那麼是15
InnoDB錶只是把自增主鍵的最大ID記錄到內存中,所以重啟數據庫或者是對錶進行OPTIMIZE操作,都會導致最大ID丟失

2、Mysql 的技術特點是什麼?
Mysql數據庫軟件是一個客戶端或服務器系統,其中包括:支持各種客戶端程序和庫的多線程SQL服務器、不同的後端、廠泛的應用程序編程接口和管理工具。

3、Heap錶是什麼?
HEAP錶存在於內存中,用於臨時高速存儲。
BLOB或TEXT字段是不允許的
只能使用比較運算符=,<, >,=>,=<HEAP錶不支持AUTO_ INCREMENT
索引不可為NULL

4、Mysql 服務器默認端口是什麼?
Mysql服務器的默認端口是3306.

5、與Oracle相比,Mysql 有什麼優勢?
Mysql是開源軟件,隨時可用,無需付費。Mysql是便攜式的
帶有命令提示符的GUI.
使用Mysql查詢瀏覽器支持管理

6、如何區分FLOAT和DOUBLE?
以下是FLOAT和DOUBLE的區別:
浮點數以8比特精度存儲在FLOAT中,並且有四個字節。浮點數存儲在DOUBLE中,精度為18比特,有八個字節。

7、區分CHAR_ LENGTH和LENGTH?
CHAR
LENGTH 是字符數,而LENGTH 是字節數。Latin 字符的這兩個數據是相同的,但是對於Unicode和其他編碼,它們是不同的。

當然這只是一小部分由於內容太多,想獲取更多更全的關於《MySQL55題》的資料可看文末獲取方法

回歸正題

《MySQL性能優化的21個最佳實踐》

今天,數據庫的操作越來越成為整個應用的性能瓶頸了,這點對於Web應用尤其明顯。關於數據庫的性能,這並不只是DBA才需要擔心的事,而這更是我們程序員需要去關注的事情。當我們去設計數據庫錶結構,對操作數據庫時(尤其是查錶時的SQL語句),我們都需要注意數據操作的性能。這裏,我們不會講過多的SQL語句的優化,而只是針對MySQL這- - Web 應用最多的數據庫。希望下面的這些優化技巧對你有用。

1.為查詢緩存優化你的查詢

大多數的MySQL服務器都開啟了查詢緩存。這是提高性最有效的方法之一,而且這是被MySQL的數據庫引擎處理的。當有很多相同的查詢被執行了多次的時候,這些查詢結果會被放到一個緩存中,這樣,後續的相同的查詢就不用操作錶而直接訪問緩存結果了。

這裏最主要的問題是,對於程序員來說,這個事情是很容易被忽略的。因為,我們某些查詢語句會讓MySQL不使用緩存。請看下面的示例:
大體來說,MySQL 可以分為 Server 層和存儲引擎層兩部分。

Server 層包括連接器、查詢緩存、分析器、優化器、執行器等,涵蓋 MySQL 的大多數核

心服務功能,以及所有的內置函數(如日期、時間、數學和加密函數等),所有跨存儲引擎

的功能都在這一層實現,比如存儲過程、觸發器、視圖等。

而存儲引擎層負責數據的存儲和提取。其架構模式是插件式的,支持 InnoDB、MyISAM、Memory 等多個存儲引擎。現在最常用的存儲引擎是 InnoDB,它從 MySQL 5.5.5 版本開始成為了默認存儲引擎。

總結

我們總是喜歡瞻仰大廠的大神們,但實際上大神也不過凡人,與菜鳥程序員相比,也就多花了幾分心思,如果你再不努力,差距也只會越來越大。

面試題多多少少對於你接下來所要做的事肯定有點幫助,但我更希望你能透過面試題去總結自己的不足,以提高自己核心技術競爭力。每一次面試經曆都是對你技術的掃盲,面試後的複盤總結效果是極好的!

 CodeChina開源項目:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視頻】

Mysql大合集,你要內容的這裏全都有,誰說漂亮女程序猿就不能拿大廠Offer了_Java_02

版权声明:本文为[不掉發的小易]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210919184905955L.html