mysql 多列索引
发布网友
发布时间:2022-04-30 10:18
我来回答
共3个回答
懂视网
时间:2022-04-30 14:40
mysql的多列索引是经常会遇到的问题,怎样才能有效命中索引,是本文要探讨的重点。
多列索引使用的Btree,也就是平衡二叉树。简单来说就是排好序的快速索引方式。它的原则就是要遵循左前缀索引。
多个索引从左边往右都使用上,才能使用到整个多列索引。
下面我先建立一个简单的表做实验:
create table t6 (
c1 char(1) not null default ‘‘,
c2 char(1) not null default ‘‘,
c3 char(1) not null default ‘‘,
c4 char(1) not null default ‘‘,
c5 char(1) not null default ‘‘,
key(c1,c2,c3,c4,c5)
) engine myisam charset utf8;
再分别insert into一些数据。
分别做以下一些查询:
1.
explain select * from t6 where c1=‘a‘ and c2=‘b‘ and c4>‘a‘ and c3="c" G;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t6
type: range
possible_keys: c1
key: c1
key_len: 12
ref: NULL
rows: 2
Extra: Using where
1 row in set (0.00 sec)
这里使用到了c1,c2,c3,c4索引,特别c4是一个范围查询,所以type为range,依次c1,c2,c3被命中索引。
2.
explain select * from t6 where c1=‘a‘ and c4=‘a‘ order by c3,c2 G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t6
type: ref
possible_keys: c1
key: c1
key_len: 3
ref: const
rows: 2
Extra: Using where; Using filesort
1 row in set (0.00 sec)
过程中先命中了c1,然后在order by c3,c2的时候由于先去use c3做排序,从而联合索引断了。using filesort表明没有使用到多列合索引,而是做了文件内排序。
3.
explain select * from t6 where c1=‘a‘ and c4=‘a‘ order by c2,c3 G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t6
type: ref
possible_keys: c1
key: c1
key_len: 3
ref: const
rows: 2
Extra: Using where
1 row in set (0.00 sec)
反之命中c1索引后,先用c2排序,再是c3来排序,分别命中,最后是c4=‘a‘做where查询,使用到了多列索引。
mysql之多列索引
标签:
热心网友
时间:2022-04-30 11:48
电脑键盘常见故障维修与维护方法大全
由于整个机械式键盘是安装在一整块印刷板电路上的,要取下一个按键,特别是里层的按键,操作比较麻烦的事。
键盘在使用过程中,若按某键失效或反应迟钝,此时即使用力敲打键盘也无济于事,所以必须及时进行修理。
下面介绍一下拆御顺序及方法:
一、键盘常见故障维修
键盘在使用过程中,故障的表现形式是多种多样的,原因也是多方面的。有接触不良故障,有按键本身的机械故障,还有逻辑电路故障、虚焊、假焊、脱焊和金属孔氧化等故障.维修时要根据不同的故障现象进行分析判断,找出产生故障原因,进行相应的修理。
1、某些字符不能输入。若只有某一个键字符不能输入,则可能是该按键失效或焊点虚焊。检查时,按照上面叙述的方法打开键盘,用万用表电阻档测量接点的通断状态。若键按下时始终不导通,则说明按键簧片疲劳或接触不良,需要修理或更换;若键按下时接点通断正常,说明可能是因虚焊、脱焊或金屑孔氧化所致,可沿着印刷线路逐段测量,找出故障进行重焊;若因金属孔氧化而失效,可将氧化层清洗干净,然后重新焊牢;若金属孔完全脱落而造成断路时,可另加焊引线进行连接。
2、键盘上一些键,如空格键、回车键不起作用,有时,需按无数次才输入—个或两个字符,有的键,如光标键按下后不再起来,屏幕上光标连续移动,此时键盘其它字符不能输入,需再按一次才能弹起来。
这种故障为键盘的“卡键”故障,不仅仅是使用很久的旧键盘,有个别没用多久的新键盘上,键盘的卡键故障也有时发生。出现键盘的卡键现象主要由以下两个原因造成的:一种原因就是键帽下面的插柱位置偏移,使得键帽按下后与键体外壳卡住不能弹起而造成了卡键,此原因多发生在新键盘或使用不久的键盘上。
另一个原因就是按键长久使用后,复位弹簧弹性变得很差,弹片与按杆摩擦力变大,不能使按键弹起而造成卡键,此种原因多发生在长久使用的键盘上。当键盘出现卡键故障时,可将键帽拨下,然后按动按杆。若按杆弹不起来或乏力,则是由第二种原因造成的,否则为第一种原因所致。
若是由于键帽与键体外壳卡住的原因造成“卡键”故障,则可在键帽与键体之间放一个垫片,该垫片可用稍硬一些的塑料(如废弃的软磁盘外套)做成,其大小等于或略大于键体尺寸,并且在按杆通过的位置开一个可使铵杆自由通过的方孔,将其套在按杆上后,插上键帽;用此垫片阻止键帽与键体卡住,即可修复故障按键;若是由于弹簧疲劳,弹片阻力变大的原因造成卡键故障,这时可特键体打开,稍微拉伸复位弹簧使其恢复弹性;取下弹片将键体恢复。通过取下弹片,减少按杆弹起的阻力,从而使故障按键得到了恢复。
3、若有多个既不在同一列,也不在同一行的按键都不能输入,则可能是列线或行线某处断路,或者可能是逻辑门电路产生故障。这时可用100MHz的高频示波器进行检测,找出故障器件虚焊点,然后进行修复。
4、键盘输入与屏幕显示的字符不一致。此种故障可能是由于电路板上产生短路现象造成的,其表现是按这一键却显示为同一列的其他字符,此时可用万用表或示波器进行测量,确定故障点后进行修复。
5、按下一个键产生一串多种字符,或按键时字符乱跳,这种现象是由逻辑电路故障造成的。先选中某一列字符,若是不含回车键的某行某列,有可能产生多个其他字符现象;若是含回车键的一列,将会产生字符乱跳且不能最后进入系统的现象,用示波器检查逻辑电路芯片,找出故障芯片后更换同型号的新芯片,排除故障
二、键盘的拆卸与基本维护:
1、翻转键盘,将原来卡住的底板用锣丝刀往左右方向敲击。拆下键盘外壳,取出整个键盘,将键帽拔出。
2、用电烙铁将按键的焊角从印刷电路板上焊掉,使开关和印刷电路板脱离(电铬铁应有良好的接地,以防将键盘逻辑器件击穿)。
3、用镊子将按键两边的定位片向中间靠拢,轻轻从下面一顶,按键便能从定位铁中取出.
4、取下键杆,拿下弹簧和簧片,用无水酒精或四氯化碳等清洗液将链杆、键帽、弹簧和簧片上的灰尘和污垢清除干净,用风扇吹干或放通风处风干。
5、若簧片产生裂纹或已断裂,则应予以更换;若簧片完好,而弹力不足时,可将其折弯部位再轻轻折弯一些,以便增强对接触簧片的压力。
6、装好簧片、弹簧和键杆,将按键插入原位置,使焊角插入焊孔并露出尖端部分,用电烙铁将其与焊孔焊牢,装上键帽即可。
2012-7-24 15:32:18ucnlakbpvzb7250778088wmvoihjuqx鲜mysql 多列索引
热心网友
时间:2022-04-30 13:06
你说的单列索引应该是指聚集索引,他的查询速度较快,因为数据会按照索引的排序方式重新存储一边,但对于经常更新的表,不太适合,会影响效率,因为索引也需要更新。且占用物理资源大。
多列索引属于非聚集索引,这类索引只是提供一个指针,或者说一个视图,提高的速度不如聚集索引迅速,可以优化,比如把常用的列条件放前面。