6.4 數據庫:
1、B樹與B+樹?(4)
https://blog.csdn.net/qq_26222859/article/details/80631121
https://www.cnblogs.com/lianzhilei/p/11250589.html
2、樂觀鎖&悲觀鎖?如何實現?(3)
3、聯合索引?最左匹配原則?(3)
4、數據庫事務?mysql事務隔離級別?(2)
5、索引是什麼 ? 數據庫索引有哪些? 索引的優缺點? http://baijiahao.baidu.com/s?id=1641311517406582639&wfr=spider&for=pc https://www.jianshu.com/p/0569644498fc
② 索引的通俗解釋
索引就像是圖書的目錄,根據目錄中的頁碼快速找到所需內容。
③ 索引在百度百科中的解釋
在關係數據庫中,索引是一種單獨的、物理的對數據庫表中一列或多列的值進行排序的一種存儲結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。
1.普通索引 ,最基本的索引,它沒有任何限制,用於加速查詢
創建方法:
1.創建表的時候一起創建
CREATE TABLE mytable(
name VARCHAR(32),
INDEX index(name);
);
2.建立表之後 直接創建索引
CREATE INDEX index ON mytable(name);
3.修改表的結構
ALTER TABLE mytable ADD INDEX index ON mytable(name(11));
2.唯一索引 索引的列的值必須是唯一的但是允許有空值 如果是組合索引 則列的組合必須是唯一的
創建方法:
1.創建表的時候一起創建
CREATE TABLE mytable(
name VARCHAR(32),
UNIQUE index(name);
);
2.建立表之後 直接創建索引
CREATE UNIQUE INDEX index ON mytable(name);
3.修改表的結構
ALTER TABLE mytable ADD UNIQUE INDEX index ON mytable(name(11));
3.主鍵索引 是一種特殊的唯一索引 一個表只有一個主鍵 不能有空值 一般在建表的時候同時創建主鍵索引
1.創建表的時候一起創建
CREATE TABLE mytable (
id int(11) NOT NULL AUTO_INCREMENT ,
name VARCHAR(32) ,
PRIMARY KEY (id)
);
2.修改表的結構
ALTER TABLE mytable ADD CONSTRAINT t1_pk PRIMARY KEY (id);
4.組合索引 是指多個字段上創建的索引 只有在查詢條件中使用了創建索引的第一個字段 索引纔會被使用 使用組合索引應該遵循最左前綴集合
a. 建表的時候一起創建
CREATE TABLE mytable (
`id` int(11) ,
`name` VARCHAR(32) ,
INDEX index_mytable_id_name (`id`,`name`)
);
b. 建表後,直接創建索引
CREATE INDEX index_mytable_id_name ON mytable(id,name);
c. 修改表結構
ALTER TABLE mytable ADD INDEX index_mytable_id_name (id,name);
5.全文索引 主要用來查找文本中的關鍵字 而不是直接與索引中的值相比較
更像是一個搜索引擎不是簡單的where參數匹配 全文索引配合match agains使用
創建方法:
a. 建表的時候一起創建
CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(250) NOT NULL , `contents` text NULL , `create_at` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (contents) );
b. 建表後,直接創建索引
CREATE FULLTEXT INDEX index_article_contents ON article(contents);
c. 修改表結構
ALTER TABLE article ADD FULLTEXT INDEX index_article_contents (contents);
優點
1.大大加快數據的檢索速度;
2.創建唯一性索引,保證數據庫表中每一行數據的唯一性;
3.加速表和表之間的連接;
4.在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間。
缺點
1.索引需要佔物理空間。
2.當對錶中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度。
6、redis瞭解嗎?一致性哈希如何優化(虛擬結點)?(2)
7、數據庫引擎(innodb、mysima)?(2)
8、數據庫優化(如何定位慢查詢?如何改進?)?(1)
事務的特性 鎖機制 數據庫引擎