自用小问答

1. SQL语句的执行过程

        解析:数据库解析器会将语句解析成解析树。

        预处理:检查语法、权限、表的存在性

        优化:优化器生成执行计划,选择最有效的查询策略

        执行:按照执行计划查询后返回结果

2. MySQL的长连接与短连接

        短连接:每次数据库操作后,连接立刻关闭。

                       可节约占用服务器资源的时间

        长连接:允许连接一次数据库,进行多次操作。

                       适合高并发,可节约 连接与断开 的开销

3. ping命令在哪一层,用的什么协议?

        ping命令在网络层,用的是ICMP协议。

4. UDP如何保证可靠传输?

        1. 重传:应用层检测丢包并重传

        2. 确认应答:接收端发送确认消息,表明成功接收

        3. 顺序控制:检测序列号

        4. 流量控制:控制发送速度,防止接收端过载

5. linux查看端口占用情况用什么命令?

        netstat -tuln:显示所有监听的端口和使用的协议

        ss -tuln:功能与netstat一样,但可能更快

        netstat -anp | grep <端口号>:显示指定端口详细信息

6. C++从一堆数中查找最大的10个数,应该怎么找?

        维护一个大小为10的最小堆,遍历一遍所有数:

                如果堆未满,则将其插入堆中。

                如果堆已满 且 当前数字大于堆顶元素,则将其插入,并重新排列堆。

7. 把用户数据复制到磁盘需要经历哪些缓冲区

        用户缓冲区:数据最初在应用程序的内存中

        内核区缓冲区

                        页缓存:数据从用户区复制到内核区,为了提高磁盘I/O性能

                        I/O缓冲区:再页缓存中进一步处理数据,准备写入磁盘

        磁盘控制器缓存:数据从内核区缓存到控制器的缓存中,进一步提高写入效率

        磁盘:最终被写到物理介质上

8. 如果cpu利用率过高,你会怎么排查问题?

        1. 使用gprof分析性能瓶颈

gprof my_program gmon.out > analysis.txt

        2. 检查线程和并发,看是否存在竞争和死锁问题

        3. 用top监控系统资源,看是否有其他进程占用CPU

        4. 检查I/O操作,确保没有导致CPU过度等待

9. mmap主要用来做什么?

        1. 文件映射:将文件内容映射进虚拟地址,可以向操作内存一样操作文件,提高访问率

        2. 共享内存:实现线程间通信

        3. 处理大数据集:通过内存映射避免大文件的显式读写,提高效率

10. 操作系统:windows和linux用的什么任务调度算法?

  • Windows:使用基于优先级的抢占式调度算法。具体来说,Windows 10 和 Windows Server 采用了类似于“多级反馈队列”的算法,其中每个线程都有一个优先级,系统会根据线程的优先级和当前的 CPU 使用情况来决定调度。

  • Linux:主要使用“完全公平调度器”(CFS)。CFS 是一种基于红黑树的数据结构实现的调度算法,旨在确保所有进程公平地共享 CPU 时间。它会动态调整进程的调度优先级,以实现高效和公平的任务调度

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值