總結的一些MySQL資料庫面試題

來源:互聯網
上載者:User

標籤:ar   使用   sp   strong   on   檔案   資料   bs   as   

1.sql語句應該考慮哪些安全性?

1.防止sql注入,對特殊字元進行轉義,過濾或者使用先行編譯的sql語句綁定變數。

2.最小許可權原則,特別是不要用root賬戶,為不同的類型的動作或者組建使用不同的賬戶。

3.當sql運行出錯時,不要把資料庫返回的錯誤資訊全部顯示給使用者,以防止泄漏伺服器和資料庫相關資訊。

2.簡單描述mysql中,索引,主鍵,唯一索引,聯合索引的區別,對資料庫的效能有什麼影響。

索引是一種特殊的檔案(InnoDB資料表上的索引是資料表空間的一個組成部分),它們包含著對資料表裡所有記錄的引用指標。

普通索引(由關鍵字KEY或INDEX定義的索引)的唯一任務是加快對資料的訪問速度。

普通索引允許被索引的資料列包含重複的值,如果能確定某個資料列只包含彼此各不相同的值,在為這個資料索引建立索引的時候就應該用關鍵字UNIQE把它定義為一個唯一所以,唯一索引可以保證資料記錄的唯一性。

主鍵,一種特殊的唯一索引,在一張表中只能定義一個主鍵索引,逐漸用於唯一標識一條記錄,是用關鍵字PRIMARY KEY來建立。

索引可以覆蓋多個資料列,如像INDEX索引,這就是聯合索引。

索引可以極大的提高資料的查詢速度,但是會降低插入刪除更新表的速度,因為在執行這些寫操作時,還要操作索引檔案。

3.一張表,裡面有ID自增主鍵,當insert了17條記錄之後,刪除了第15,16,17條記錄,再把Mysql重啟,再insert一條記錄,這條記錄的ID是18還是15 ?

如果表的類型是MyISAM,那麼是18。 
因為MyISAM表會把自增主鍵的最大ID記錄到資料檔案裡,重啟MySQL自增主鍵的最大ID也不會丟失。 
如果表的類型是InnoDB,那麼是15。 
InnoDB表只是把自增主鍵的最大ID記錄到記憶體中,所以重啟資料庫或者是對錶進行OPTIMIZE操作,都會導致最大ID丟失。

 

4.請簡述項目中最佳化sql語句執行效率的方法,從哪些方面。sql語句效能如何分析?

1.盡量選擇較小的列

2.將where中用的比較頻繁的欄位建立索引

3.select子句中避免使用‘*’

4.避免在索引列上使用計算,not,in和<>等操作

5.當只需要一行資料的時候使用limit 1

6.保證表單資料不超過200w,適時分割表

  針對查詢較慢的語句,可以使用explain來分析該語句具體的執行情況

5.mysql_fetch_row()和mysql_fetch_array()的區別

這兩個函數,返回的都是一個數組,區別就是第一個函數返回的數組是只包含值,我們只能$row[0],$row[1],這樣以數組下標來讀取資料,而mysql_fetch_array()返回的數組既包含第一種,也包含索引值對的形式,我們可以這樣讀取資料,(假如資料庫的欄位是 username,passwd):$row[‘username‘], $row[‘passwd‘。

總結的一些MySQL資料庫面試題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.