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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

Python

1、假设 AAA=[1,1,1,3,5,2,6,1,7,3,45],请问使用python如何在将list里重复的数字过滤掉?

1
>>> list ( set (AAA))

【评析】注意,虽然set(list(AAA))的结果好像也是一样的,但是注意set是{},list是[]。而且如果AAA里是中括号套中括号的话,那么不可以使用set(list()),因为没法比。不是哈希。


2、简述一下list和tuple的不同

list是动态的,设定完了可以删减元素,而tuple是静态的,不能删减元素。

【评析】tuple的调用速度更快,如果是一个需要反复调用的数组,用tuple效果更好。

tuple不能索引也不能删减元素,但是其实是可以增加元素的,举个例子:

1
2
3
>>>AAA = ( 1 2 4 5 )
>>>AAA = AAA[: 2 ] + ( 3 ,) + AAA[ 2 :]
>>> print (AAA)               #看看结果。


3、简述一下search()和match()的区别

match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none


4、如何在生成一个随机数?

1
2
>>> import  random
>>>random.random()

【评析】这样会生成一个在0~1之间的浮点数。如果要生成一个1~10的整数,那么就是print(random,randint(1,10))。

如果要是在固定的几个元素中随机抽取一个值,比如aaa=["林志玲","贾静雯","刘涛","关咏荷","高圆圆"],要从这几个女性中随机抽取一个值,同样先import random,然后random.choice(aaa)。


5、假设 AAA=["梅西","内马尔","苏亚雷斯","皮克","布斯克茨","伊涅斯塔"],BBB=["皮克","德赫亚","拉莫斯","伊涅斯塔","法布雷加斯","布斯克茨"],如何求出两个list之间的交集和差集?

交集:CCC=[val for val in AAA if val in BBB]

差集:DDD=[val for val in AAA if val not in BBB]

【评析】DDD这个差集是AAA这个list里有但是BBB里没有的,如果要显示出BBB有而AAA没有的元素,那么就调换一下 DDD=[val for val in BBB if val not in AAA]

本题里AAA和BBB都是list,所以要用“列表生成式”;如果这里AAA和BBB都是set,即AAA={"梅西","内马尔","苏亚雷斯","皮克","布斯克茨","伊涅斯塔"},BBB={"皮克","德赫亚","拉莫斯","伊涅斯塔","法布雷加斯","布斯克茨"},那么这样求交集就是AAA&BBB,而差集就是AAA|BBB。


6、反转由单词和不定个数空格组成的字符串,要求单词中的字母顺序不变。如:"I love    this      game!"反转成“game!      this    love I”。

1
2
3
4
>>>  import  re
>>> AAA  =  "I love    this      game!"
>>> BBB =  ' '.join(re.split(r' (\s + )',AAA)[:: - 1 ])
>>>  print (BBB)


【评析】这道题虽然寥寥几个字,但是真心有难度。


7、deepcopy和copy的区别?

copy:只拷贝父对象,不去深入挖掘里面的子对象

deepcopy:父对象子对象都拷贝,有点坚守原样的意思。

【评析】

1
2
3
4
5
6
7
>>> import  copy
>>>a = [ 1 , 2 , 3 , 4 ,[ "a" , "b" ]]
>>>b = a     #与a同进共退
>>>c = copy.copy(a)     #浅拷贝
>>>d = copy.deepcopy(a)     #深拷贝
>>>a.append( 5 )
>>>a[ 4 ].append( "c" )     # 此时分别输出一下a,b,c,d看一下结果。


Mysql

1、MySQL中myisam与innodb的区别,至少5点

【评析】将Mysql常见的存储引擎的特点归纳表格如下

特点 myisam innodb memory archive
存储限制 256TB 64TB
事物安全 支持
支持索引 支持 支持 支持 不支持
锁颗粒(锁力度) 表锁 行锁(没有索引的情况是表锁) 表锁 行锁
数据压缩 支持 不支持 支持 不支持
支持外键 支持


2、varchar与char的区别;varchar(50)中50的涵义;int(20)中20的涵义;

char是定长变量,varchar是变长变量。 varchar(50)表示这一行的变量最大的存储字节是50个字节,int(20)同理。

【评析】假设有一行是name char(8),如果有一个数据是叫 AAA,那么它仅仅只有三个字节被存储进去,但是依旧存储了8个字节,多余的5个字节空着也就空着了。而是name varchar(8),同样是AAA,由于是变长,所以只保存了3个字节,剩下5个字节是弹性的,有就用,没有就不用。

在读取方面,char的读取速度要比varchar快,也就是常说的“用读取换容量”,但是还是多用varchar,当数据库内容成万上亿的时候,节省的容量是非常非常可观的。

3、问了下MySQL数据库cpu飙升到500%的话他怎么处理?

4、explain出来的各种item的意义;profile的意义以及使用场景;explain中的索引问题。

5、备份计划,mysqldump以及xtranbackup的实现原理;备份恢复时间;备份恢复失败如何处理。

mysqldump是采用sql级别的备份机制,将数据表导成sql脚本文件,在不用的mysql版本之间升级时相对比较合适。

xtranbackup是innodb的hotbackup工具,xtrbackup在启动的时候会复制所有的数据文件,同时会启动一个后台进程,用于监视事务日志,并且从事务日志复制最新的修改。所以xtrbackup在启动的开始,就不懂的将事务日志的每个数据文件的修改都记录下来。

mysqldump的备份和恢复时间都很慢,任何数据的更新和变化都会被挂起。

xtrabackup的恢复时间比mysqldump快一点,但是会锁表。

备份恢复失败的话,其实原因很多,主要可能就是参数设置的不对,检查一下参数。

【评析】使用mysqldump备份数据表的命令,在shell下执行:

mysqldump -u用户名 -p密码(可以直接-p) -h主机名 --databases 数据库名 > 要备份的文件路径

mysqldump -u用户名 -p密码 -h主机名 --all-databases >要备份的文件路径

mysqldump -u用户名 -p密码 -h主机名 --no-data 数据库名 >要备份的文件路径

这里并不全,另写文章专门补充。


6、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?

InnoDB的行锁是通过加在索引上实现的,为什么这么设计,我也不知道,去问mysql的设计公司。


http://www.2cto.com/database/201312/265037.html

http://www.myexception.cn/mysql/1712377.html



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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 算法 C++
C/C++工程师面试题(STL篇)
C/C++工程师面试题(STL篇)
48 6
|
1月前
|
存储 缓存 数据库
C/C++工程师面试题(数据库篇)
C/C++工程师面试题(数据库篇)
47 9
|
1月前
|
移动开发 运维 监控
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
|
1月前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
32 0
|
13天前
|
运维 网络协议 Linux
【专栏】 20 个 Linux 命令,运维工程师工作时最常用的
【4月更文挑战第28天】本文介绍了运维工程师常用的20个Linux命令,包括`ls`、`cd`、`pwd`、`mkdir`、`rm`、`cp`、`mv`、`cat`、`more`、`less`、`head`、`tail`、`grep`、`find`、`chmod`、`chown`、`chgrp`、`ps`、`top`和`ifconfig`,帮助提升工作效率。此外,还提到了其他常用的命令如`df`、`free`、`tar`、`ssh`、`scp`、`ping`、`netstat`、`iptables`、`systemctl`、`hostname`等,建议运维人员掌握以应对各种运维场景。
|
4天前
|
存储 缓存 安全
Linux系统内核面试题
Linux系统内核面试题
20 3
|
4天前
|
运维 监控 Linux
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
9 0
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
|
5天前
|
分布式计算 监控 大数据
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
19 1
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
|
13天前
|
存储 网络协议 安全
【专栏】30 道初级网络工程师面试题为广大网络工程师提供参考。
【4月更文挑战第28天】本文为初级网络工程师提供了30道面试题,涵盖OSI七层模型、TCP/IP协议栈、IP地址分类、ARP、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN、网络拓扑、广域网、以太网、网络存储、网络拥塞、流量监控、延迟、网络安全、网络攻击防范、协议分析、性能优化、故障排查、网络虚拟化和云计算等基础知识。这些问题旨在帮助面试者准备并提升网络工程领域的知识和技能。
|
13天前
|
运维 监控 Linux
【专栏】Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用
【4月更文挑战第28天】本文介绍了Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用。通过基础和高级用法示例,如列出所有容器、搜索特定镜像、监控资源使用等,帮助读者理解和提升容器管理效率。对于Linux运维工程师,掌握`docker ps`是必备技能。