![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql
文章平均质量分 69
Mysql
zh_feiy
这个作者很懒,什么都没留下…
展开
-
Mysql集群搭建——主从复制
主从复制原理单机Mysql存在的问题:不能高可用,不能高并发,海量数据处理比较恼火。主从复制的原理就是主对外工作,从对内备份,读写分离过后,从数据库可以读原理还是比较简单,在对主机数据库进行增删改操作之后,如果打开了bin log功能的话,将语句存在bin log里面,从机数据库的IO Thread读到bin log,然后存到relay log(中继日志)里边儿,然后SQL Thread从中继日志中读取到数据库里边儿。不过这两个线程都是单线程,当主机的tps(每秒事务处理数)高于从机的Thread所能原创 2021-01-26 17:24:44 · 947 阅读 · 1 评论 -
Mysql优化——SQL语句优化
索引优化where 字段、组合索引(最左前缀)、索引下推(非选择行 不加锁)、索引覆盖(不回表)、on两边、排序、分组…explain分析语句情况,看建立索引没,或者建立错误,响应时间长的话可以看下慢查询日志尽量不要用 *查所有字段的话,select查询列中的字段如果没有索引的话,会造成回表LIMIT优化limit优化的特点是截断,就是可以停止全表扫描的,比如下面这个,肯定没走索引的,1000W条数据,就走了20条,截断了原SQL这种sql语句和索引都没关系了,可以对他进行优化,可以创建个原创 2021-01-25 17:06:37 · 866 阅读 · 0 评论 -
Mysql优化——SQL设计层面优化
设计中间表,一般针对于统计分析功能,或者实时性不高的需求(OLTP、OLAP)有些统计功能关联很多表,计算量特别打的时候,对实时性要求不高的话,可以设计一张单标,使用定时任务,在并发量小的时候将它们计算起来,插入或更新到一张表中,这时候就是简单地单表查询了,用户体验感会好很多为减少关联查询,创建合理的冗余字段有些字段不经常改变,可以创建到从表的字段中,比如订单,关联的user_id,可以把用户的名字字段创建过去,查询的时候就少关联一张表了。考虑数据库的三范式和查询性能的取舍,创建冗余字段还需要注意数据原创 2021-01-22 16:17:21 · 841 阅读 · 0 评论 -
Mysql优化——服务器层面优化
扩大buffer pool至合适大小扩大buffer pool的目的将数据保存在内存中,保证从内存读取数据,buffer pool默认的大小为134217728Byte=128M,可以扩大至当前服务器内存的3/4或者4/5,如果buffer pool不足够大的话,硬盘和内存交互会比较多,性能会比较差show variables like '%buffer_pool%';show global status like 'innodb_buffer_pool_pages_%';这个0代表当前的b原创 2021-01-22 14:59:07 · 965 阅读 · 1 评论 -
Mysql Query Profiler诊断分析工具
上篇文章记录了,Mysql慢查询日志分析及percona-toolkit的使用,如果慢查询日志没有找到问题的话,可以从数据库的角度分析下,可以使用mysql自带的诊断分析工具Query Profile,它可以分析出一条SQL语句的硬件性能瓶颈在什么地地方,比如CPU,IO等,以及该SQL执行所耗费的时间等开启Profile功能默认是关闭状态开启profile功能set profiling=1; --1是开启、0是关闭操作一条查询时间比较长的sqlselect id from tb_user原创 2021-01-22 14:17:51 · 831 阅读 · 0 评论 -
Mysql慢查询日志分析及percona-toolkit的使用
开启慢查询日志配置文件里边儿slow_query_log=ON long_query_time=3 //这儿设置的超过3sslow_query_log_file=/var/lib/mysql/slow-log.log //记录慢查询日志对应的文件原创 2021-01-22 13:46:36 · 1396 阅读 · 0 评论