网上找了一些面试题并试着搜了一些答案--大数据类岗位(SQL和性能测试问题)

本文详细介绍了SQL中表关联的方法,包括left join、right join、inner join等,并提供了将多张表合成一张表的SQL语句实例。同时,深入探讨了Linux下常用命令,如find用于文件查找与删除,以及如何通过iostat和sar命令发现I/O瓶颈。最后,给出了在CentOS系统中部署war包的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、怎样关联两张表?left join和join的区别是什么?十张同样结构的数据库表合成一张,怎么写sql?

a)

用法:select  *  from  表A   left  join  表B   on   表A.sid=表B.id
也可以这样:select  (select 字段  from  表B  where  表B.id=表A.sid) from  表A

b)

left join  :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
inner join : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
full join  :外连接,返回两个表中的行:left join + right join
cross join :结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

c)
select * 
into 新表名 
from (select * from T1 union all select * from T2) 

这个语句可以实现将合并的数据追加到一个新表中。 

不合并重复数据 
select * from T1 union all select * from T2 

合并重复数据 
select * from T1 union select * from T2       

两个表,表1 表2 
如果要将 表1的数据并入表2用以下语句即可 

insert into 表2(字段1,字段2) select 字段1,字段2 from b1 

注意,必须把字段名全部写清楚,而且不允许把自动编号进去写进去,要合并自动编号字段必须重写一个算法一条一条记录地加进去

1 insert into b1 select * from b2 
2 select * into newtable from (select * from b1 union all select * from b2)

2、你常用的linux命令是什么?linux下,如何查找目录abc下的一个文件error,以及如何删除一个目录下所有最近十天的文件

find    

查找目录下的所有文件中是否含有某个字符串 
find .|xargs grep -ri "IBM" 
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 
find .|xargs grep -ri "IBM" -l 

find /your_dir/ -maxdepth 1 -type d -mtime +3 -exec rm -rf {} \;

本命令可以删除 [3] 天前的所有目录。


其中:


your_dir - 目标目录


-maxdepth - 最大目录层次,我要从第一级目录开始删除,1就可以了


-type d - 操作对象为目录, f 代表文件


-mtime +3 - 3天前的目录  -10  10天内的文件

-exec rm -rf {} \; - 执行命令的标准格式


配合脚本,就可以自动在服务器上清理旧的临时文件了。

find /your_dir/  -type f -mtime -10 -exec rm -rf {} \;

本命令可以删除当前目录 [10] 天内的所有文件。


有关find -mtime这个参数的使用确实是我以前犯过错误。
今天又有人问到我这个问题,我觉得有必要把这个问题在这里记录下来。
#
#mtime参数的理解应该如下:
-mtime n 按照文件的更改时间来找文件,n为整数。
n表示文件更改时间距离为n天, -n表示文件更改时间距离在n天以内,+n表示文件更改时间距离在n天以前。
例如:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

为什么-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间48小时之外的文件,而不是24小时之外的呢?
因为n值只能是整数,即比1大的最近的整数是2,所有-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。


3、性能测试如何发现I/O瓶颈

Windows资源监控中,如果% Disk Time和Avg.Disk Queue Length的值很高,
而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。
iostat  和sar是Linux下面比较常用的监视命令。


4、给你一个centos系统和一个war包,如何部署环境?
 
linux系统下部署war包 - hellowangchaochao的博客 - 优快云博客
https://blog.youkuaiyun.com/hellowangchaochao/article/details/73223773

a)文件上传到系统

b)停止tomcat服务器:

      a、进入到tomcat的bin目录,    cd /soft/apache-tomcat-7.0.77/bin

      b、停止服务,   ./shutdown.sh

      c、查看状态,    ps -ef|grep java

c) 放到tomcat的webapps目录下

d)重启tomcat服务器

      进入到tomcat的bin目录    ./startup.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值