mysql常問內容 mysql常問問題

2021-10-18 23:44:22 字數 602 閱讀 2688

前言:一些自己遇到的問題及理解(需補充修改)

索引型別:主鍵索引 / 普通索引 / 符合索引 / 唯一索引 / 全文索引

索引:查詢資料的資料結構,索引占用磁碟空間,更新資料的時候影響更新表的效率

(資料儲存型別)聚簇索引/非聚簇索引

聚簇:採用b+樹的資料結構,聚簇索引葉子節點存放證章表的資料,所以主鍵索引就是用的聚簇索引,查詢速度快

缺點:插入速度依賴著插入的順序,二級索引訪問需要2次索引查詢,第一次找到主鍵,再根據主鍵找到對應的資料行

非聚簇索引:在聚簇索引之上建立的索引,總是需要二次查詢,葉子節點儲存不是資料行的位置,而是主鍵的位置

過程:先檢索輔助索引獲取主鍵,然後再通過主鍵獲取到記錄

innodb資料檔案本事就是乙個b+樹,若採用非單調的主鍵會頻繁的**,插入速度過慢,也不建議用長字段作為主鍵,非聚簇索引每次都會先引用主鍵,導致存放輔助索引過大

個人總結一下:

聚簇索引:innodb特有的,因為資料和索引是在同乙個檔案中,採用b+樹的儲存方式,然後,聚簇索引(主鍵)的話,每次只要一次查詢,資料都在葉子節點,就會返回正行的資料內容

非聚簇索引的話:基於聚簇索引,然後每次都要用聚簇索引找到主鍵值,然後進行回表查詢

面試常問MySQL效能優化問題

知識綜述 1 mysql中鎖的種類 常見的表鎖和行鎖,也有metadata lock等等,表鎖是對一整張表加鎖,分為讀鎖和寫鎖,因為是鎖住整張表,所以會導致併發能力下降,一般是做ddl處理時使用。行鎖則是鎖住資料行,這種加鎖方法比較複雜,但是由於只鎖住有限的資料,對於其它資料不加限制,所以併發能力強...

面試常問MySQL效能優化問題

知識綜述 1 mysql中鎖的種類 常見的表鎖和行鎖,也有metadata lock等等,表鎖是對一整張表加鎖,分為讀鎖和寫鎖,因為是鎖住整張表,所以會導致併發能力下降,一般是做ddl處理時使用。行鎖則是鎖住資料行,這種加鎖方法比較複雜,但是由於只鎖住有限的資料,對於其它資料不加限制,所以併發能力強...

MySQL常問鎖的面試題

鎖 lock 在多人處理同乙個資料的時候,保證每次只有乙個人可以操作。mysql提供了頁鎖 全域性鎖 行鎖 表鎖。其中innodb採用的是行鎖和表鎖,myisam只支援表鎖。是指二個或者二個以上的程序在執行時候,因為爭奪資源造成相互等待的現象,程序一直處於等待中,無法得到釋放,這種狀態就叫做死鎖,批...