面试都问了些什么及解答

一亿数据高效查找与数据库优化策略
本文探讨了在Linux环境下处理一亿条数据时的高效查找方法,包括使用命令行工具、数据库索引技术和文件流处理。同时,文章深入讲解了数据库优化的核心要点,如聚集索引、非聚焦索引、联合索引、填充因子和查询计划优化策略,旨在提高数据检索速度和系统性能。

---恢复内容开始---

一,大数据类:

  问:一亿条字符串,固定长度,其中有重复的两条数据,如何找到(不限制方法)

  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)

 

 

转载于:https://www.cnblogs.com/codefish/p/4651658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值