一个零基础小白不追肥皂剧了,开始研究数据库、Linux,弯转的有点急啊,不过,不管怎么样渴望学习是好事。
和当初去小米面试不一样,你要没有扎实的基本功,想忽悠住面试官可太难了。但现在我这点水平忽悠她,那还不跟欺负小学生一样。
今天突然问我:” 什么是 数据库 的二叉树算法我有点惊讶,问的挺深入,看来这次是认真学了啊。那得赶紧讲不能打消人家的学习积极性。
于是我清了清嗓子:关于数据库,我认为是软件测试工程师第一个要学的技术也是最重要的基础。不仅你做功能测试要用到数据库;接口测试、很多接口的返回值它是动态的,那么你要去数据库拿数据来校验;还有自动化,怎么去做一些数据驱动,都要从数据库里去拿。你做性能测试是不是也和数据库有关。比如慢查询,都和数据库有关。
打开电脑翻出了当初我面试时候总结的面试题数据库部分:
首先如果你要去面试,你得首先保证你掌握了sql的基本查询
增删改查
第一部分:软件测试基础理论、流程还有项目管理
增删改查大家基本都会吧,Select、Delete、Update、还有一个子查询、关联查询、分组查询、分组过滤。
子查询:就是一个嵌套在查询语句中的查询
关联查询:内连接、外连接(左连接、右连接)
我相信每次去面试的时候很多人都会去百度。搜索什么是什么子查询是关联、分组查询是分组过滤……经过熬夜看完了几篇“深度好文”可能面试官问,也会胸有成竹。
如果以上的内容都不熟悉,就不要在简历中写:“我熟悉数据库的语句”
你可能比较陌生的可能是分组查询( group by)和分组过滤(having)
分组查询( group by)是一个按照表中一个或者多个字段,将数据进行分组,一般用于数据进行分类汇总。
其实这是个挺简单的概念。
第二部分:数据库
1.说一下你常用的sql优化方式么select*效率低p>
优化方式比如说你用到了select*,那么我就会问你为什么select*效率低p>
可能你会说因为*是查询所有的。
面试官:那还有呢什么要补充的吗p>
我:(抓抓头发,手儿无处安放)面试官,你干脆把简历还给我吧,我都不想再说下去了。
有很多时候是这样子的 ,当面试官问到你一个问题,如果你只知道一点点,你说出来一点点,面试官问你还有没有其他要补充的……
那么select*为什么效率低strong>
索引是和性能息息相关的一个东西
如果我们把数据库当做一本“新华字典”索引就是这个字典的目录。一般会针对where(id等于多少)条件后面的字段
索引既然是一个目录,那么它就可以分为很多级。(目录下面又有一个目录)
比如你要去查询select * from where id=4 id等于多少,它就用到了一种索引。所以说索引就是这个字典的目录,一般会针对where条件后面的字段。
所以说这样去查,如果你不是主键,那么会慢很多,如果你是主键是索引,就会快很多。
如果一般的有百万级的数据,它就会去查百万次。
如果我们用二叉树算法(索引)它会去查询多少次呢p>
二叉树的原理:取中间一个数,大于的右移,小于的左移。每次减半。
11个数据,二叉树的一个经典的算法,取中间的一个数,11最中间的一个数是什么对吧。那么它会把小于6的12345放一边,然后这里7891011也会放一边,他就会这样去进行。
我们来看一看如果它加了索引,它会查询几次。比如它第一次查id等于4,它会取中间一个数等于6,我们要的不是等于6。根据原理,它就又会去取中间一个值,大于的右移,小于的左移6的中间值是3,12放左边,45放右边。
“我就让你给我解释什么是二叉树算法,你给我讲这么多,我要好好消化一下。这个月的饭你来做,衣服碗也一起洗了奥~”
太难了……
大智若愚。
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,
不在等待中拥有,而是在奋斗中争取。
我的学习交流群:1033482984 群里有技术大牛一起交流分享~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34436 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!