Linux运维工程师面试题第九套

本次全部都是mysql的题,非常的基础,enjoy it~

1、SELECT id,name FROM test1; 和 SELECT id name FROM test1;这两个语句有什么区别?

第一个语句会出现两个列,第二个只有一个列,列的内容是id的内容,但是列的名称是name,也就是说第二句话其实就是"SELECT id AS name FROM test1"。


2、如果想把test1表格里满足age大于等于30的username都迁移到test2表格里的username列,需要什么命令?

INSERT test2(username) SELECT username FROM test1 WHERE age >=30;

【评析】这种方法注意,新表/旧表有更新的时候,旧表/新表不随之更新。因为没有链接,仅仅是一个一次性的复制而已。


3、列举出A表里满足价格(price)大于A表里所有货品平均价格的id,name,age。

SELECT id,name,age FROM A WHERE > (SELECT AVG(price) FROM A)

【评析】 其实可以先求出来AVG(price),然后直接大于那么值就好,但是要注意SELECT ,SELECT的结果才是一个数。

如果需要把平均值四舍五入,并且保留小数点后两位,那就ROUND(AVG(price),2)


4、test1表里有一个叫"country"的列,现在需要做一个test2,专门放这些"country",并且实现这两个表的多表连接。

1)CREATE一个TABLE叫test2,里面有一列叫id,另一列叫country。

2)INSERT test2(country) SELECT country FROM test1 GROUP BY country;

3)UPDATE test1 AS OLD INNER JOIN test2 AS NEW ON test1.country = test2.country

->SET old.country = new.id 

【评析】“增删改查”,mysql难就难在这个“查”上。


5、Mysql自增长的关键字

AUTO_INCREMENT


6、mysql备份实例,自动备份mysql,并删除30天前的备份文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
#Description:Auto backup mysql
MYSQLDB=Test1
MYSQLUSR=Username
MYSQLPASSWORD=PASSWORD    #定义账号、密码和需要备份的数据库名
BACKUPDIR=backupDIR=/data/backup/mysql/$(date +%Y-%m-%d)   
if[ $UID -ne 0 ];then    #UID是USERID的意思,0是ROOT的ID号
    echo This script must use administrator or root user ,please exit!    
#提示当前账户不是ROOT,需要切换成ROOT用户
    sleep 2  
exit 0  
fi  
   
if[ ! -d $BAKDIR ];then  
mkdir -p $BAKDIR  
else  
echo This is $BAKDIR exists ,please exit ….  
sleep 2  
exit  
fi


/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >/data/backup/mysql/`date +%Y-%m-%d`/www_db.sql  

  

cd $BAKDIR ; tar -czf  www_mysql_db.tar.gz *.sql  

  

cd $BAKDIR ;find  . -name “*.sql” |xargs rm -rf[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` RESIN BACKUP is SUCCESS”  

  

cd /data/backup/mysql/ ;find . -mtime +30 |xargs rm -rf  


7、讲述一下cookie和session的区别。

cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

【评析】cookie如果没有设置生存时间,那么关闭浏览器的瞬间,cookie就会消失,下一次登陆依旧要输入账号密码,cookie默认是存储在硬盘里而不是内存里,如果是设置了生存时间,那么就会保存在内存里,下一次继续使用。

session有一个session id,要是服务器能查询的到id,就会按这个id号的内容体现数据,如果查询不到就会新建一个id,session id是可以用cookie的形式保存的。


8、讲述一下服务器缓存的原理。


9、如何查看系统资源占用状态。

top      uptime    vmstat    free   很多命令都可以


10、如果一个网站平时业务不是很多,但是有时候业务会急剧增长,例如淘宝之类电商网站,遇到特价的时候,流量会特别大,遇到这种情况,在尽量低的成本下,应该如何做。

rsync命令去同步数据,然后dns轮询。

【评析】sync的远距离版本就是rsync,r在这里是remote的缩写。

它可以当cp这个功能用,rsync -a /A /B   将B的内容拷贝到A文件夹下。或者rsync main.c machineB:/home/userB,把main.c拷贝到B机器的userB里,他拷贝速度很快,因为他发现有不同的内容就会拷贝,相同的就跳过。



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1745859

上一篇:NetApp在闪存存储、云和下一代数据中心蓄势待发


下一篇:HyperLedger Fabric超级账本组织(5.3)