【秋招必備】MySQL優化面試題(2021最新版)


前言

隨着系統用戶量的不斷增加,MySQL 索引的重要性不言而喻,對於后端工程師,只有在了解索引及其優化的規則,並應用於實際工作中后,才能不斷的提升系統性能,開發出高性能、高並發和高可用的系統。 今天小編首先會跟大家分享一下MySQL 索引中的各種概念,然后介紹優化索引的若干條規則,最后利用這些規則,針對面試中常考的知識點,做詳細的實例分析,這里還分析一份MySQL知識總結的思維導圖。

小編分享的這份Java后端開發面試總結包含了JavaOOP、Java集合容器、Java異常、並發編程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL數據庫、消息中間件MQ、Dubbo、Linux、ZooKeeper、 分布式&數據結構與算法等26個專題技術點,都是小編在各個大廠總結出來的面試真題,已經有很多粉絲靠這份PDF拿下眾多大廠的offer,今天在這里總結分享給到大家!【已完結】

完整版Java面試題地址:2021最新面試題合集集錦

序號 專題 內容 鏈接
1 中間件 【秋招必備】Java中間件面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14851355.html
2 微服務 【秋招必備】Java微服務面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14893883.html
3 並發編程 【秋招必備】Java並發編程面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14893914.html
4 Java基礎 【秋招必備】Java基礎知識面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14968925.html
5 Spring Boot 【秋招必備】Spring Boot面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14968927.html
6 Redis 【秋招必備】Redis面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14968935.html
7 Spring MVC 【秋招必備】Spring MVC面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14977235.html
8 Spring Cloud 【秋招必備】Spring Cloud面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14977264.html
9 MySQL優化 【秋招必備】MySQL優化面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14977264.html
10 JVM 【秋招必備】JVM性能調優面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/14981629.html
11 Linux 【秋招必備】Linux面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15004102.html
12 Mybatis 【秋招必備】Mybatis面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15004110.html
13 網絡編程 【秋招必備】TCP,UDP,Socket,Http網絡編程面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15012942.html
14 設計模式 【秋招必備】設計模式面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15012953.html
15 大數據 【秋招必備】大數據面試題100道(2021最新版) https://www.cnblogs.com/QLCZ/p/15012984.html
16 Tomcat 【秋招必備】Tomcat面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15017627.html
17 多線程 【秋招必備】多線程面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15017638.html
18 Nginx 【秋招必備】Nginx_BIO_NIO_AIO面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15032145.html
19 memcache 【秋招必備】memcache面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15032231.html
20 java異常 【秋招必備】java異常面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15035951.html
21 Java虛擬機 【秋招必備】Java虛擬機面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15036517.html
22 Java集合 【秋招必備】Java集合面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15041523.html
23 Git常用命令 【秋招必備】Git常用命令(2021最新版) https://www.cnblogs.com/QLCZ/p/15041786.html
24 Elasticsearch 【秋招必備】Elasticsearch面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15044301.html
25 Dubbo 【秋招必備】Dubbo面試題(2021最新版) https://www.cnblogs.com/QLCZ/p/15044434.html

1、MySQL 中有哪幾種鎖?

  • 1、表級鎖: 開銷小, 加鎖快; 不會出現死鎖; 鎖定粒度大, 發生鎖沖突的概率最高, 並發度最低。
  • 2、行級鎖: 開銷大, 加鎖慢; 會出現死鎖; 鎖定粒度最小, 發生鎖沖突的概率最低, 並發度也最高。/
  • 3、頁面鎖: 開銷和加鎖時間界於表鎖和行鎖之間; 會出現死鎖; 鎖定粒度界於表鎖和行鎖之間, 並發度一般。

2、MySQL 中有哪些不同的表格?

共有 5 種類型的表格: 1、MyISAM2、Heap 3、Merge 4、INNODB 5、MISAM

3、簡述在MySQL 數據庫中 MyISAM 和InnoDB 的區別

[圖片上傳失敗...(image-73b6fa-1618751724750)]

4、MySQL 中InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?SQL 標准定義的四個隔離級別為:

  • 1、read uncommited : 讀到未提交數據
  • 2、read committed: 臟讀, 不可重復讀
  • 3、repeatable read: 可重讀
  • 4、serializable : 串行事物

5、CHAR 和VARCHAR 的區別?

  • 1、CHAR 和 VARCHAR 類型在存儲和檢索方面有所不同
  • 2、CHAR 列長度固定為創建表時聲明的長度, 長度值范圍是 1 到 255 當 CHAR 值被存儲時, 它們被用空格填充到特定長度, 檢索 CHAR 值時需刪除尾隨空格。

6、主鍵和候選鍵有什么區別?

  • 表格的每一行都由主鍵唯一標識,一個表只有一個主鍵。
  • 主鍵也是候選鍵。按照慣例, 候選鍵可以被指定為主鍵, 並且可以用於任何外鍵引用。

7、myisamchk 是用來做什么的?

8、如果一個表有一列定義為TIMESTAMP,將發生什么?

9、你怎么看到為表格定義的所有索引?

11、列對比運算符是什么?

在 SELECT 語句的列比較中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND, OR 或 LIKE 運算符。

12、BLOB 和TEXT 有什么區別?

13、MySQL_fetch_array 和MySQL_fetch_object 的區別是什么?

14、MyISAM 表格將在哪里存儲,並且還提供其存儲格式?

15、MySQL 如何優化DISTINCT?

16、如何顯示前 50 行?

在 MySQL 中, 使用以下代碼查詢顯示前 50 行: SELECT*FROM TABLE LIMIT 0,50;

17、可以使用多少列創建索引?

任何標准表最多可以創建 16 個索引列。

18、NOW()和 CURRENT_DATE()有什么區別?

NOW() 命令用於顯示當前年份, 月份, 日期, 小時, 分鍾和秒。CURRENT_DATE() 僅顯示當前

年份, 月份和日期。

19、什么是非標准字符串類型?

  • 1、TINYTEXT
  • 2、TEXT
  • 3、MEDIUMTEXT
  • 4、LONGTEXT

20、什么是通用 SQL 函數?

  • 1、CONCAT(A, B) – 連接兩個字符串值以創建單個字符串輸出。通常用於將兩個或多個字段合並為一個字段。
  • 2、FORMAT(X, D)- 格式化數字 X 到 D 有效數字。
  • 3、CURRDATE(), CURRTIME()- 返回當前日期或時間。
  • 4、NOW() – 將當前日期和時間作為一個值返回。
  • 5、MONTH(), DAY( ), YEAR(), WEEK(), WEEKDAY() – 從日期值中提取給定數據。
  • 6、HOUR(), MINUTE(), SECOND() – 從時間值中提取給定數據。
  • 7、DATEDIFF( A, B) – 確定兩個日期之間的差異, 通常用於計算年齡
  • 8、SUBTIMES( A, B) – 確定兩次之間的差異。
  • 9、FROMDAYS( INT) – 將整數天數轉換為日期值。

21、MySQL 支持事務嗎?

22、MySQL 里記錄貨幣用什么字段類型好

23、MySQL 有關權限的表都有哪幾個?

  • MySQL 服務器通過權限表來控制用戶對數據庫的訪問, 權限表存放在 MySQL 數據庫里,由
  • MySQL_install_db 腳本初始化。這些權限表分別 user,db,table_priv, columns_priv 和 host 。

24、列的字符串類型可以是什么?

字符串類型是:

  • 1、SET
  • 2、BLOB
  • 3、ENUM
  • 4、CHAR
  • 5、TEXT

25、MySQL 數據庫作發布系統的存儲,一天五萬條以上的增量, 預計運維三年,怎么優化?

26、鎖的優化策略

27、索引的底層實現原理和優化

28、什么情況下設置了索引但無法使用

29、實踐中如何優化 MySQL

30、優化數據庫的方法

31、簡單描述 MySQL 中,索引,主鍵,唯一索引,聯合索引

32、數據庫中的事務是什么?

33、SQL 注入漏洞產生的原因?如何防止?

34、為表中得字段選擇合適得數據類型

35、存儲時期

36、對於關系型數據庫而言,索引是相當重要的概念,請回答

37、解釋 MySQL 外連接、內連接與自連接的區別

38、Myql 中的事務回滾機制概述

39、SQL 語言包括哪幾部分?每部分都有哪些操作關鍵字?

40、完整性約束包括哪些?

41、一張表,里面有 ID 自增主鍵,當 insert 了 17 條記錄之后, 刪除了第 15,16,17 條記錄,再把 Mysql 重啟,再 insert 一條記 錄,這條記錄的 ID 是 18 還是 15 ?

42、Mysql 的技術特點是什么?

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

43、Heap 表是什么?

44、Mysql 服務器默認端口是什么?

Mysql 服務器的默認端口是 3306。

45、與 Oracle 相比,Mysql 有什么優勢?

46、如何區分 FLOAT 和 DOUBLE?

47、區分 CHAR_LENGTH 和 LENGTH?

48、請簡潔描述 Mysql 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?

49、在 Mysql 中 ENUM 的用法是什么?

  • ENUM 是一個字符串對象,用於指定一組預定義的值,並可在創建表時使用。
  • Create table size(name ENUM('Smail,'Medium','Large');

50、如何定義 REGEXP?

REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。

51、CHAR 和 VARCHAR 的區別?

52、列的字符串類型可以是什么?

53、如何獲取當前的 Mysql 版本?

SELECT VERSION();用於獲取當前 Mysql 的版本。

54、Mysql 中使用什么存儲引擎?

55、Mysql 驅動程序是什么?

56、TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 數據類型上做什么?

創建表時 TIMESTAMP 列用 Zero 更新。只要表中的其他字段發生更改,UPDATE CURRENT_TIMESTAMP 修飾符就將時間戳字段更新為當前時間。

57、主鍵和候選鍵有什么區別?

  • 表格的每一行都由主鍵唯一標識,一個表只有一個主鍵。
  • 主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,並且可以用於任何外鍵引用。

58、如何使用 Unix shell 登錄 Mysql?

59、myisamchk 是用來做什么的?

它用來壓縮 MyISAM 表,這減少了磁盤或內存使用。

60、MYSQL 數據庫服務器性能分析的方法命令有哪些?

61、如何控制 HEAP 表的最大尺寸?

Heal 表的大小可通過稱為 max_heap_table_size 的 Mysql 配置變量來控制。

62、MyISAM Static 和 MyISAM Dynamic 有什么區別?

63、federated 表是什么?

federated 表,允許訪問位於其他服務器數據庫上的表。

64、如果一個表有一列定義為 TIMESTAMP,將發生什么?

每當行被更改時,時間戳字段將獲取當前時間戳。

65、列設置為 AUTO INCREMENT 時,如果在表中達到最大值,會發生什么情況?

它會停止遞增,任何進一步的插入都將產生錯誤,因為密鑰已被使用。

66、怎樣才能找出最后一次插入時分配了哪個自動增量?

LAST_INSERT_ID 將返回由 Auto_increment 分配的最后一個值,並且不需要指定表名稱。

67、你怎么看到為表格定義的所有索引?

  • 索引是通過以下方式為表格定義的:
  • SHOW INDEX FROM ;

68、LIKE 聲明中的%和_是什么意思?

%對應於 0 個或更多字符,_只是 LIKE 語句中的一個字符。

69、如何在 Unix 和 Mysql 時間戳之間進行轉換?

  • UNIX_TIMESTAMP 是從 Mysql 時間戳轉換為 Unix 時間戳的命令
  • FROM_UNIXTIME 是從 Unix 時間戳轉換為 Mysql 時間戳的命令

70、列對比運算符是什么?

在 SELECT 語句的列比較中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR 或LIKE 運算符。

71、我們如何得到受查詢影響的行數?

  • 行數可以通過以下代碼獲得:
  • SELECT COUNT(user_id)FROM users;

72、Mysql 查詢是否區分大小寫?

不區分

  • SELECT VERSION(), CURRENT_DATE;
  • SeLect version(), current_date;
  • seleCt vErSiOn(), current_DATE;
  • 所有這些例子都是一樣的,Mysql 不區分大小寫。

73、LIKE 和 REGEXP 操作有什么區別?

74、BLOB 和 TEXT 有什么區別?

75、mysql_fetch_array 和 mysql_fetch_object 的區別是什么?

76、我們如何在 mysql 中運行批處理模式?

77、MyISAM 表格將在哪里存儲,並且還提供其存儲格式?

78、Mysql 中有哪些不同的表格?

79、ISAM 是什么?

  • ISAM 簡稱為索引順序訪問方法。它是由 IBM 開發的,用於在磁帶等輔助存儲系統上存儲和檢索數據。

80、InnoDB 是什么?

  • lnnoDB 是一個由 Oracle 公司開發的 Innobase Oy 事務安全存儲引擎。

81、Mysql 如何優化 DISTINCT?

82、如何輸入字符為十六進制數字?

83、如何顯示前 50 行?

84、可以使用多少列創建索引?

  • 任何標准表最多可以創建 16 個索引列。

85、NOW()和 CURRENT_DATE()有什么區別?

86、什么樣的對象可以使用 CREATE 語句創建?

87、Mysql 表中允許有多少個 TRIGGERS?

88、什么是非標准字符串類型?

89、什么是通用 SQL 函數?

90、解釋訪問控制列表

91、MYSQL 支持事務嗎?

92、mysql 里記錄貨幣用什么字段類型好

93、MYSQL 數據表在什么情況下容易損壞?

  • 服務器突然斷電導致數據文件損壞。
  • 強制關機,沒有先關閉 mysql 服務等。

94、mysql 有關權限的表都有哪幾個?

95、Mysql 中有哪幾種鎖?

96、唯一索引比普通索引快嗎, 為什么

97、MySQL由哪些部分組成, 分別用來做什么

98、MySQL查詢緩存有什么弊端, 應該什么情況下使用, 8.0版本對查詢緩存有什么變更.

99、MyISAM和InnoDB**的區別有哪些

100、MySQL怎么恢復半個月前的數據

  • 通過整庫備份+binlog進行恢復. 前提是要有定期整庫備份且保存了binlog日志.

101、MySQL事務的隔離級別, 分別有什么特點

102、做過哪些MySQL索引相關優化

  • 盡量使用主鍵查詢: 聚簇索引上存儲了全部數據, 相比普通索引查詢, 減少了回表的消耗.
  • MySQL5.6之后引入了索引下推優化, 通過適當的使用聯合索引, 減少回表判斷的消耗.
  • 若頻繁查詢某一列數據, 可以考慮利用覆蓋索引避免回表.
  • 聯合索引將高頻字段放在最左邊

103、簡要說一下數據庫范式

104、一千萬條數據的表, 如何分頁查詢

105、訂單表數據量越來越大導致查詢緩慢, 如何處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM