Linux运维工程师面试题(6)

这篇具有很好参考价值的文章主要介绍了Linux运维工程师面试题(6)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • Linux运维工程师面试题(6)
    • 1 数据库事务的四个特性及含义
    • 2 mysql 的 sql 语句怎么优化
    • 3 varchar 与 char 的区别是什么?大小限制?utf8 字符集下 varchar 最多能存多少个字符?
    • 4 索引有什么用?
    • 5 sql 注入是怎么产生的,如何防止?
    • 6 csrf 是什么?如何防范?
    • 7 如何加强 MySQL 安全,请给出可行的具体措施?
    • 8 如是数据库慢导致网站打开慢,如何排查并解决?
    • 9 MySQL 有多少种日志
    • 10 MySQL 数据库 cpu 飙升到500%的话他怎么处理?

Linux运维工程师面试题(6)

祝各位小伙伴们早日找到自己心仪的工作。
持续学习才不会被淘汰。
地球不爆炸,我们不放假。
机会总是留给有有准备的人的。
加油,打工人!

1 数据库事务的四个特性及含义

数据库事务的4个特性:原⼦性、持久性、⼀致性、隔离性

  • 原⼦性:整个事务中的所有操作要么全部完成, 要么全部都不完成, 如果在事务中操作出现异常,那么事务将会进⾏回滚,就像这个事务从来没有执⾏过⼀样;
  • 持久性:在事务完成后,该事务所有的操作都将持久化在数据库中,不会被回滚;
  • ⼀致性:在事务开始之前和事务结束之后,数据库的完整性约束并没有被破坏;
  • 隔离性:确保在同⼀时间类只有⼀个事务处理某个数据。

2 mysql 的 sql 语句怎么优化

  1. 尽量避免使用or、in、not in 和在 where 语句后⾯使⽤ !=、<>操作符以及对NULL值得判断, 否则数据库引擎将放弃索引而使用全表扫描。使用 exists 替换 in。
  2. 尽量放弃使⽤ select *,返回无用的字段会降低查询效率,需要什么数据就取出什么数据。
  3. 使⽤ join 代替⼦查询。
  4. 设置合适的字段属性:例如尽量把字段设置为 NOT NULL,这样引擎就不要对⽐NULL值。
  5. 在表中建立索引,优先考虑where、group by使用到的字段。
  6. 尽量避免在字段开头模糊查询,会导致数据库引擎放弃索引进行全表扫描

3 varchar 与 char 的区别是什么?大小限制?utf8 字符集下 varchar 最多能存多少个字符?

char 和 varchar 最⼤的不同就是⼀个是固定⻓度,⼀个是可变⻓度。由于是可变⻓度,因此存储的是实际字符串再加上⼀个记录字符串⻓度的字节。如果分配给 char 或 varchar 列的值超过列的最⼤⻓度,则对值进⾏裁剪。

varchar(M) 和 char(M),M都表示字符数。varchar的最大长度为65535个字节,不同的编码所对应的最⼤可存储的字符数不同。char 最多可以存放255个字符,不同的编码最⼤可⽤字节数不同。字符类型若为utf8,每个字符最多占3个字节,varchar 最大长度不能超过21845。

例:

char(4)定义的是固定长度4,存储时,如果字符数不够4位,会在后面用空格补全存入数据库。

varchar(4)定义的是变长长度,存储时,如果字符没有达到定义的位数4时,也不会在后面补空格。

4 索引有什么用?

对于建⽴索引的列, mysql 的查询效率会提⾼很多。

  • 索引可以降低服务需要扫描的数据量,减少了I/O次数
  • 索引可以帮助服务器避免排序和使用临时表
  • 索引可以帮助将随机I/O转为顺序I/O

5 sql 注入是怎么产生的,如何防止?

sql 注⼊产⽣原因:因为在程序开发过程中没有对 sql 语句进行检查或未进行关键字检查,导致客户端可以提交 sql 语句到服务器运行。

如何防止:

  1. 对 sql 与进行检查,过滤。
  2. 不要使用 sql 拼接的方式来拼接 sql 语句,对常⽤的方法进行封装避免暴露 sql 语句(使用ORM)。

6 csrf 是什么?如何防范?

csrf 成为跨站伪造请求,利用用户信任过的⽹站去执⾏⼀些恶意的操作

如何防范:

  1. 检查 Referer 字段,严格要求该字段只来自于信任的URL;
  2. 添加校验 token,将 token 值附加在表单中,攻击者是无法获取这个字,服务端进行检查发现该值为空时将会拒绝服务。

7 如何加强 MySQL 安全,请给出可行的具体措施?

  1. 避免直接从互联网访问 mysql 数据库,确保特定主机才拥有访问权限;
  2. 定期备份数据库;
  3. 禁用或限制远程访问,在 my.cnf 文件里设置 bind-address 指定 ip;
  4. 移除 test 数据库(默认匿名用户可以访问 test 数据库);
  5. 禁用 local infile
    mysql> select load_file("/etc/passwd");
    在 my.cnf 里 [mysqld] 下添加 set-variable=local-infile=0
  6. 移除匿名账户和废弃的账户;
  7. 限制 mysql 数据库用户的权限;
  8. 移除和禁用 .mysql_history 文件。

8 如是数据库慢导致网站打开慢,如何排查并解决?

  1. 登陆 mysql 查看有哪些 sql 语句占用时间过长,how processlist;
  2. 用 explain 查看消耗时间过长的 SQL 语句是否走了索引;
  3. 对 SQL 语句优化,建立索引。

9 MySQL 有多少种日志

  • 错误日志:error log,记录出错信息,也记录一些警告信息或者正确的信息;
  • 通用日志:general log,记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行;
  • 慢查询日志:slow query log,设置一个阈值,将运行时间超过该值的所有 SQL 语句都记录到慢查询的日志文件中;
  • 二进制日志:binary log,记录对数据库执行更改的所有操作;
  • 中继日志:reley log,在主从复制架构中,从服务器用于保存从主服务器的二进制日志中读取的事件;
  • 事务日志:transaction log,事务日志的写入类型为"追加",因此其操作为"顺序IO";通常也被称为:预写式日志write ahead logging。事务日志文件:ib_logfile0,ib_logfile1。

10 MySQL 数据库 cpu 飙升到500%的话他怎么处理?

当 cpu 飙升到 500%时,先用操作系统命令 top 命令观察是不是 mysqld 占用导致的,如果不是,找出占用高的进程,并进行相关处理。

如果是 mysqld 造成的,show processlist,看看里面跑的 session 情况,是不是有消耗资源的 sql 在运行。找出消耗高的 sql,看看执行计划是否准确, index 是否缺失,或者实在是数据量太大造成。

一般来说,肯定要 kill 掉这些线程(同时观察 cpu 使用率是否下降),等进行相应的调整(比如说加索引、改 sql、改内存参数)之后,再重新跑这些 SQL。

也有可能是每个 sql 消耗资源并不多,但是突然之间,有大量的 session 连进来导致 cpu 飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,比如说限制连接数等。


关于我
全网可搜《阿贤Linux》
CSDN、知乎、哔哩哔哩、博客园、51CTO、掘金、思否、开源中国、阿里云、腾讯云、华为云、今日头条、百家号、GitHub、个人博客
公众号:阿贤Linux
个人博客:blog.waluna.top
https://blog.waluna.top/


原文链接: Linux运维工程师面试题(6).文章来源地址https://www.toymoban.com/news/detail-693952.html

到了这里,关于Linux运维工程师面试题(6)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux运维工程师面试题(9)

    目录 Linux运维工程师面试题(9) 1 pod 的生命周期 2 探针类型 3 探针方式 4 探针结果 5 Pod 重启策略 6 镜像获取策略 7 k8s 的服务类型 8 k8s中 service 和 ingress 的区别 9 有状态和无状态服务的区别 10 k8s 中 service 是做什么的? 祝各位小伙伴们早日找到自己心仪的工作。 持续学习才

    2024年02月09日
    浏览(51)
  • Linux运维工程师面试题(8)

    目录 Linux运维工程师面试题(8) 1 docker 的网络类型,使用场景 2 CMD 和 ENTRYPOINT 的区别 3 怎么减小 dokcer 镜像的大小 4 现有一个正在运行的容器,容器中没有 ps、top、netstat、ss、ip、lsof等命令,怎么查看容器内进程及pid和打开的端口 5 如何临时退出⼀个正在交互的容器的终端

    2024年02月09日
    浏览(37)
  • Linux运维工程师面试题(6)

    目录 Linux运维工程师面试题(6) 1 数据库事务的四个特性及含义 2 mysql 的 sql 语句怎么优化 3 varchar 与 char 的区别是什么?大小限制?utf8 字符集下 varchar 最多能存多少个字符? 4 索引有什么用? 5 sql 注入是怎么产生的,如何防止? 6 csrf 是什么?如何防范? 7 如何加强 MySQ

    2024年02月10日
    浏览(37)
  • Linux运维工程师面试题(2)

    目录 Linux运维工程师面试题(2) 1 访问一个网站的流程 2 TCP 三次握手,四次挥手 3 apache 和 nginx 有哪几种虚拟主机 4 TCP 和 UDP 的区别 5 nginx 和 apache 的区别 6 什么是反向代理,什么是正向代理,区别是什么? 7 cookie和session的区别 8 nginx 调优 9 系统出现大量的 time_wait 问题怎么

    2024年02月11日
    浏览(30)
  • Linux下安装Elasticsearch(1),面试字节跳动Linux运维工程师该怎么准备

    network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问 我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。 进入elasticsearch的根目录,然后创建: mkdir data mkdir logs 目前我们是做的单机安装,如果要做集群,只需要在这个配置

    2024年04月25日
    浏览(35)
  • 【良品】运维实施工程师面试题

    答:netstat –anpt | grep 8089 答:kill -9 4728/ 答:find . -name \\\"en* \\\" 答:chmod +x filename.sh 答:tar -xf .gz -C /usr/local unzip .zip 答:rpm -q smile ; rpm -e smile 答:vi /etc/profile  添加内容 JAVA_HOME=/usr/local/java/jdk1.8.0_221 PATH=JAVAHOME/bin:PATH CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export JAVA_HOME expo

    2024年02月09日
    浏览(34)
  • 初级运维工程师面试题

    1、apache有几种工作模式,分别简述两种工作模式及其优缺点? apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加–with-mpm=worker选项) prefork的特点是:(预派生) 1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销 2.可以防

    2024年02月08日
    浏览(40)
  • 【运维工程师学习三】Linux中Shell脚本编写

    Shell程序有很多, 如 Korn shell(ksh)、Bourne Again shell(bash)、C shell(包括csh与tcsh) 等等, 各主要操作系统下缺省的shell: AIX下是 Korn Shell Solaris缺省的是 Bourne shell FreeBSD缺省的是 C shell HP-UX缺省的是 POSIX shell Linux缺省的是 Bourne Again shell 但这种在命令行中的命令是即时输出结果的,不

    2024年02月11日
    浏览(57)
  • 【Linux深造日志】运维工程师必会Linux常见命令以及周边知识!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活!   哈喽各位宝子们好啊!我是博主鸽芷咕。日志这个东西我相信大家都不陌生,在 linxu/Windows 系统中每天运行都会产生各种系统日志。而咱们每天学习知识也是一

    2024年04月17日
    浏览(46)
  • 华为Linux系统开发工程师面试

    在Linux系统开发工程师的面试中,你可能会遇到以下一些问题: 在同一个网站中,当客户访问的时候,会出现有的页面访问的速度快而有的慢,系统和服务完全正常、网络带宽正常,你如何诊断这个问题? 你以前做过的项目中,单台服务器的最大并发量是多少?你硬件的配置

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包