99久久精品无码一区二区毛片_久久精品国产亚洲AV蜜臀_精品999久久久久久中文字幕_亚洲AV永久天堂在线观看_天堂а√在线中文在线最新版_亚洲国产成人久久综合人_亚洲国产精品无码久久98_嫩草在线视频WWW免费看

MySQL面試試題

時間:2024-01-06 05:12:09
MySQL面試試題

MySQL面試試題

在平平淡淡的日常中,我們都經(jīng)??吹皆囶}的身影,借助試題可以為主辦方提供考生某方面的知識或技能狀況的信息。什么樣的試題才能有效幫助到我們呢?以下是小編幫大家整理的MySQL面試試題,僅供參考,希望能夠幫助到大家。

一、存儲引擎

MySQL常見的兩種存儲引擎:MyISAM與InnoDB

二、字符集及校對規(guī)則

字符集指的是一種從二進制編碼到某類字符符號的映射。校對規(guī)則則是指某種字符集下的排序規(guī)則。Mysql中每一種字符集都會對應一系列的校對規(guī)則。

Mysql采用的是類似繼承的方式指定字符集的默認值,每個數(shù)據(jù)庫以及每張數(shù)據(jù)表都有自己的默認值,他們逐層繼承。比如:某個庫中所有表的默認字符集將是該數(shù)據(jù)庫所指定的字符集(這些表在沒有指定字符集的.情況下,才會采用默認字符集)

三、索引

Mysql索引使用的數(shù)據(jù)結構主要有BTree索引和哈希索引。對于哈希索引來說,底層的數(shù)據(jù)結構就是哈希表,因此在絕大多數(shù)需求為單條記錄查詢的時候,可以選擇哈希索引,查詢性能最快;其余大部分場景,建議選擇BTree索引。

Mysql的BTree索引使用的是B數(shù)中的B+Tree,但對于主要的兩種存儲引擎的實現(xiàn)方式是不同的。

MyISAM:B+Tree葉節(jié)點的data域存放的是數(shù)據(jù)記錄的地址。在索引檢索的時候,首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,則取出其data域的值,然后以data域的值為地址讀取相應的數(shù)據(jù)記錄。這被稱為“非聚簇索引”。

InnoDB:其數(shù)據(jù)文件本身就是索引文件。相比MyISAM,索引文件和數(shù)據(jù)文件是分離的,其表數(shù)據(jù)文件本身就是按B+Tree組織的一個索引結構,樹的葉節(jié)點data域保存了完整的數(shù)據(jù)記錄。這個索引的key是數(shù)據(jù)表的主鍵,因此InnoDB表數(shù)據(jù)文件本身就是主索引。這被稱為“聚簇索引(或聚集索引)”。而其余的索引都作為輔助索引,輔助索引的data域存儲相應記錄主鍵的值而不是地址,這也是和MyISAM不同的地方。在根據(jù)主索引搜索時,直接找到key所在的節(jié)點即可取出數(shù)據(jù);在根據(jù)輔助索引查找時,則需要先取出主鍵的值,在走一遍主索引。因此,在設計表的時候,不建議使用過長的字段作為主鍵,也不建議使用非單調(diào)的字段作為主鍵,這樣會造成主索引頻繁分裂。

四、緩存

my。cnf加入以下配置,重啟Mysql開啟查詢緩存

query_cache_type=1query_cache_size=600000

Mysql執(zhí)行以下命令也可以開啟查詢緩存

setglobalquery_cache_type=1;setglobalquery_cache_size=600000;

如上,開啟查詢緩存后在同樣的查詢條件以及數(shù)據(jù)情況下,會直接在緩存中返回結果。這里的查詢條件包括查詢本身、當前要查詢的數(shù)據(jù)庫、客戶端協(xié)議版本號等一些可能影響結果的信息。因此任何兩個查詢在任何字符上的不同都會導致緩存不命中。此外,如果查詢中包含任何用戶自定義函數(shù)、存儲函數(shù)、用戶變量、臨時表、Mysql庫中的系統(tǒng)表,其查詢結果也不會被緩存。

緩存建立之后,Mysql的查詢緩存系統(tǒng)會跟蹤查詢中涉及的每張表,如果這些表(數(shù)據(jù)或結構)發(fā)生變化,那么和這張表相關的所有緩存數(shù)據(jù)都將失效。

緩存雖然能夠提升數(shù)據(jù)庫的查詢性能,但是緩存同時也帶來了額外的開銷,每次查詢后都要做一次緩存操作,失效后還要銷毀。因此,開啟緩存查詢要謹慎,尤其對于寫密集的應用來說更是如此。如果開啟,要注意合理控制緩存空間大小,一般來說其大小設置為幾十MB比較合適。此外,還可以通過sql_cache和sql_no_cache來控制某個查詢語句是否需要緩存:

selectsql_no_cachecount(*)fromusr;

五、事務

關系性數(shù)據(jù)庫需要遵循ACID規(guī)則,具體內(nèi)容如下:

原子性:事務是最小的執(zhí)行單位,不允許分割。事務的原子性確保動作要么全部完成,要么完全不起作用;

一致性:執(zhí)行事務前后,數(shù)據(jù)保持一致;

隔離性:并發(fā)訪問數(shù)據(jù)庫時,一個用戶的事物不被其他事物所干擾,各并發(fā)事務之間數(shù)據(jù)庫是獨立的;

持久性:一個事務被提交之后。它對數(shù)據(jù)庫中數(shù)據(jù)的改變是持久的,即使數(shù)據(jù)庫 發(fā)生故障也不應該對其有任何影響。

《MySQL面試試題.doc》
將本文的Word文檔下載到電腦,方便收藏和打印
推薦度:
點擊下載文檔

文檔為doc格式