日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

[3]Java开发实习面试打卡

發布時間:2024/5/14 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [3]Java开发实习面试打卡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[2]Java開發實習面試打卡

1.創建索引的原則(重中之重)

最好符合以下幾個原則: 1.最左前綴匹配原則,組合索引非常重要的原則,mysql會一直向右匹配直到遇到范圍查詢(>,<,between,like)就停止匹配. 2.較頻繁作為查詢條件的字段才去創建索引 3.更新頻繁字段不適合創建索引 4.若是不能有效區分數據的列不適合做索引列. 5.盡量的擴展索引,不要新建索引.比如表中有a的索引,現在要加(a,b)的索引,那么只需要修改原來的索引即可. 6.定義有外鍵的數據列一定要建立索引. 7.對于那些查詢中很少涉及的列,重復值比較多的列不要建立索引. 8.對于定義為text,image和bit的數據類型的列不要建立索引.

2.創建索引的三種方式,刪除索引

2.1. 第一種 CREATE TABLE

在執行CREATE TABLE時創建索引

CREATE TABLE user_index2 (id INT auto_increment PRIMARY KEY,first_name VARCHAR (16),last_name VARCHAR (16),id_card VARCHAR (18),information text,KEY name (first_name, last_name),FULLTEXT KEY (information),UNIQUE KEY (id_card) );

2.2. 第二種 ALTER TABLE

使用ALTER TABLE命令去增加索引

ALTER TABLE table_name ADD INDEX index_name(column_list);

ALTER TABLE 用來創建普通索引,UNIQUE索引或PRIMARY KEY索引

2.3.第三種 CREATE INDEX

CREATE INDEX index_name ON table_name (column_list);

CREATE INDEX可對表增加普通索引或UNIQUE索引(不能創建PRIMARY KEY 索引)

2.4.刪除索引

根據索引名刪除普通索引,唯一索引,全文索引: alter table 表名 drop KEY 索引名 刪除主鍵索引: alter table 表名 drop primary key(因為主鍵只有一個)

如果主鍵自增長,那么不能直接執行此操作(自增長依賴于主鍵索引);需要取消自增長再行刪除,但通常不會刪除主鍵.

3.創建索引時需要注意什么?

  • 非空字段:應該指定列為NOT NULL,除非你想存儲NULL.在mysql中,含有空值的列很難進行查詢優化,因為他們使得索引,索引的統計信息以及比較運算更加復雜.你應該用0、一個特殊的值或一個空串代替空值.
  • 取值離散大的字段:(變量各個取值之間的差異程度)的列放到聯合索引的前面,可以通過count()函數查看字段的差異值,返回值越大說明字段的唯一值越多的字段的離散程度高.
  • 索引字段越小越好:數據庫的數據存儲以頁為單位一頁存儲的數據越多一次IO操作獲取的數據越大效率越高.

4.百萬級別或以上的數據如何刪除

1.可以先刪除索引 2.然后刪除其中無用數據 3.刪除完成后重新創建索引

5.B樹和B+樹的區別

  • 在B樹中,你可以將鍵和值存放在內部節點和葉子節點;但在B+樹中,內部節點都是鍵,沒有值,葉子節點同時存放鍵和值.
  • B+樹的葉子節點有一條鏈相連,而B樹的葉子節點各自獨立.

5.1.使用B樹的好處

B樹可以在內部節點同時存儲鍵和值,因此,把頻繁訪問的數據放在靠近根節點的地方將會大大提高熱點數據的查詢效率.這種特性使得B樹在特定數據重復多次查詢的場景中更加高效.

5.2.使用B+樹的好處

由于B+樹內部節點只存放鍵,不存放值,因此,一次讀取,可以在內存頁中獲取更多的鍵,有利于更快的縮小查找范圍.
B+樹的葉節點由一條鏈相連,因此,當需要進行一次全數據遍歷的時候,B+樹只需要找到最小的節點,然后進行順序遍歷.而B樹需要每一層進行遍歷,花費更多時間.

6.Hash索引和B+樹索引有什么區別或者說優劣

  • hash索引進行等值查詢更快(一般情況下),但是無法進行范圍查詢.
  • hash索引不支持使用索引進行排序
  • hash索引不支持模糊查詢以及多列索引的最左前綴匹配.
  • hash索引任何時候都避免不了回表查詢數據,而B+樹在符合某些條件(聚族索引,覆蓋索引等)的時候可以只通過索引完成查詢
  • hash索引雖然在等值查詢上較快,但是不穩定.

因此,在大多數情況下,直接選擇B+樹索引可以獲得穩定且較好的查詢速度.

7.數據庫為什么使用B+樹而不是B樹

  • B樹只適合隨機檢索,而B+樹同時支持隨機檢索和順序檢索
  • B+樹空間利用率更高,可減少I/O次數,磁盤讀寫代價更低.
  • B+樹的查詢效率更加穩定.
  • B樹在提高了磁盤IO性能的同時并沒有解決元素遍歷的效率低下的問題.
  • 增刪文件(節點)時,效率更高.因為B+樹的葉子節點包含所有的關鍵字,并以有序的兩邊結構存儲,這樣可很好提高增刪效率.

8.什么是聚簇索引?

  • 聚簇索引:將數據存儲與索引放到了一塊,找到索引也就找到了數據
  • 非聚簇索引:將數據存儲與索引分開結構,索引結構的葉子節點指向了數據的對應行.

9.非聚簇索引一定會回表查詢嗎

不一定, 如果要求的字段命中了索引,就不必回表查詢.

10.聯合索引是什么?為什么需要注意聯合索引中的順序?

MySQL可以多個字段同時建立一個索引,叫做聯合索引.在聯合索引中,如果想要命中索引,需要按照建立索引時的字段順序挨個使用,否則無法命中索引.

[4]Java開發實習面試打卡

總結

以上是生活随笔為你收集整理的[3]Java开发实习面试打卡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。