00:00
那我们在呃,建表的时候也可以指定一些索引,那我们知道索引一般就是用来加速的,对吧,提高效率的,那这边我们至少可以用的一个是be ma b map索引,还有不容过滤索引,那这些都能够很有效的给我们。带来一个很好的一个优化效果,那我们先看一下位图索引,呃,创建索引的语法就是在create index啊创建一个索引,那然后呢,一个索引名称on呢,指定在对哪张表建立一个索引,那还有指定它的索引列啊。后面指定用什么样的索引就可以了。啊,使用的方式极其简单啊,比如说我们对TABLE1进行一个。创建索引,来我们看一下。我们对TABLE1的ID这个字段做一个bit map,所以。好。这个我就不写了,什么if not。
01:04
所以名呢,我们起一个叫,比如说叫呃,TABLE1变map。好回车,那这样就创建完毕了啊,创建完之后我们可以通过这么一个受银death的语法去查看啊,受银death from哪张表啊就行了,进一步呢,如果还有库呢,也可以from database,那我们现在就简单对当前这张表查看一下它的索引信息啊。好,那我们可以看到这里面至少有什么呢?啊,所有类型,还有它的一个注释啊,我们添加的注释。非unique列,还有key的名称啊等等。列名啊,我们创建的所有的列名,比如说set ID。
02:04
啊,我缩小一点,大家这样看的更呃,对应关系更好一点吧,表明是TABLE1。这个是不是我们创建的索引名啊,对吧,这是索引名称key name啊索引名啊,这是索引列的名称,对哪列做的索引,还有呢,索引的类型,那最后呢,就是我们的一个,呃,注释是command这边写的,可写可不写啊。或写什么是由你定。那这样呢,所以你就能够很高效的去帮助我们做一个查询。那这边数据量小,你肯定看不出来什么太大的效果。对吧,0.18秒。那如果你要删除索引呢,用drop语法就可以了,那比如说。哎,我们可以这么写啊,所以名呢,就是我们刚才创建的这个名称啊,我把它拿过来。
03:03
好。删除索引啊,可以加上if,如果存在的话啊再删,然后所以名称哦,哪张表来我们来删一下。好,现在删除了对吧,删除之后我们再来show一下啊。上下可以看到,现在没索引了啊,那你可以稍微的做一个对比啊,效果不一定很明显,现在啊一。对吧,那反而还还快一点,这不一定啊,你再查一遍又变成0.14了啊,本身就是很小的时间,你看不出巨大的啊,看不出很大的一个差别啊。这是一个bit map索引,那除了这个之外,还有一个不能过滤索引,但这个呢,需要我们在建表的时候来指定。那如果已经建完表了,你也可以通过al table的语法啊,来修改它的表属性,那么也可以。
04:04
那布隆呢,它其实底层也是用的一个位图结构啊。那同时我们要知道不能过滤是不是有一个误判率的问题,对吧?啊。就假阳性率啊。那我们看一下一个使用方式。你看啊,这是一个建表语句啊,那在这里呢,属性里表属性里面我们可以去指定一个不能过滤的列啊,指定要通过哪一列来过滤。作为一个部位图啊,存在位图里。那查看的还是同样的语法啊,也可以修改和删除,那这个是我们的使用方式啊,我们简单来看一下吧。好,创建一张表,你看指定的一个不能过滤的列,再往后呢,呃,我们可以去受一下受create table。
05:04
对吧,这其实是干嘛看你的查表呃,建表语句,你我们只能呃通过这种方式来查看我建表的时候有没有去指定这个属性啊,Show create table,那在这之后呢啊,如果你建表看完之后发现没有指定,你也可以后期通过out table啊,然后去set一下这个参数。啊,指定一些列,比如说我把它修改掉吧啊。也可以添加,也可以修改,原先呢是CID和呃这个category ID对吧,现在我改成改成customer ID,还有SKUID。这是允许的吧,来。For table好,成功,我再来show table看一眼。好,那你看不容过滤的列是不是已经改成了我们修改后的列名,对吧。那同样也可以删除,怎么删呢?也是out table,我们只需要将这个属性值设为一个空串,呃,一个空就可以了,那就相当于说是去掉这个功能。
06:08
这是一些索引的使用方式啊,那有时候呢,你也可以尝试着去做。大数据量的一个判断的时候啊。
我来说两句