Mysql基礎知識

2021-09-12 00:20:18 字數 1150 閱讀 4083

1.mysql引擎innodb和myisam對比

1)innodb支援事務,mylsam不支援事務

2)innodb支援外來鍵,mylsam不支援外來鍵

3)innodb支援行級鎖,mylsam是表鎖

4)innodb空間記憶體使用高,mylsam空間記憶體使用低

5)批量插入速度,innodb低,mylsam高

綜合:mylsam不支援事務、也不支援外來鍵。其優勢是訪問速度快,對事務完整性沒有要求或者以insert,select為主的應用基本上都可以使用這個引擎建立表。

問:對於select coung(*) 哪個引擎更快

答:mylsam更快,因為其維護了乙個計數器

2.一張表,裡面有id自增主鍵,當插入了17條記錄之後,刪除了第15,16,17條記錄,再把mysql重啟,再插入一條記錄,這條記錄的id是18還是15?

答:如果引擎是mylsam,那麼是18。因為mylsam把自增主鍵的id記錄在資料檔案裡,重啟mysql自增主鍵的最大id不會丟失;

如果引擎是innodb,那麼是15。因為innodb會把自增主鍵的id記錄在記憶體中,重啟mysql自增主鍵的最大id會丟失。

3.設計表時,字段型別char和varchar的區別?

答:char是固定長度的,varchar不是固定長度的。char的處理速度比varchar快的多,但是會浪費空間。對於innodb引擎,內部的行儲存沒有區分固定長度和可變長度,隨著mysql不斷公升級,varchar效能也在不斷提高,所以推薦使用varchar。

4.資料庫隔離級別

1)讀未提交:可能髒讀,不可重讀讀,幻讀。

2)讀已提交:唯讀提交的資料,無髒讀。有不可重複讀問題:從乙個事務開始到結束,正在執行的不能被讀到,所以會出現讀取舊資料的現場。不可重複讀

3)可重複讀:加行鎖,無髒讀,可重複讀

4)序列:加表鎖,全部序列,無問題。

5.資料庫並行事務的問題

1)髒讀:事務a讀取了事務b未提交的資料,如果事務b回滾了,事務a就讀到了髒的無效資料

2)不可重複讀:事務a讀取了事務b修改前和修改並提交事務後的資料。

3)幻讀:兩次讀之間進行了增刪。比如第一次讀到了10行資料,第二次讀到8行。

mysql基礎知識

一 啟動與退出 1 進入mysql 啟動mysql command line client mysql的dos介面 直接輸入安裝時的密碼即可。此時的提示符是 mysql 或開啟終端,輸入sql語句 mysql uroot p123 2 退出mysql quit或exit 二 庫操作 1 建立資料庫 ...

mysql基礎知識

1 為什麼使用資料庫 1 降低儲存資料的冗餘度 2 更高的資料一致性 3 儲存的資料可以共享 4 可以建立資料庫所遵循的標準 5 便於維護資料完整性 6 能夠實現資料的安全性 2 在資料庫發展歷史上,出現了很多不同的資料模型,包括是層次模型 網狀模型 關係模型和物件模型 3 關係型資料庫的基本概念 ...

MySQL 基礎知識

1.如無備註,則表中的第乙個id欄位一定是主鍵且為自動增長 2.如無備註,則數值型別的字段請使用unsigned屬性 3.如無備註,排序欄位order id在程式中預設使用降序排列 4.如無備註,所有欄位都設定notnull,並設定預設值 5.如無備註,所有的布林值字段,如is hot is del...