如何优化因MYSQL读写频繁,负载过高导致的CPU高占用率
MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然CP会U占用过高。占用CPU过高,可以做如下考虑:
1.打开慢查询日志,查询是否是某个SQL语句占用过多资源,如果是的话,可以对SQL语句进行优化,比如优化 insert 语句、优化 group by 语句、优化 order by 语句、优化 join 语句等等;
2.考虑索引问题;
3.定期分析表,使用optimize table;
4.优化数据库对象;
5.考虑是否是锁问题;
6.调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;
7.如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。
mycat面试题
以下是一些可能出现在MyCat面试中的问题:
1. 什么是MyCat?MyCat是一个开源的分布式数据库中间件,它可以将多个MySQL数据库组合成一个逻辑上的数据库集群,提供高可用性、高性能、易扩展等特性。
2. MyCat的优势是什么?MyCat具有以下优势:支持读写分离、支持分库分表、支持自动切换故障节点、支持SQL解析和路由、支持数据分片等。
3. MyCat的架构是怎样的?MyCat的架构包括三个层次:客户端层、中间件层和数据存储层。客户端层负责接收和处理客户端请求,中间件层负责SQL解析和路由,数据存储层负责实际的数据存储和查询。
4. MyCat支持哪些数据库?MyCat目前支持MySQL和MariaDB数据库。
5. MyCat如何实现读写分离?MyCat通过将读请求和写请求分别路由到不同的MySQL节点上实现读写分离。读请求可以路由到多个只读节点上,从而提高查询性能。
6. MyCat如何实现分库分表?MyCat通过对SQL进行解析和路由,将数据按照一定规则划分到不同的数据库或表中,从而实现分库分表。
7. MyCat如何保证数据一致性?MyCat通过在多个MySQL节点之间同步数据,保证数据的一致性。同时,MyCat还支持自动切换故障节点,从而保证系统的高可用性。
8. MyCat的部署方式有哪些?MyCat可以部署在单机上,也可以部署在多台服务器上实现分布式部署。
1.搭建 mycat 的核心配置文件有哪些?
答: schem . xml 配置参数:逻辑库,逻辑表,数据节点。节点主机
rule . xml :分片规则
server . xml :连接 mycat 的用户信息(账号和密码)
这里是使用中间件做数据切分,感兴趣的小伙伴还可以了解一下 mysql 的分库分表高可用方案
IT 架构师 luke : Mysql 分库分表面试题( mysql 高可用方案解析)
2.mycat分库可以分成100个库吗?
答:我们目前项目组分的是3个库,我们说一般数据量大的话我们使用的是 mycat 中间件进行分片处理,如果更大的话,我们可以使用 oracle 数据库,如果更大的话可以使用 hadoop 或是云存储数据,不需要 mycat 作为工具手段。衡量的标准是项目有没有对应的硬件设备。如果没有,基本就是使用 mysql 因为搭建一套云环境或者大数据的环境基本都是超大型的公司。比如大数据中的所有的技术,例如 hbase 或者是一大堆的服务器一大堆的网络路由设备或是私有云。或者是一大堆的数据库运维实施人员都是成本。