文档章节

MySQL索引-面试题

R-这个程序员有纹身
 R-这个程序员有纹身
发布于 2017/03/19 09:45
字数 1243
阅读 250
收藏 0

1、索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许 多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进 行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非 常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内 容,为它建立索引就没有太大的实际效果。

2、MySQL索引的特点:提高查询速度、索引不会包含有null值的列

3、索引包括普通索引、唯一索引、主键索引、组合索引。没有外键索引这个说法。

4、在取值重复率比较高的列上,适合创建位图索引,位图索引适合于低基数情况。

5、有关mysql索引描述中,InnoDB存储引擎并不支持全文索引。

6、MySQL数据库中建立索引的常用规则:1、表的主键、外键必须有索引,2、经常与其他表进行连接的表,在连接字段上应该建立索引,3、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引,4、索引应该建在选择性高的字段上。

7、索引可以加快数据库的检索速度,降低了数据表数据的维护任务性能。

唯一索引:与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引:它 是一种特殊的唯一索引,不允许有空值。
全文索引:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。
组合索引:为了更多的提高mysql效率可建立组合索引,遵循“最左前缀”原则。

8、创建索引使用create index关键字,优点是使得查询指定列更加高效。

9、MySQL的索引包括:普通索引、全文索引(FULLTEXT) 、唯一索引、单列索引、多列索引、组合索引等。

10、所有的索引都不是必须的,WHERE和ORDER BY子句中经常使用的字段都应该添加索引,字段内容经常变化的列添加索引反而降低性能。

11、mysql删除索引的语句:drop index indexname

12、位图索引是Oracle中的索引分类,在mysql中并不存在。

索引分为两类,聚合索引和非聚合索引,
操作数据时,增删改操作都会先将索引移除再操作数据
查询语句一次只会使用一个索引,
索引查询时不会将null值包含再内

13、索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

14、索引可以增加、删除,但是没有修改操作。

引用索引的优点有:
保证数据库表中每一行数据的唯一性。
可以加快数据的检索速度,这也是创建索引的最主要的原因。
可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

1)不要有超过5个以上的表连接(JOIN)
2)考虑使用临时表或表变量存放中间结果。
3)少用子查询
4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜。
以上是MySql索引优化的原则。

15、索引可以提高查询效率,可以避免进行全表的数据扫描。

1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
2.建立索引会占用磁盘空间的索引文件一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

(注:如以上资料出错,欢迎指正。)

© 著作权归作者所有

R-这个程序员有纹身
粉丝 1
博文 21
码字总数 10567
作品 0
广州
程序员
私信 提问
Linux运维MySQL必会面试题100道

老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口是否运...

老男孩oldboy
2017/08/25
0
0
新书出版 |《数据库程序员面试笔试宝典》

新书出版 《数据库程序员面试笔试宝典》 新书出版 《数据库程序员面试笔试宝典》 书名: 数据库程序员面试笔试宝典 作者:李华荣 定价: 69.00元 出版社名称: 机械工业出版社 出版时间: 2018年...

小麦苗
2018/08/07
49
0
阿里开发者招聘节 | 面试题06-07: MySQL的数据如何恢复到任意时间点

摘要: 阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的笔试真题这一次将陆续放出(面试题答案将在专辑分享结束后统一汇总分享)。并通过这些笔试真题开放阿里巴巴工作机会,...

阿里云云栖社区
04/30
0
0
我以为自己足够了解MySQL索引,直到遇见阿里面试官……

相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。 因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主...

Hollis
07/22
0
0
抢头条offer机会,抖音面试题:网络编程Socket+GC Roots+数据同步+Redis等

又到抢收好offer的季节,最近今日头条寒冬下逆势热招,放出大量offer,base北京、成都都有,据说福利还很不错,base成都有租房补贴、免费三餐、带薪年假等。 在一家高速发展的互联网公司工作...

mikechen优知
03/06
434
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
23
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部