我的编程空间,编程开发者的网络收藏夹
学习永远不晚

影响MySQL数据库性能主要有哪些因素

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

影响MySQL数据库性能主要有哪些因素

本文主要给大家简单讲讲影响MySQL数据库性能主要有哪些因素,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望影响MySQL数据库性能主要有哪些因素这篇文章可以给大家带来一些实际帮助。

影响数据库性能的因素:

影响MySQL数据库性能主要有哪些因素

很多sql性能是慢查询造成的

目前的mysql版本中,并不能支持多cpu并发运算,就是说一个sql只能用到一个cpu。常用qps、tps衡量cpu处理效率

        qps/tps:每秒处理的查询量

影响MySQL数据库性能主要有哪些因素

max_connections可以根据情况设置大一些。如果实际超出这个数,会造成要用的云服务器无法连接数据库,会出现500错误

影响MySQL数据库性能主要有哪些因素

影响MySQL数据库性能主要有哪些因素

影响MySQL数据库性能主要有哪些因素




大表带来的问题:

影响MySQL数据库性能主要有哪些因素

(一般满足上述两条的表会造成性能影响)

大表会产生慢查询,让数据库很难在一定时间内过滤出所需要的数据

影响MySQL数据库性能主要有哪些因素

影响MySQL数据库性能主要有哪些因素

影响MySQL数据库性能主要有哪些因素

然而,分库分表要消耗大量人力物力,还要冒着影响后端业务的风险,不一定适合所有公司。还可以用另一种方式对大表进行处理:

        大表历史数据归档(尽量减少对前后端业务的影响)(比如历史订单)

        难点:

                归档时间点的选择

                如何进行归档操作(对大表的操作,轻则主从延迟,重则大量阻塞影响业务访问)




大事务带来的问题:

        事务的特点:

                原子性:不可分割的最小单元,要么全成功,要么全失败

                一致性:从一种一致性状态转换到另一种一致性状态,在事务开始之前和事务结束后数据中数据的完整性没有被破坏(比如,转账前和转账后的总金额一致)

                隔离性:要求一个事务对数据库中的数据的修改,在未提交完成前对于其他事务是不可见的

                        影响MySQL数据库性能主要有哪些因素

                持久性:  一旦事务提交,则其所有的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失

        什么是大事务:

                定义:运行时间较长,操作的数据比较多的事务

                风险:

                        锁定太多的数据,造成大量的阻塞和锁超时

                        回滚所需时间比较长(回滚过程中仍然会被锁定)

                        执行时间长,容易造成主从延迟(如果延迟1个小时,这就...)

        如何处理大事务:

                1.避免一次处理太多数据

                2.移出不必要在事务中的select操作


新版本的mysql对多核cpu支持改善了



centos参数优化:

        影响MySQL数据库性能主要有哪些因素

                (上面的配置可以相应调大)

                影响MySQL数据库性能主要有哪些因素

                        (上面的会决定tcp连接回收速度)

                        影响MySQL数据库性能主要有哪些因素

                        (上面的会决定tcp连接、接收、发送缓冲区大小的默认值、最大值。应该相应调大些)

                        影响MySQL数据库性能主要有哪些因素

                        (上面参数用于减少失效连接所占用的tcp系统资源的数量,加快资源回收的效率。应该改小些)

                        影响MySQL数据库性能主要有哪些因素

                            影响MySQL数据库性能主要有哪些因素

                            影响MySQL数据库性能主要有哪些因素

                            影响MySQL数据库性能主要有哪些因素

                                影响MySQL数据库性能主要有哪些因素

                                影响MySQL数据库性能主要有哪些因素

                                 影响MySQL数据库性能主要有哪些因素

                                


mysql参数:

        ......


基准测试:

        基准测试不同于压力测试,压力测试通常是真实数据,基准测试的数据由测试工具生成,只是简化的压力测试

                shell脚本写测试程序

                运行保存测试结果

                图标展示

                        影响MySQL数据库性能主要有哪些因素

                 测试工具:

                        ab、mysqlslap、sysbench......

 



适当反范式,适当增加冗余提高查询效率

        影响MySQL数据库性能主要有哪些因素

        (范式化提高了写的性能,但降低了读的性能)

        影响MySQL数据库性能主要有哪些因素

        (同一个表中可以属于同一个索引的,在不同表中就无法放到同一个索引了)

        影响MySQL数据库性能主要有哪些因素

        (反范式化在修改数据的时候会需要更改多个地方)




数据类型的选择:

        影响MySQL数据库性能主要有哪些因素

        注意:长度是字符,不是字节

        影响MySQL数据库性能主要有哪些因素

        (mysql为了更有效的优化查询,在内存中,对字符串使用的是固定的宽度,特别是使用隐式的内存零时表的时候,若把varchar宽度定义得更长,会消耗更多的内存)

        影响MySQL数据库性能主要有哪些因素


         影响MySQL数据库性能主要有哪些因素


        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素


        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        (date只保留到日期部分,不保留时分秒。比如存储生日)

        影响MySQL数据库性能主要有哪些因素

        (mysql提供了足够多的时间存储类型,不要用字符串类型存储日期、时间数据)

        影响MySQL数据库性能主要有哪些因素








mysql复制:

        web云服务器访问过大后,可以通过增加web云服务器来解决。只要程序完全一样,就可以很好的分担这些负担。但数据库就不同了!

        mysql的复制是异步的,在同一时间点上,备库和主库的数据存在不一样的情况,并且无法消除主库和备库之间的延迟

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        (复制并不能代替备份。复制无法对错误操作删除更改的数据进行恢复)

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        binlog日志中的记录都是已经执行成功的,回滚、由于错误执行不成功的事务是不会被记录的

        

表的复制,未完待续...


索引优化:

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        影响MySQL数据库性能主要有哪些因素

        (覆盖索引之所以能提高查询性能,因为索引大小比行的大小小得多,如果索引本身很大,就没有覆盖索引的必要了,特别是对select *的查询,不可能有索引覆盖到所有的列。所以查询中不能使用太多列)

        覆盖索引例子:

                影响MySQL数据库性能主要有哪些因素

                (完全可以通过索引来获取到,使用了覆盖索引)

                影响MySQL数据库性能主要有哪些因素

                (using where说明不能从索引中获取索要查的数据,也就是不能用到覆盖索引,而必须把索引数据先放到内存中,然后进行where条件的过滤)

                影响MySQL数据库性能主要有哪些因素

                (有using index,使用了覆盖查询)

        影响MySQL数据库性能主要有哪些因素

        索引排序优化的例子:

                影响MySQL数据库性能主要有哪些因素

                (上面是用索引来排序的。该表是innodb引擎。而同样的数据结构,若是myisam引擎,extra会显示using filesort)

                影响MySQL数据库性能主要有哪些因素

                (不管是myisam还是innodb,都没有用到using filesort)

                影响MySQL数据库性能主要有哪些因素

                (此处用到了using filesort!索引升降序的规则必须和order by升降序规则一致才行,不然无法用到索引列排序)

                

        影响MySQL数据库性能主要有哪些因素

        (增加了并发性,提高了性能)

        影响MySQL数据库性能主要有哪些因素

        (重复索引完全没必要,冗余索引有时候是可以有的)

        影响MySQL数据库性能主要有哪些因素

        

sql优化:

        获取有性能问题的sql:

                影响MySQL数据库性能主要有哪些因素

        设置慢查询:

                影响MySQL数据库性能主要有哪些因素

                (long_query_time单位秒)

                然而,慢查询不大可能自己一个个看,还是要借助工具:

                        影响MySQL数据库性能主要有哪些因素

                        影响MySQL数据库性能主要有哪些因素

        

        实时获取有性能问题的sql:

                影响MySQL数据库性能主要有哪些因素


        sql查询的步骤:

                影响MySQL数据库性能主要有哪些因素

                影响MySQL数据库性能主要有哪些因素

                

        如何确定查询处理各个阶段所消耗的时间:

                影响MySQL数据库性能主要有哪些因素

                

        特定sql的优化:

                影响MySQL数据库性能主要有哪些因素

                影响MySQL数据库性能主要有哪些因素

                影响MySQL数据库性能主要有哪些因素

                影响MySQL数据库性能主要有哪些因素

                (如果表中数据很多,count()查询会很慢,可以再建立一个表,用于汇总:)

                影响MySQL数据库性能主要有哪些因素

                可以每天凌晨的什么时候进行count(*)的统计,并写入到汇总表。今天要查询的话,就把汇总表中的数据和今天的数据进行union all

影响MySQL数据库性能主要有哪些因素就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

影响MySQL数据库性能主要有哪些因素

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis有哪些因素影响性能

Redis性能受以下几个因素影响:1. 硬件性能:包括CPU速度、内存大小和带宽等。较高的硬件性能可以提供更高的吞吐量和更低的延迟。2. 数据量:Redis内存数据库,性能受到数据量的影响。当数据量逐渐增加时,内存的使用情况和数据持久化的成
2023-08-30

影响虚拟主机性能的因素有哪些

这期内容当中小编将会给大家带来有关影响虚拟主机性能的因素有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 最近接到很多客户反应,说是网站打不开,或者是网站打开的速度慢,咨询是怎么回事。出现这种情况的主
2023-06-07

影响百度SEO排名的主要因素有哪些

本篇内容主要讲解“影响百度SEO排名的主要因素有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“影响百度SEO排名的主要因素有哪些”吧!品牌当你搜索产品词的时候,你会发现大多数的产品词都是由阿
2023-06-10

MySQL主机名称影响数据库性能吗?

MySQL主机名称在一定程度上会影响数据库性能,但并不是直接决定性因素。主机名称对数据库性能的影响主要体现在网络延迟、连接稳定性和访问速度上。首先,主机名称影响数据库性能的一个方面是网络延迟。当客户端需要连接到MySQL数据库服务器时,主
MySQL主机名称影响数据库性能吗?
2024-03-01

编程热搜

目录