一、机试
1.关于 longlong
发现一个问题就是在笔试的时候有的题目从 int 改成 lomglong,通过率就从 30 到 50 了,所以以后先看数据范围,然后因为 long long 可能不止用一次所以用 typedef long long ll,这样写的快一点。
2.堆排序
今天练习了一下堆排序都实际写法,首先是最开始的建堆,然后每次依次处理第 i 个把第 0 个放到最后。
二、八股
1.关系型数据库和非关系型数据库的区别
关系型数据库支持复杂查询,结构固定,而非关系型数据库是键值数据库,支持更多种的数据。
2.数据库的结构
由服务端和存储引擎构成,其中服务端包括连接器,分析器,查询缓存,优化器,执行器;存储引擎包括 InnoDB 和 MyLSAM 这些。
3.InnoDB 和 mylsam 的区别
InnoDB 支持事务而 MyLsam 不支持事务;InnoDB 支持外键而 MyLsam 不支持;InnoDB 支持行锁 MyLsam 支持的是表级锁;InnoDB 支持聚集索引,InnoDB 存储的是数据域的指针。
4.b+树和 b 树相比的核心区别
对于范围查找 b+树可以在链表去查而 b 树需要对节点进行中序遍历,查询可能比较麻烦。
三、消息队列
避免积压在生产端可以批处理&使用并发,而消费端不能随意的并发因为可能影响顺序,可以使用更多组每个组保证顺序。