百度测开
MySQL慢查询排查方法
(1)慢查询日志:开启慢查询日志,记录执行时间超过阈值的SQL语句,从而找到需要优化的SQL语句
(2)使用redis缓存,将热点数据存储在内存中,减少磁盘I/O操作,提高SQL性能
(3)优化查询语句和表结构:添加B+索引等
B+树是一颗平衡树,所有叶子节点在同一层,关键字有序存放,左子树关键字小于父节关键字,右子树关键字大于父结点关键字,非叶子节点只用来索引,叶子节点存储数据,叶子节点按照从左至右连接形成一个有序链表,方便范围查询。
接口自动化做到什么粒度
(1)单元 单个接口 返回结果
(2)集合 多个接口 交互
(3) 系统 所有接口 协同工作
列举MySQL存储引擎,优缺点
总结
存储引擎 事务支持 锁粒度 外键支持 适用场景
InnoDB | 支持 | 行级锁 | 支持 | 高并发、事务性应用 |
MyISAM | 不支持 | 表级锁 | 不支持 | 读密集型、全文搜索 |
CSV | 不支持 | 表级锁 | 不支持 | 数据导入导出 |
NDB(Cluster) | 支持 | 行级锁 | 不支持 | 分布式、高可用性场景 |
python
a.is和==区别
==比对数值是否相同
is 地址是否相同
b.hashmap和hashtable区别
线程安全,不支持多线程并发操作 | 不安全,支持多线程并发操作 | 安全 |
允许 null | 允许 | 不允许 |
性能 | 高 | 低 |
c.内存泄漏和溢出(OutOfMemoryError)的区别
泄露 未释放不再使用的内存 ,导致可用内存减少 未关闭文件、释放对象
溢出 申请的内存超过系统可用的内存 程序崩溃 递归过深 大数据量
d.read readline readlines区别
文件的全部 一行 多行
e.python基本数据类型
int float
bool
str
tuple() list[] range range(10)
dict{"name": "Alice", "age": 25}
set{}
f.lambda函数
匿名函数 没有函数名。只能包含一个表达式,不能包含复杂的逻辑。
Linux常用命令
文件与目录管理
ls cd pwd mkdir rm cp mv find locate touch cat
文件内容操作
echo cut
shell:使用linux语言与操作系统进行交互 的命令窗口
a.有一对名为A的进程,查找进程号为111的进程所在目录
# 查看进程号为 111 的进程所在目录
ls -l /proc/111/cwd
b.变量x、y,不使用第三个变量,交换x、y的值
异或
DB ALTER修改数据库对象(如表、列、索引等)的结构。包括修改表的结构、列的类型、添加或删除列、修改约束等。
ALTER TABLE table_name 操作;
修改某一列的类型 ALTER TABLE table_name MODIFY column_name new_data_type
修改表名 ALTER TABLE table_name RENAME TO new_ table_name
添加列ALTER TABLE table_name ADD column_name data_type
删除列ALTER TABLE table_name DROP COLUMN column_name
修改列名ALTER TABLE table_name CHANGE column_name new_ column_name data_type
修改列的约束 ALTER TABLE table_name MODIFY column_name data_type not null(约束)
添加约束ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_type (column_name);
示例:为 employees
表的 id
列添加主键约束:
ALTERTABLE employees ADDCONSTRAINT pk_id PRIMARY KEY (id);
2个半小时already
事务是什么,数据库如何支持事务
事务是一组操作(插入、更新、删除)
acid 原子 隔离 一致 持久
(1)事务日志(2)锁机制(共享锁、排他锁)(3)隔离级别=锁机制+MVCC
MVCC
算法
a.爬楼梯
b.链表倒数第N个节点的值