創(chuàng)業(yè)做網(wǎng)站需要哪些seo在線教程
好吧,,,,,本人很菜,再接再勵吧,繼續(xù)刷。簡單記錄一下面試題,未亡羊補(bǔ)牢唄。
1.lift join ;inner join ;right join 的區(qū)別
2. union 和union all的區(qū)別
3.like查詢會走索引嗎?
4.主鍵和索引的區(qū)別
5.count(*),count(1),count(ID)的區(qū)別
6.exists了解嗎?作用是什么
7.線程池了解嗎?
8.spring創(chuàng)建的bean是單例模式還是多例模式,怎么區(qū)分?
9.國產(chǎn)數(shù)據(jù)庫了解嗎?
10.hashmap和hashTable的區(qū)別
11.list是有序的嗎?
12.如果一個程序中有個方法響應(yīng)很慢,你會怎么排查?說說你的思路
13.你有沒有什么問題要問我的?沒有,好吧,我給你介紹一下我們做的事情,巴拉巴拉…
1.lift join ;inner join ;right join 的區(qū)別
INNER JOIN(內(nèi)連接): 只返回兩個表中匹配的行,即只返回連接條件為真的行。
如果一個表中的行在另一個表中沒有匹配的行,那么這些行不會出現(xiàn)在結(jié)果中。 INNER JOIN返回的是兩個表的交集部分。 LEFT
JOIN(左連接): 返回左邊表中的所有行,以及與右邊表匹配的行。 如果右邊表中沒有與左邊表匹配的行,則返回NULL。 LEFT
JOIN以左表為基礎(chǔ),返回左表的所有記錄,以及右表中與左表匹配的記錄。如果右表中沒有匹配項,則結(jié)果中對應(yīng)字段的值將為NULL。 RIGHT
JOIN(右連接): 返回右邊表中的所有行,以及與左邊表匹配的行。 如果左邊表中沒有與右邊表匹配的行,則返回NULL。 RIGHT
JOIN以右表為基礎(chǔ),返回右表的所有記錄,以及左表中與右表匹配的記錄。如果左表中沒有匹配項,則結(jié)果中對應(yīng)字段的值將為NULL。
2. union 和union all的區(qū)別
1.對結(jié)果集的處理方式:Union會對兩個或多個結(jié)果集進(jìn)行并集操作,并自動壓縮掉其中的重復(fù)行,只顯示唯一的值,相當(dāng)于執(zhí)行了distinct操作。而Union All也會進(jìn)行并集操作,但它會包括所有的結(jié)果,無論是否重復(fù),即所有的結(jié)果全部顯示。
2.執(zhí)行效率:由于Union需要對結(jié)果集進(jìn)行去重操作,而Union All則不需要,因此在處理大量數(shù)據(jù)時,Union All的執(zhí)行效率通常會比Union高。當(dāng)可以確認(rèn)合并的兩個結(jié)果集中不包含重復(fù)數(shù)據(jù)且不需要排序時,使用Union All會更合適。
3. 是否排序:Union會按照字段的順序?qū)Y(jié)果集進(jìn)行排序,而Union All只是簡單地將兩個結(jié)果合并后就返回,不會對結(jié)果進(jìn)行排序。
3.like查詢會走索引嗎?
LIKE查詢在一定條件下是可以走索引的,關(guān)鍵在于查詢的具體形式以及數(shù)據(jù)庫系統(tǒng)的實際處理方式。為了確保LIKE查詢能夠有效利用索引,最佳實踐是盡量避免在搜索詞首使用通配符,并確保為常作為LIKE查詢條件的列創(chuàng)建合適的索引。
在實際應(yīng)用中,為了確定LIKE查詢是否使用了索引,可以使用數(shù)據(jù)庫的執(zhí)行計劃工具來查看查詢的執(zhí)行計劃。這些工具可以顯示查詢是如何使用索引的,以及是否進(jìn)行了全表掃描。
4.主鍵和索引的區(qū)別
主鍵是用于確保數(shù)據(jù)唯一性的關(guān)鍵約束,同時也自帶了一個隱含的唯一索引;而索引則是為了提高數(shù)據(jù)檢索效率的輔助結(jié)構(gòu),它并不直接涉及數(shù)據(jù)完整性約束,但能極大提高查詢性能。
5.count(*),count(1),count(ID)的區(qū)別
count(*):計算結(jié)果集中所有行數(shù),包括那些含有null值的行; 它只是簡單計算行數(shù),并不關(guān)心里面的數(shù)據(jù) count(1):
功能上與count(*)類似,也是計算所有行數(shù)。
count(ID):計算列(ID)中非null的值的數(shù)量。如果ID列中有null的值,這些值不會計算在總數(shù)中。由于COUNT(ID)會檢查ID中的值是否為null,所以查詢效率相對低一些。
6.exists了解嗎?作用是什么
EXISTS 是一個重要的關(guān)鍵字,它的主要作用是用來檢驗一個子查詢是否至少會返回一行數(shù)據(jù)。EXISTS 并不關(guān)注子查詢返回的具體數(shù)據(jù)內(nèi)容,而是關(guān)心是否存在滿足子查詢條件的結(jié)果行。
具體作用如下:
結(jié)果判斷:EXISTS 子查詢的結(jié)果是一個布爾值 (TRUE 或 FALSE)。如果子查詢的結(jié)果集中包含至少一行數(shù)據(jù),那么 EXISTS
子查詢的結(jié)果就是 TRUE;若子查詢沒有返回任何數(shù)據(jù),則結(jié)果是 FALSE。過濾行:在主查詢中配合 WHERE 子句使用 EXISTS 時,可以用來過濾主查詢的結(jié)果集。只有當(dāng) EXISTS 子查詢的結(jié)果為 TRUE時,對應(yīng)的主查詢中的行才會被選擇出來。
例如,下面是一個使用 EXISTS 的 SQL 查詢語句示例:
Sql SELECT column1, column2 FROM table1 WHERE EXISTS (SELECT 1 FROM table2 WHERE table2.columnA = table1.columnA AND table2.columnB = 'some_value' );
在這個查詢中,將從 table1 中選擇那些在 table2 中具有相同 columnA 值并且
columnB 為 ‘some_value’ 的行。如果對于 table1中的任何一行,子查詢能找到匹配的記錄,那么這一行就會被包含在最終的結(jié)果集中。相對于 IN 子查詢,EXISTS 在某些情況下可能具有更好的性能表現(xiàn),特別是在主表較小而子查詢結(jié)果集較大的場景下,因為 EXISTS
只需找到匹配的第一行即可得出結(jié)論。而 IN 子查詢通常需要構(gòu)造完整的子查詢結(jié)果集并進(jìn)行比較。此外,EXISTS 更適用于檢查相關(guān)性而非具體值
7.線程池了解嗎?(高頻問題好吧)
我的回答是不了解,慚愧慚愧
后面幾個明天再總結(jié),晚安,瑪卡巴卡