1.你知道有哪些数据库,说一说。
常用的关系型数据库
ORracle,MySQL,SQL Server,ACCESS数据库。
MySQL:采用C和C++语言编写,支持多操作系统,体积小,速度快,成本低,开源,适合中小型网站开发。
SQL Server:性价比高,易操作,但只能在windows上运行,没有开放性,多用户时性能差。
2.Redis是干嘛的?
是一个高效缓存的数据库,是一种键值对形式的存储系统,属于非关系型数据库。
3.二叉树与B树的区别
二叉树常用来实现二叉查找树(用于搜索和动态排序)和二叉堆(快速获取集合最值)。
B树是平衡查找树,能对存储数据进行O(logn)的时间复杂度插入,查找和删除。
4.TCP与UDP的区别
①TCP需要建立一对一稳定的连接,UDP无连接。
②TCP一对一,UDP可以一对一,一对多,多对多。
③TCP传输可靠,有序列号,确认应答,超时重传等保证;UDP不保证可靠传输,尽最大努力交付。
④TCP头部是20字节,UDP是8字节。
⑤TCP开销大,UDP灵活,开销小。
⑥TCP提供可靠的服务,适用于通讯质量要求高的场景;UDP传输效率高,适用于高速传输和实时性要求的场景。
5.UDP如何实现可靠性传输?
加入TCP可靠机制。
①序列号,确认应答,超时重传
发送方发送数据,接收方需要确认序列号,序列号说明了它下一次接收数据的序列号。若发送方一直没有接收到确认应答,则数据可能丢失,或确认应答丢失,接收方会等待一段时间重新传送。
②窗口控制
TCP会利用窗口提高传输速度,在一个窗口大小内,不一定要等到应答才能发送下一段数据,窗口大小就是无需确认等待而可以继续发送数据的最大值。
③拥塞控制
如果窗口很大,发送端连续发送大量数据,可能造成网络拥堵,为防止拥堵采用拥塞控制。主要是增大窗口。