口试官出的MySQL索引题目,这篇文章全给你办理!
假如想要查察表中的索引信息,可以行使呼吁SHOW INDEX,下面的例子,我们查察表table_index的索引信息。
获得上面的信息,上面的信息什么意思呢?我们一一先容!
直接删除索引方法
修改表布局时删除索引
1.5 Cardinality要害字理会 在上面先容了那么多个要害字的意思,可是Cardinality这个要害字很是的要害,优化器会按照这个值来判定是否行使这个索引。在B+树索引中,只有高选择性的字段才是故意义的,高选择性就是这个字段的取值范畴很广,好比姓名字段,会有许多的名字,可选择性就高了。 一样平常来说,判定是否必要行使索引,就可以通过Cardinality要害字来判定,假如很是靠近1,声名有须要行使,假如很是小,那么就要思量是否行使索引了。 必要留意的一个题目时,这个要害字不是实时更新的,必要更新的话,必要行使ANALYZE TABLE,譬喻。
由于今朝没稀有据,以是,你会发明,这个值一向都是0,没有变革。 InoDB存储引擎Cardinality的计策 在InnoDB存储引擎中,这个要害字的更新产生在两个操纵中:insert和update。可是,并不是每次城市更新,这样会增进负荷,以是,对付这个要害字的更新有它的计策:
默认InnoDB存储引擎会对8个叶子节点举办采样,采样进程如下:
由于随机采样,以是,每次的Cardinality值都是纷歧样的,只有一种环境会一样的,就是表中的叶子节点小于可能便是8,这时辰,怎么随机采样都是这8个,以是也就一样的。 1.6 Fast Index Creation 在MySQL 5.5之前,对付索引的添加可能删除,每次都必要建设一张姑且表,然后导入数据到姑且表,接着删除原表,假如一张大表举办这样的操纵,会很是的耗时,这是一个很大的缺陷。 InnoDB存储引擎从1.0.x版本开始插手了一种Fast Index Creation(快速索引建设)的索引建设方法。 这种方法的计策为T媚课为建设索引的表加上一个S锁(共享锁),在建设的时辰,不必要从头建表,删除帮助索引只必要更新内部视图,并将帮助索引空间标志为可用,以是,这种服从就大大进步了。 1.7 在线数据界说 MySQL5.6开始支持的在线数据界说操纵就是:应承帮助索引建设的同时,还应承其他insert、update、delete这类DM操纵,这就极大进步了数据库的可用性。 以是,我们可以行使新的语法举办建设索引:
ALGORITHM指定建设可能删除索引的算法
LOCK暗示对表添加锁的环境
2 B+ 树索引的行使 2.1 连系索引 连系索引是指对表上的多个罗列办索引,这一部门我们将通过几个例子来讲授连系索引的相干常识点。 起首,我们先建设一张表以及为这张表建设连系索引。
建设连系索引
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |