索引的分类
注意:索引是在存儲(chǔ)引擎中實(shí)現(xiàn)的,也就是說不同的存儲(chǔ)引擎,會(huì)使用不同的索引。MyISAM和InnoDB存儲(chǔ)引擎:只支持BTREE索引,也就是說默認(rèn)使用BTREE,不能夠更換。MEMORY/HEAP存儲(chǔ)引擎:支持HASH和BTREE索引。
1、索引我們分為四類來講單列索引(普通索引,唯一索引,主鍵索引)、組合索引、全文索引、空間索引、
1.1、單列索引:一個(gè)索引只包含單個(gè)列,但一個(gè)表中可以有多個(gè)單列索引。 這里不要搞混淆了。
????1.1.1、普通索引:MySQL中基本索引類型,沒有什么限制,允許在定義索引的列中插入重復(fù)值和空值,純粹為了查詢數(shù)據(jù)更快一點(diǎn)。
????1.1.2、唯一索引:索引列中的值必須是唯一的,但是允許為空值,
????1.1.3、主鍵索引:是一種特殊的唯一索引,不允許有空值。(主鍵約束,就是一個(gè)主鍵索引)
1.2、組合索引:在表中的多個(gè)字段組合上創(chuàng)建的索引,只有在查詢條件中使用了這些字段的左邊字段時(shí),索引才會(huì)被使用,使用組合索引時(shí)遵循最左前綴集合。例如,這里由id、name和age3個(gè)字段構(gòu)成的索引,索引行中就按id/name/age的順序存放,索引可以索引下面字段組合(id,name,age)、(id,name)或者(id)。如果要查詢的字段不構(gòu)成索引最左面的前綴,那么就不會(huì)是用索引,比如,age或者(name,age)組合就不會(huì)使用索引查詢
1.3、全文索引:全文索引,只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT類型字段上使用全文索引,介紹了要求,說說什么是全文索引,就是在一堆文字中,通過其中的某個(gè)關(guān)鍵字等,就能找到該字段所屬的記錄行,比如有"你是個(gè)大煞筆,二貨 ..." 通過大煞筆,可能就可以找到該條記錄。這里說的是可能,因?yàn)槿乃饕氖褂蒙婕傲撕芏嗉?xì)節(jié),我們只需要知道這個(gè)大概意思。
1.4、空間索引:空間索引是對(duì)空間數(shù)據(jù)類型的字段建立的索引,MySQL中的空間數(shù)據(jù)類型有四種,GEOMETRY、POINT、LINESTRING、POLYGON。在創(chuàng)建空間索引時(shí),使用SPATIAL關(guān)鍵字。要求,引擎為MyISAM,創(chuàng)建空間索引的列,必須將其聲明為NOT NULL。可能跟游戲開發(fā)有關(guān)。
轉(zhuǎn)發(fā):https://blog.csdn.net/qiuchaoxi/article/details/80010489
總結(jié)
- 上一篇: 图像极坐标变换及在OCR中的应用
- 下一篇: 【论文阅读】Illuminating P