天天看點

MySQL資料庫

1、 sql 的 select 語句完整的執行順序

1 )from 子句組裝來自不同資料源的資料;

2 )where 子句基于指定的條件對記錄行進行篩選;

3 )group by 子句将資料劃分為多個分組;

4)使用聚集函數進行計算;

5)使用 having 子句篩選分組;

6)計算所有的表達式;

7) select 的字段;

8)使用 order by 對結果集進行排序。

2、事務的基本要素(acid)

原子性( atomicity):事務開始後所有操作,要麼全部做完,要麼全部不做,不可能停滞在中間環節。

一緻性( consistency):事務開始前和結束後,資料庫的完整性限制沒有被破壞 。

 隔離性( isolation):是指多個使用者并發通路資料庫時,一個使用者的事務不能被其它使用者的事務所幹擾,多個并發事務之間資料要互相隔離,不能互相影響。

持久性( durability):事務完成後,事務對資料庫的所有更新将被儲存到資料庫,不能復原。

3、mysql事務隔離級别

MySQL資料庫

髒讀:一個事務讀取到了另一個事務中尚未送出的資料

不可重複讀:一個事務中兩次讀取的資料内容不一緻。

幻讀: 一個事務中多次讀取,資料的數量不一樣。

4、簡述在 mysql資料庫中 myisam和 innodb的差別

1.myisam存儲引擎

主要特點: mysql5.5版本之前的預設存儲引擎 支援表級鎖(表級鎖是mysql中鎖定粒度最大的一種鎖,表示對目前操作的整張表加鎖); 不支援事務,外鍵。

适用場景:對事務的完整性沒有要求,或以select、insert為主的應用基本都可以選用myisam。在web、資料倉庫中應用廣泛。

特點:

1)不支援事務、外鍵

2)每個myisam在磁盤上存儲為3個檔案,檔案名和表名相同,擴充名分别是

  .frm ------- 存儲表定義;

  .myd -------- mydata 存儲資料;

  .myi -------- myindex,存儲索引。

2.innodb存儲引擎

主要特點: mysql5.5版本之後的預設存儲引擎; 支援事務; 支援行級鎖(行級鎖是mysql中鎖定粒度最細的一種鎖,表示隻針對目前操作的行進行加鎖); 支援聚集索引方式存儲資料。

5、什麼是鎖?

  答:資料庫是一個多使用者使用的共享資源。當多個使用者并發地存取資料時,在資料庫中就會産生多個事務同時存取同一資料的情況。若對并發操作不加控制就可能會讀取和存儲不正确的資料,破壞資料庫的一緻性。加鎖是實作資料庫并發控制的一個非常重要的技術。當事務在對某個資料對象進行操作前,先向系統送出請求,對其加鎖。加鎖後事務就對該資料對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此資料對象進行更新操作。

基本鎖類型:鎖包括行級鎖和表級鎖