- rr 轮训
- weight 加权轮训
- ip_hash 静态调度算法
- fair 动态调度算法
- url_hash url哈希
- leat_conn 最小连接数
18. 如何进行压力测试?
例如:模拟10个用户,对百度首页发起总共100次请求。
测试命令: ab -n 100 -c 10 https://www.baidu.com/index.htm
19. curl命令如何发送https请求?如何查看response头信息?如何发送get和post表单信息?
- 发送https请求:curl --tlsv1 ‘https://www.bitstamp.net/api/v2/transactions/btcusd/’
- response头信息 :curl -I
- get:curl 请求地址?key1=value1&key2=value2&key3=value3
- post: curl -d “key1=value1&key2=value2&key3=value3”
二、mysql
1. 索引的为什么使查询加快?有啥缺点?
默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度
缺点:
- 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
- 索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间,如果需要建立聚簇索引,那么需要占用的空间会更大
- 以表中的数据进行增、删、改的时候,索引也要动态的维护,这就降低了整数的维护速度
2. sql语句左外连接 右外连接 内连接 全连接区别
3. mysql数据备份方式,如何恢复?你们的备份策略是什么?
- 物理完全备份
备份所有数据库文件:/var/lib/mysql/*
备份所有binlog文件: /var/lib/mysql/mysql-bin.*
备份选项文件: /etc/my.cnf
- mysqldump逻辑备份
mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db
- 物理备份恢复
mv /var/lib/mysql /var/lib/mysql.old #先把原来的数据目录改名
cp -a /backups/mysql /var/lib
- 逻辑备份数据恢复
mysql > use db_name
mysql > source /backup/mysqldump/db_name.db
4. 如何配置数据库主从同步,实际工作中是否遇到数据不一致问题?如何解决?
为每个服务器配置唯一值的server-id
- 主库
开启binlog日志
创建主从复制用户
查看master的状态
- 从库
change master to设置主库信息
start slave开始复制
5. mysql约束有哪些?
- 非空约束
- 唯一约束
- 主键约束
- 外键约束
6. 二进制日志(binlog)用途?
BINLOG记录数据库的变更过程。例如创建数据库、建表、修改表等DDL操作、以及数据表的相关DML操作,这些操作会导致数据库产生变化,开启binlog以后导致数据库产生变化的操作会按照时间顺序以“事件”的形式记录到binlog二进制文件中
7. mysql数据引擎有哪些?
- 常用的 myisam、innodb
- 区别:
InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了;
MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;
InnoDB 支持外键,MyISAM 不支持;
MyISAM 是默认引擎,InnoDB 需要指定;
InnoDB 不支持 FULLTEXT 类型的索引;
InnoDB 中不保存表的行数,如 select count() from table 时,InnoDB;需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count()语句包含 where 条件时 MyISAM 也需要扫描整个表;
对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM表中可以和其他字段一起建立联合索引;
清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表;
InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like ‘%lee%’
8. 如何查询mysql数据库存放路径?
mysql> show variables like 'datadir%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| datadir | /usr/local/mysql/data/ |
+---------------+------------------------+
1 row in set (0.00 sec)
9. mysql数据库文件后缀名有哪些?用途什么?
- myisam
.frm文件:保护表的定义
.myd:保存表的数据
.myi:表的索引文件
- innodb
.frm:保存表的定义
.ibd:表空间
10. 如何修改数据库用户的密码?
- mysql8之前
set password for 用户名@localhost = password('新密码');
mysqladmin -u用户名 -p旧密码 password 新密码
update user set password=password('123') where user='root' and ho