面试小能手
文章平均质量分 53
面试总结
wlq_1024
这个作者很懒,什么都没留下…
展开
-
面试常见问题(必知必会)之数据库索引(三)为什么建议InnoDB表使用自增主键?(数据库索引的另一种存储方式Hash表)
为什么建议必须建主键和使用整型做主键请看上一篇《数据库索引(二)》最后的面试题部分。该篇主要讨论为什么要用自增主键。但是在讨论为什么之前,我们先来看个东西通过上图我们可以看出,数据库创建存储索引的方法除了B+Tree之外还有一种方法是Hash表。那么,先来看一下Hash表的结构:那么它是怎么存储的呢?比如,现在有一张如上图的表,我想把col3那一列作为索引利用Hash进行存储。那么,数据库会将col3中的每个值进行Hash运行,如下图最左边部分,算出一个值以后它就将那个值进行保存,这个值对应的就是原创 2021-03-26 18:32:47 · 275 阅读 · 0 评论 -
面试常见问题(必知必会)之数据库索引(二)不同存储引擎的索引实现(InnoDB or MyISAM)
文章目录MyISAM存储引擎的索引实现InnoDB存储引擎索引实现非主键索引联合索引在介绍不同存储引擎的索引实现之前,先说一下面试中可能问道的常识性问题:存储引擎是形容数据库的,还是形容数据库表的?(形容数据库表的~) MyISAM存储引擎的索引实现索引文件和数据文件是分离的(非聚类)从上图我们可以看出,数据库的数据默认是保存在mysql目录下的data文件夹,然后我们看到的表是在对应的data下的test文件夹中。通过名字,可以看出MyISAM存储引擎的表有三文件,分别是表结构、原创 2021-03-26 18:29:23 · 190 阅读 · 0 评论 -
面试刷题之牛客网《数组中重复的数字》(习题详细解析及python实现)
文章目录题目链接:题干示例思路详解代码实现 题目链接:数组中重复的数字 题干在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1 示例input: [2, 3, 1, 0, 2, 5, 3]output:2oroutpu原创 2021-03-25 22:48:22 · 274 阅读 · 0 评论 -
面试常见问题(必知必会)之数据库索引(一)索引的本质解析(索引存储为什么选择B+树不选择二叉树和红黑树)
数据库索引(一)索引的本质解析索引是帮助MySQL高效获取数据的排好序的数据结构索引数据结构:二叉树红黑树Hash表B-Tree如上图所示,先看左面我们看到了一个表。假如我现在需要查一条数据(select * from t where t.Col2=89),如果没有索引直接查询的话,它会从第一行数据依次执行I/O操作(耗费性能)读取每行数据进行比较,直至找到我需要的那行数据。(如果需要查找的数据在表的最后,就很耗时) 假设现在我将col2列建了索引,假设我在底层用二叉原创 2021-03-25 18:14:53 · 194 阅读 · 2 评论 -
笔试真题之判断一个数字是否是素数(算法详解及python实现)
题:explain:判断一个数字是否是素数input:数字noutput:如果是素数返回True,否则返回False示例: 判断112272535095293是否是素数算法思想:首先判断是不是1或2,1不是素数,2是素数其次判断是不是偶数(被2整除),偶数不是素数判断能不能被小于它的奇数整除,如果可以不是素数,直接对数开根号,然后判断能不能被3到$ \sqrt n 之间的奇数整除(大于之间的奇数整除(大于之间的奇数整除(大于 \sqrt n 的与小于的与小于的与小于 \原创 2021-03-23 14:13:06 · 1096 阅读 · 1 评论 -
面试真题之Python二维数组转为一维数组的四种方法
arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]列表推导式rst = [x for i in arr for x in i]sumrst = sum(arr, [])itertoolsfrom itertools import chainrst = list(chain.from_iterable(arr))operatorimport operatorfrom functools import reduce原创 2021-03-19 18:10:00 · 861 阅读 · 0 评论 -
面试常见问题(必知必会)之python装饰器是什么?怎么用?如何保留原函数名(实例详解)
在介绍装饰器之前,先了解一下函数调用。def func(): return "I am func()"f = funcrst = f()print(rst)'''如果将一个函数赋值给一个参数,那么这个参数就继承了该函数的功能output: I am func()'''最常见的计算函数所用时间import timedef func(): time.sleep(5) print("I am func()")def func1(): start_原创 2021-03-19 15:43:32 · 322 阅读 · 0 评论 -
面试常见问题(必知必会)之代码管理器(以gitlab为例, gitlab的开始管理新项目的基本操作及命令)
首先,先在自己的gitlab上新建一个仓库在本地安装git,配置全局连接用户git config --global user.name "xxx"git config --global user.email "xxx@xx.com"分为四种情况来进行本地和远程连接是一个空的新建的project# 克隆远端仓库到本地git clone http://gitlab.xxx/wlq/test1.git# 进入本地仓库cd test1# 新建概述文件touch README...原创 2021-03-18 17:20:54 · 654 阅读 · 0 评论