iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >优化MySQL哪些地方需要注意
  • 723
分享到

优化MySQL哪些地方需要注意

2024-04-02 19:04:59 723人浏览 安东尼
摘要

本文主要给大家简单讲讲优化Mysql哪些地方需要注意,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望优化mysql哪些地方需要注意这篇文章可以给大家带来一些实

本文主要给大家简单讲讲优化Mysql哪些地方需要注意,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望优化mysql哪些地方需要注意这篇文章可以给大家带来一些实际帮助。

1、控制适当的数据文件大小:

  数据量越大,数据文件的大小也会越大,索引文件也就越大,从而影响性能,会使性能急剧下降,所以,要限制数据库单表的数据量和数据文件大小;

2、碎片空洞注意:

 往往我们在删除表数据的时候,明明已经删除可是在底层只是被标记为删除,实际上并没有释放空间,所以要定期查看表的碎片,

show  table  status  ---发现表的碎片情况(查看实际数据data_length和空洞数据data_free的比例如果,data_free非常大,则说明该表需要优化了)

优化的方法是:optimize  table  表名;   或者  alter  table  表名 engine=innodb来重建表空间;

3、行存储格式注意:

  在Mysql5.7.9之后,innodb表的行格式由之前默认的compact变成了dynamic,二者的区别可以查看官方文档,但是,compact格式会节约20%的空间,同时在存储UTF8或UTF8MB4数据的时候,compact格式在存储时会尽量的节约空间,不对其中的空格进行存储;

4、正确使用索引:

  索引虽然能提升查询性能,但是会降低MySQL写数据的速度,同时,也会增大数据文件的大小,加的索引越多,写入数据越慢,数据文件也就越大。所以在设计索引的时候,会要求主键的字段类型一定要用数字类型,并且要尽可能的小,能用INT的,绝对不要用bigint。在设计二级索引的时候,只添加需要的索引,避免添加重复索引和冗余索引,针对长字符串字段,尽量添加前缀索引;

---如何正确使用索引:

①:MySQL在使用索引时,采用的是最左匹配原则,如果是多列索引:idx_a_b_c(a,b,c),则可以发挥索引功能组合有:a, (a,b)  (a,b,c)

②:MySQL在计算列里无法使用索引

③:MySQL在否定条件中不能使用索引

④:MySQL在join中连接字段类型如果不一致,则不能使用索引


*********************************************************************************

在MySQL中一些比较常用的系统参数:

1、general_log:

  建议在数据库正常服务时,将该参数关闭,因为他会记录提交到MySQL的一切东西,即浪费磁盘又影响效率。同时它也是分析问题的利器,可以在数据库有异常的时候,把它打开,然后截取一段时间的日志,以帮助定位问题;

2、query_cache_size:

  是用来缓存sql语句文本和对应查询结果的缓存空间。如果表没有变化,再次查询会直接返回结果,这是很高效的;如果表变化非常频繁,则要不断更新cache中的内容,并且这个时候所粒度非常大,反而会成为瓶颈。所以很多情况下会关闭这个选项,将参数设置0

3、tmp_table_size:

  在group by 或 distinct 的时候,如果sql语句用不到索引,就会使用系统内部临时表记录中间状态。如果tmp_table_size不够大,则MySQL会自动使用物理磁盘,这会对查询性能造成很大影响,增加此参数可以降低这种情况发生的概率;(注意:这是占用物理内存的,要考虑实际的内存空闲情况)

4、innodb_buffer_pool_size:

  innodb最只要的缓存,用来缓存innodb索引页面,undo页面及其他一些辅助数据,建议配置物理内存的50%--75%

5、innodb_buffer_pool_instances:

  这个参数,把原来一整块buffer pool分割为多块内存空间,每个空间独立管理自己的空闲链表、刷新链表、LRU及其他数据结构。这大大增加了并发性,能更有效利用缓存;

6、innodb_log_file_size和innodb_log_files_in_group

   这两个参数结合,决定了redo空间的大小,redo空间越大,可以存储的增量更新日志越大,有效降低buffer pool脏页面被淘汰的速度,同时减少了checkpoint的次数,降低磁盘io置换率,从而提升数据库的写入效率。不过也有可能导致数据库异常退出时,恢复时间被拉长;

7、innodb_old_blocks_pct和innodb_old_blocks_time

  这两个参数控制buffer pool中缓存数据的过期和移动行为,二者结合设置,可以优化一些全表扫描带来的大规模更新buffer等问题;

8、innodb_numa_interleave:

  该参数避免出现内存被交换到SWAP分区,影响性能

9、innodb_autoinc_lock_mode:

  在innodb有自增列的情况下,在插入数据的时候,会自动产生自增值,这个参数是控制自增值生成的方式。目前有3个选项:0 1  2 ;使用2即in特人leave的,这样在insert数据的时候不会用到标记的auto-inc,避免了auto-inc的死锁问题,在insert...select场景下会极大提升性能,在做普通insert的时候,也会提升并发执行的效率;

 ---注意:这个时候产生的自增值不是连续的,同时binlog格式需要设置为ROW,才能保证数据的安全性和一致性;

10、innodb_flush_method

  innodb刷新数据和日志到磁盘文件的方式,默认为NULL,但其实如果是Unix系统上,默认是fsync;在使用SSD或PCIE类型的存储时,可以设置为O_DIRECT, 该参数会提升性能;

11、innodb_doublewrite

  如果底层存储时支持原子写的,则可以关闭两次写,以提升效率;

12、innodb_io_capacity

   如果使用SSD设备的时候,可以适当提高这个参数值,以加速flush的频率;

13、innodb_thread_concurrency

  在并发量大的实列上,增加这个值,可以降低innodb在并发线程之间切换的花销,以增加系统的并发吞吐量;

14、innodb_flush_log_at_trx_commit

  该参数的值0 1  2;0性能最好,但不安全; 1 最安全,但性能最差,如果使用的磁盘足够好,还是建议使用1  ,否则根据实际情况选择性的设置2

15、sync_binlog

  MySQL同步binlog到磁盘的方式, 1 最安全,但性能最差; 0性能最好,但最不安全。建议设置1

16、binlog_fORMat

  MySQL的日志格式,在MySQL5.7.7以后,官方就默认为ROW了,这也是最建议的设置

17、binlog_order_commits

  事务在提交的时候写入binlog的顺序,这是双刃剑,如果打开,可以保证事务都以相同的顺序写入二进制文件,如果关闭则可以提升性能。根据实际情况决定吧

18、tx_isolation

  设置MySQL的隔离级别,推荐设置read committed,这在保证性能的前提下,同时设置binlog_format=ROW,确保通过binlog同步数据主从库的一致性,兼顾安全,满足绝大多数业务的需求; 

19、slave_parallel_workers

  在进行多线程复制的时候,如果设置此参数为非零值,则可以打开多线程并发执行回放日志的操作,以提升slave的同步性能;

优化MySQL哪些地方需要注意就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的数据库。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

您可能感兴趣的文档:

--结束END--

本文标题: 优化MySQL哪些地方需要注意

本文链接: https://www.lsjlt.com/news/34901.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 优化MySQL哪些地方需要注意
    本文主要给大家简单讲讲优化MySQL哪些地方需要注意,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望优化MySQL哪些地方需要注意这篇文章可以给大家带来一些实...
    99+
    2022-10-18
  • 优化mysql索引需要注意哪些要点
    本文主要给大家介绍优化mysql索引需要注意哪些要点,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下优化mysql索引需要注意哪些要点吧。一,头盘:S...
    99+
    2022-10-18
  • Redis中redis-cluster需要注意哪些地方
    本篇内容主要讲解“Redis中redis-cluster需要注意哪些地方”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis中redis-cluster需要...
    99+
    2022-10-19
  • 优化网站需要注意哪些细节
    这篇文章将为大家详细讲解有关优化网站需要注意哪些细节,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  在网站搭建初期就完成所有便于优化的框架和内容能够缩短整个网站优化时间,一个完整的便于优化的网站包含:满...
    99+
    2023-06-10
  • Mysql中varchar类型一些需要注意的地方
    varchar的存储规则 0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)。 5.0版本以上,varchar(20),指的是20字符,无论...
    99+
    2022-05-27
    Mysql varchar类型 Mysql varchar类型注意的地方
  • SEO优化需要注意些什么
    这篇文章主要为大家展示了“SEO优化需要注意些什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SEO优化需要注意些什么”这篇文章吧。SEO优化需要注意以下几点:一、分析关键词关键词定位是最重要...
    99+
    2023-06-10
  • 网站优化有哪些误区需要注意
    这篇文章主要为大家展示了“网站优化有哪些误区需要注意”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“网站优化有哪些误区需要注意”这篇文章吧。网站优化是个很系统的工作,有很多细节需要注意,搞得好搜索...
    99+
    2023-06-10
  • java继承中需要注意的地方有哪些
    这篇文章给大家分享的是有关java继承中需要注意的地方有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、注意点(1)Java之中只允许多层继承,不允许多重继承,Java存在单继承局限。(2)在Java中,所...
    99+
    2023-06-15
  • 网站优化需要注意的细节有哪些
    这篇文章主要介绍“网站优化需要注意的细节有哪些”,在日常操作中,相信很多人在网站优化需要注意的细节有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网站优化需要注意的细节有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-13
  • 网站优化需要注意的问题有哪些
    这篇文章主要介绍“网站优化需要注意的问题有哪些”,在日常操作中,相信很多人在网站优化需要注意的问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网站优化需要注意的问题有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-10
  • oracle首次安装需要注意的地方有哪些
    这篇文章给大家分享的是有关oracle首次安装需要注意的地方有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 首次安装时,需要确认的以下列表: 1、创建控制文件时,需要确...
    99+
    2022-10-18
  • 使用redis集群需要注意的地方有哪些
    小编给大家分享一下使用redis集群需要注意的地方有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Redis集群相对单机在功...
    99+
    2022-10-18
  • ​国外服务器租用需要注意哪些地方
    国外服务器租用需要注意的地方:1. 国外服务器租用时要注意服务器的稳定性和速度,了解带宽的大致情况。2. 注意国外服务器的硬件能力,能否保证业务的高效运行。3. 考察国外服务器是否具有防御能力,建议选择自带防御的服务器。4. 考察供应商的售...
    99+
    2022-10-11
  • Bash 脚本编写有哪些需要注意的地方?
    Bash 脚本是一种非常方便的编程语言,可以用于自动化任务、管理系统、实现批处理等多种应用场景。但是,由于 Bash 脚本的语法比较灵活,很容易出现错误,因此编写 Bash 脚本需要注意一些细节,以确保脚本的正确性和可靠性。本文将介绍 B...
    99+
    2023-07-23
    bash leetcode 并发
  • 网站建设时需要注意哪些优化细节
    这期内容当中小编将会给大家带来有关网站建设时需要注意哪些优化细节,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、制定合理的title标签:对于搜索引擎而言,在分析网页结构时对于title标签的重要性是不...
    99+
    2023-06-07
  • URL优化需要注意什么
    本篇内容介绍了“URL优化需要注意什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1,URL要简短,越短越好  无论是用户还是搜索引擎...
    99+
    2023-06-10
  • 基于Java8并行流有哪些需要注意的地方
    这篇文章主要介绍了基于Java8并行流有哪些需要注意的地方,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java8并行流(parallelStream)注意点在最初使用并行流...
    99+
    2023-06-20
  • 搜索引擎优化需要注意的问题有哪些
    这篇文章主要介绍“搜索引擎优化需要注意的问题有哪些”,在日常操作中,相信很多人在搜索引擎优化需要注意的问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”搜索引擎优化需要注意的问题有哪些”的疑惑有所帮助!...
    99+
    2023-06-10
  • 新网站SEO优化有哪些需要注意的问题
    这篇文章主要讲解了“新网站SEO优化有哪些需要注意的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“新网站SEO优化有哪些需要注意的问题”吧!1、网站url要有规律并且稳定对于刚很多刚开始...
    99+
    2023-06-10
  • Python并发编程中需要注意哪些接口优化?
    Python是一种高级编程语言,具有简单易学、可读性强等特点,因此在并发编程中也得到了广泛的应用。然而,Python的并发编程在性能上常常受到限制,因此需要注意一些接口优化才能发挥出其最大的潜力。在本文中,我们将探讨Python并发编程中需...
    99+
    2023-05-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作