面试都问了些什么及解答
---恢复内容开始---
一,大数据类:
问:一亿条字符串,固定长度,其中有重复的两条数据,如何找到(不限制方法)
1.linux系统下一条命令
2.导入数据库添加非聚焦索引,一条select 命令
3.文件流写成1000个文件,并计算hash值 % 100 这样就有100个文件,开多线程并行计算hashset
问:一亿条int类型的整数如何找到重复的
申请长为1亿的bitarray,根据比如这样的数组{1,2,5,3,6} 可以用bitarray这样表示0111011 ,第几位存在就标示为1,不存在则记为0,直接扫描bitarray就可以确定需要添加的数是否存在了。
二,在你看来,数据库优化要注意哪些内容?
基础知识准备: SQL server 的数据存储都是B树来存放
1.聚集索引的原则是放在那些高频,唯一的属性列上,当表没有建立聚焦索引的时候,那时的表的存储顺序就是以堆的方式存在,是没有顺序可言的。
表的顺序上的连续是非常的重要的
尽量在唯一性高的字段上创建索引,不要在性别这种唯一性很低的字段上创建索引;
2.非聚焦索引
3.联合索引 注意顺序
4.索引的碎片化,需要rebuild索引。
5.填充因子
6.学会看查询计划
T-SQL的优化:
1.在Where条件中尽量不要在=号左边进行函数、运算符、或表达式计算,如Where DATEDIFF(DD,StartTime,GetDate())=6 ;或Where Num/2=100;
2.在Where中尽量避免出现!=或<>操作符;
3.在Where中尽量避免对字段进行null值判定;
4.使用Like关键字进行模糊查找时,不要使用前置百分号,如Like ‘%123%’;
5.数据库字段的长度尽量的小(保证应用的前提下);
6.不要使用Selecte*,不要使用*号来查询数据;
7.尽量避免使用游标,游标的效率是很差的,可以使用While循环来代替;
8.尽量避免返回大量数据(查询数据(Select)优化,分页处理等);
9.使用Exists代替in和not in
10.注意是否使用脏读,with(nolock)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?