1、mysql 執行一條查詢語句的內部執行過程?
2、mysql 提示「不存在此列」是執行到哪個節點報出的?
此錯誤是執行到分析器階段報出的,因為 mysql 會在分析器階段檢查 sql 語句的正確性。
3、mysql 查詢快取的功能有何優缺點?
mysql 查詢快取功能是在聯結器之後發生的。
優點是效率高,如果已經有快取則會直接返回結果。
缺點是失效太頻繁導致快取命中率比較低,任何更新表操作都會清空查詢快取,因此導致查詢快取非常容易失效。
4、如何關閉 mysql 的查詢快取功能?
mysql 查詢快取預設是開啟的,配置 querycachetype 引數為 demand(按需使用)關閉查詢快取,mysql 8.0 之後直接刪除了查詢快取的功能。
5、mysql 的常用引擎都有哪些?
mysql 的常用引擎有 innodb、myisam、memory 等,從 mysql 5.5.5 版本開始 innodb 成為預設的儲存引擎。
6、mysql 可以針對表級別設定資料庫引擎嗎?怎麼設定?
可以針對不同的表設定不同的引擎。在 create table 語句中使用 engine=引擎名(比如memory)來設定此表的儲存引擎。
create
table student(
id int
primary
keyauto_increment
, username varchar
(120),
*** tinyint(1
))engine
=memory
7、常用的儲存引擎 innodb 和 myisam 有什麼區別?
innodb 和 myisam 最大的區別是 innodb 支援事務,而 myisam 不支援事務,它們主要區別如下:
8、innodb 有哪些特性?
9、併發事務會帶來哪些問題?
10、什麼是髒讀和幻讀?
髒讀是乙個事務在處理過程中讀取了另外乙個事務未提交的資料;
幻讀是指同乙個事務內多次查詢返回的結果集不一樣(比如增加了或者減少了行記錄)。
11、為什麼會出現幻讀?如何避免幻讀?
因為行鎖只能鎖定存在的行,針對新插入的操作沒有限定,所以就有可能產生幻讀。
使用間隙鎖的方式來避免出現幻讀。
12、varchar 和 char 的區別是什麼?分別適用的場景有哪些?
varchar 和 char 最大區別就是,varchar 的長度是可變的,而 char 是固定長度,char 的取值範圍為1-255,因此 varchar 可能會造成儲存碎片。
它們的特性決定了 char 比較適合長度較短的字段和固定長度的字段,如身份證號、手機號等,反之則適合使用 varchar。
13、mysql 儲存金額應該使用哪種資料型別?為什麼?
mysql 儲存金額應該使用 decimal ,因為如果儲存其他資料型別,比如 float 有導致小數點後資料丟失的風險。
14、mysql 中支援幾種模糊查詢?它們有什麼區別?
mysql 中支援兩種模糊查詢:regexp 和 like,like 是對任意多字元匹配或任意單字元進行模糊匹配,而 regexp 則支援正規表示式的匹配方式,提供比 like 更多的匹配方式。
15、在 innodb 引擎中 count(*)、count(1)、count(主鍵)、count(字段) 哪個效能最高?
count(字段) < count(主鍵 id) < count(1) ≈ count(*)
Note CPU基礎問答
by 計算機是怎樣跑起來的 q1 什麼的縮寫是cpu?a1 central processing unit 處理器 cpu是計算機的大腦,負責解釋 執行程式的內容,又稱為 處理器 q2 hz表示什麼的單位?a2 頻率。hz用於表示驅動cpu運轉的時鐘訊號的頻率。1秒發出多少時鐘訊號即多少赫茲。q3 ...
mysql問答匯集
問 a,b兩台mysql實現主從複製,a提供寫,b提供讀,那既然b要同步a,當a更新資料的時候,b不也一樣要更新嗎?那b不還是沒有實現負載減輕嗎?還有能通過mysql proxy實現3臺mysq均衡l嗎?一台寫,另外兩台讀,mysql proxy能自動來把讀的操作均衡給讀的那兩台機器嗎?答 mysq...
MySQL問答整理
一張id主鍵自增的表,當insert了10條記錄之後,刪除了第8 9 10條記錄,再把mysql重啟,再insert一條記錄,這條記錄的id是11還是8 如表型別是myisam 11。因其把自增主鍵id記錄到檔案中,重啟id不會丟失。如表型別是innodb 8。因其把自增主鍵id記錄到記憶體中,重啟...