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事務隔離級别
髒讀:一個事務讀取到了另一個事務中尚未送出的資料
不可重複讀:一個事務中兩次讀取的資料内容不一緻。
幻讀: 一個事務中多次讀取,資料的數量不一樣。
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、什麼是鎖?
答:資料庫是一個多使用者使用的共享資源。當多個使用者并發地存取資料時,在資料庫中就會産生多個事務同時存取同一資料的情況。若對并發操作不加控制就可能會讀取和存儲不正确的資料,破壞資料庫的一緻性。加鎖是實作資料庫并發控制的一個非常重要的技術。當事務在對某個資料對象進行操作前,先向系統送出請求,對其加鎖。加鎖後事務就對該資料對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此資料對象進行更新操作。
基本鎖類型:鎖包括行級鎖和表級鎖