面试记录3
目录
1.redis,批量插入数据,老是断开怎么解决
2. mysql有多少索引类型
3.mysql在服务器上怎么调优
1. 硬件资源优化
2. 配置文件调优
InnoDB 相关参数
查询缓存
3. 索引优化
1.redis,批量插入数据,老是断开怎么解决
修改redis配置,禁用或加大心跳检测时间。
内存满了溢出
每次插入 1000 条数据。
2. mysql有多少索引类型
主键索引
数据列不允许重复,不允许为NULL,一个表只能有一个主键。
普通索引
MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和NULL值。
唯一索引
索引列中的值必须是唯一的,但是允许NULL值。
全文索引
主要是为了快速检索大文本数据中的关键字的信息。
前缀索引
组合索引
空间索引
3.mysql在服务器上怎么调优
1. 硬件资源优化
- 内存:确保服务器有足够的内存,因为 MySQL 的性能与内存密切相关。
- CPU:多核 CPU 可以提高并发处理能力。
- 磁盘:使用 SSD 替代 HDD,以提高 I/O 性能。
- 网络:确保网络带宽足够,避免网络成为瓶颈。
2. 配置文件调优
MySQL 的配置文件通常是 my.cnf
(Linux)或 my.ini
(Windows)。以下是一些关键参数的调优建议:
InnoDB 相关参数
innodb_buffer_pool_size
:- 设置 InnoDB 缓冲池的大小,通常建议设置为服务器内存的 50%-70%。
- 例如:
innodb_buffer_pool_size = 16G
。
innodb_log_file_size
:- 设置 InnoDB 日志文件的大小,较大的日志文件可以提高写入性能。
- 例如:
innodb_log_file_size = 2G
。
innodb_flush_log_at_trx_commit
:- 控制日志刷新策略,设置为
1
保证 ACID,设置为2
或0
可以提高性能但可能丢失部分数据。 - 例如:
innodb_flush_log_at_trx_commit = 1
。
- 控制日志刷新策略,设置为
查询缓存
query_cache_type
和query_cache_size
:- 查询缓存在高并发场景下可能成为瓶颈,建议关闭。
- 例如:
query_cache_type = 0
。
3. 索引优化
- 为常用查询字段创建合适的索引。
- 避免过度索引,因为索引会增加写操作的开销。
- 使用
EXPLAIN
分析查询执行计划,确保查询使用了索引。