一些MySQL面試題整理

來源:互聯網
上載者:User

一些MySQL面試題整理

1、如何登陸mysql資料庫
mysql -u username -p

2、如何開啟/關閉mysql服務
service mysql start/stop

3、查看mysql的狀態
service mysql status

4、如何顯示數所有資料庫
show databases

5、如何擷取表內所有欄位對象的名稱和類型
describe table_name;

6、MYSQL支援事務嗎?
在預設模式下,MYSQL是autocommit模式的,所有的資料庫更新操作都會即時提交,所以在預設情況下,mysql是不支援事務的。
但是如果你的MYSQL表類型是使用InnoDB Tables 或 BDB tables的話,你的MYSQL就可以使用交易處理,使用SET AUTOCOMMIT=0就可以使MYSQL允許在非autocommit模式,在非autocommit模式下,你必須使用COMMIT來提交你的更改,或者用ROLLBACK來復原你的更改。
樣本如下:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;

7、MYSQL相比於其他資料庫有哪些特點?
MySQL是一個小型關係型資料庫管理系統,開發人員為瑞典MySQL AB公司,現在已經被Sun公司收購,支援FreeBSD、Linux、MAC、Windows等多種作業系統與其他的大型資料庫例如Oracle、DB2、SQL Server等相比功能稍弱一些
1、可以處理擁有上千萬條記錄的大型資料
2、支援常見的SQL語句規範
3、可移植行高,安裝簡單小巧
4、良好的運行效率,有豐富資訊的網路支援
5、調試、管理,最佳化簡單(相對其他大型資料庫)

8、varchar和char的區別
Char是一種固定長度的類型,varchar是一種可變長度的類型

9、資料庫事物有哪幾種?
隔離性、持久性、一致性、原子性

10、請簡潔地描述下MySQL中InnoDB支援的四種交易隔離等級名稱,以及逐級之間的區別?
SQL標準定義的四個隔離等級為:
read uncommited:讀取未提交內容
read committed:讀取提交內容
repeatable read:可重讀
serializable:可序列化
詳細解釋如下:
Read Uncommitted(讀取未提交內容)
在該隔離等級,所有事務都可以看到其他未提交事務的執行結果。本隔離等級很少用於實際應用,因為它的效能也不比其他層級好多少。讀取未提交的資料,也被稱之為髒讀(Dirty Read)。
Read Committed(讀取提交內容)
這是大多數資料庫系統的預設隔離等級(但不是MySQL預設的)。它滿足了隔離的簡單定義:一個事務只能看見已經提交事務所做的改變。這種隔離等級也支援所謂的不可重複讀取(Nonrepeatable Read),因為同一事務的其他執行個體在該執行個體處理其間可能會有新的commit,所以同一select可能返回不同結果。
Repeatable Read(可重讀)
這是MySQL的預設交易隔離等級,它確保同一事務的多個執行個體在並發讀取資料時,會看到同樣的資料行。不過理論上,這會導致另一個棘手的問題:幻讀(Phantom Read)。簡單的說,幻讀指當使用者讀取某一範圍的資料行時,另一個事務又在該範圍插入入了新行,當使用者再讀取該範圍的資料行時,會發現有新的“幻影” 行。InnoDB和Falcon儲存引擎通過多版本並發控制(MVCC,Multiversion Concurrency Control 間隙鎖)機制解決了該問題。註:其實多版本只是解決不可重複讀取問題,而加上間隙鎖(也就是它這裡所謂的並發控制)才解決了幻讀問題。
Serializable(可序列化)
這是最高的隔離等級,它通過強制事務排序,使之不可能相互衝突,從而解決幻讀問題。簡言之,它是在每個讀的資料行上加上共用鎖定。在這個層級,可能導致大量的逾時現象和鎖競爭。
對於不同的事務,採用不同的隔離等級分別有不同的結果。不同的隔離等級有不同的現象。主要有下面3種現在:
1、髒讀(dirty read):一個事務可以讀取另一個尚未提交事務的修改資料。
2、非重複讀(nonrepeatable read):在同一個事務中,同一個查詢在T1時間讀取某一行,在T2時間重新讀取這一行時候,這一行的資料已經發生修改,可能被更新了(update),也可能被刪除了(delete)。
3、幻像讀(phantom read):在同一事務中,同一查詢多次進行時候,由於其他插入操作(insert)的事務提交,導致每次返回不同的結果集。
不同的隔離等級有不同的現象,並有不同的鎖定/並發機制,隔離等級越高,資料庫的並發性就越差,4種交易隔離等級分別表現的現象如下表:

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.