祝各位小伙伴们早日找到自己心仪的工作。 持续学习才不会被淘汰。 地球不爆炸,我们不放假。 机会总是留给有有准备的人的。 加油,打工人!
数据库事务的4个特性:原⼦性、持久性、⼀致性、隔离性
char 和 varchar 最⼤的不同就是⼀个是固定⻓度,⼀个是可变⻓度。由于是可变⻓度,因此存储的是实际字符串再加上⼀个记录字符串⻓度的字节。如果分配给 char 或 varchar 列的值超过列的最⼤⻓度,则对值进⾏裁剪。
varchar(M) 和 char(M),M都表示字符数。varchar的最大长度为65535个字节,不同的编码所对应的最⼤可存储的字符数不同。char 最多可以存放255个字符,不同的编码最⼤可⽤字节数不同。字符类型若为utf8,每个字符最多占3个字节,varchar 最大长度不能超过21845。
例:
char(4)定义的是固定长度4,存储时,如果字符数不够4位,会在后面用空格补全存入数据库。
varchar(4)定义的是变长长度,存储时,如果字符没有达到定义的位数4时,也不会在后面补空格。
对于建⽴索引的列, mysql 的查询效率会提⾼很多。
sql 注⼊产⽣原因:因为在程序开发过程中没有对 sql 语句进行检查或未进行关键字检查,导致客户端可以提交 sql 语句到服务器运行。
如何防止:
csrf 成为跨站伪造请求,利用用户信任过的⽹站去执⾏⼀些恶意的操作
如何防范:
mysql> select load_file("/etc/passwd");
在 my.cnf 里 mysqld 下添加 set-variable=local-infile=0
.mysql_history
文件。how processlist;
当 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
原文链接: Linux运维工程师面试题(6).
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。