在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
以下是小编继续整理的关于数据库基础的试题汇总,现在赶紧来看看吧!
一、库索引
数据库索引,是数据库管理系统中一个排序的数据结构,以协助 快速查询、更新数据库表中数据。索引的实现 通常使用 B_TREE。
B_TREE 索引加速了数据访问,因为存储引擎不会再去扫描整张表得到需要的数据;相反,它 从根节点开始,根节点保存了子节点的指针,存储引擎会根据指针快速寻找数据。
二、数据库怎么优化查询效率?
1、储存引擎选择:如果数据表需要事务处理,应该考虑使用 InnoDB, 因为它完全符合 ACID 特性。如果不需 要事务处理,使用默认存储引擎 MyISAM 是比较明智的
2、分表分库,主从。
3、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及order by 涉及的列上建立索引
4、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
5、应尽量避免在 where ?子句中使用!= ?或<> 操作符,否则将引擎放弃使用索引而进行全表扫描
6、应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎 放弃使用索引而进行全表扫描
7、Update 语句,如果只更改 1、2 个字段,不要 Update 全部字段, 否则频繁调用会引起明显的性能消耗, 同时带来大量日志
8、对于多张大数据量(这里几百条就算大了)的表 JOIN,要先分页再 JOIN,否则逻辑读会很高,性能很差。
三、你用的 Mysql 是哪个引擎,各引擎之间有什么区别?
主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下:InnoDB 支持事务,MyISAM 不支持,这一点是非常 之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM 就不可以了;
MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用; InnoDB 支持外键,MyISAM 不支持;
MyISAM 是默认引擎, InnoDB 需要指定; InnoDB 不支持FULLTEXT 类型的索引;
InnoDB中不保存表的行数,如 select count() from table 时,
InnoDB;需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count()语句包含 where 条件时MyISAM 也需要 扫描整个表;
对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字 段一起建立联合索引;清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表;
InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%'
四、如何对查询命令进行优化?
1、 应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索。
2、 应尽量避免在 where 子句中对字段进行 null 值判断,避免使用!=或<>操作符,避免使用 or 连接条件,或在 where 子句中使用参数、对字段进行表达式或函数操作,否则会导致权标扫描 c. 不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算, 否则系统将可能无 法正确使用索引。
3、使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为 条件时才能保证系统使用该索引, 否则该索引将不会被使用。
4、 很多时候可考虑用 exists 代替 in、 f. 尽量使用数字型字段。
5、 尽可能的使用 varchar/nvarchar 代替 char/nchar。
6、任何地方都不要使用 select from t??? ,用具体的字段列表代替“,” 不要返回用不到的任何字段。
7、尽量使用表变量来代替临时表。
8、避免频繁创建和删除临时表,以减少系统表资源的消耗。 k. 尽量避免使用游标,因为游标的效率较差。
9、在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF。 m. 尽量避免大事务操作,提高系统并发能力。
10、尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。
数据库基础的试题几天就分享到这里了,同学们要好好掌握呀!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件测试面试题汇总:测试计划(1)
随着移动互联网的发展,软件测试求职者越来越多,针对许多同学的需求,我们来复习一下有关测试计划的知识点。测试计划是软件测试面试的常见问题,也是同学们必须掌握的基础知识。
8377
2019-07-03 10:53:10
数据库基础的试题汇总(上)
众所周知,在软件测试中,数据库是必备知识,也基础中的基础。今天小编整理了关于数据库基础的试题汇总,希望和大家一起分享。
7657
2019-07-05 11:16:54
软件测试工程师面试自我介绍指导
在软件测试的面试中,HR第一个问题往往是让你自我介绍。很多软件测试工程师都会犯的错误就是,要么啰啰嗦嗦说一大推废话,要么只简单介绍自己的基本信息。因此本文旨在指导大家在软件测试工程师面试时,能够给面试官留下好印象。
9812
2019-09-04 18:37:47
2019软件测试工程师面试题汇总及答案
软件测试工程师在面试前想要做好充足的准备,可以刷一遍本文分享的面试题。这些汇总的面试题都是2019年最新整理出炉的,并附上了参考答案,其中包含了测试理论、Linux基础、数据库基础、API测试、App测试、管理工具等方面的知识点。可以说是,既有软件测试的基础知识,又有软件测试的所有知识重难点内容。有面试需求的小伙伴赶紧做一遍下面的面试吧!
12563
2019-09-29 10:25:27
软件测试之API测试面试题汇总附答案
提到API测试,相信了解软件测试的小伙伴们都不会感到陌生。API测试的英语全称叫做Application Programming Interface,它也是软件测试相当重要的一部分。因此本文为大家整理了一些常见且经典的API测试面试题,大家也可以本次面试题汇总当成知识点梳理。现在马上来一起看看看吧!
7032
2019-12-10 21:48:14
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息