暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql--------数据库的优化方式

原创 YanLang 2023-05-08
172


数据库优化是我们在编写SQL语句时必须要具备的技能,毕竟因为mysql数据库的性能是有限,并且在数据量超大时查询效率是特别慢的,所以掌握一些有关数据优化的方式是特别重要的,下面我们来学习一些优化方式。

索引的方式

通过索引的方式进行优化是我们最常用的方式,而使用索引的方式是可以决定我们索引是否可以被用到。索引也是分为两种的,聚簇索引和非聚簇索引,聚簇索引是将数据和索引结构放在一起;非聚簇索引都是辅助索引,比如:复合索引、前缀索引和唯一索引。下面我们来对使用组合索引的方式来做分析:
  1. 当搜索条件和索引列一致时,索引列会进行全值匹配,搜索条件的顺序和索引条件的顺序不一致也是可以使用到索引的

  2. 只有在搜索条件中含有组合索引最左列的索引列,才会使用到索引

  3. 使用索引列模糊搜索时,只有使用前缀模糊搜索才会使用到索引,采用中间和后缀模糊索引时是不会使用到索引的

  4. 在组合索引中使用范围查找时只能使用最左列,只有这样才能使用索引

  5. 在进行分组时分组字段属于索引的最左列字段也会使用到索引

  6. 使用order by排序时,查询的字段必须要和排序的字段相等,并且不能含有其他字段。这样才会使用到索引

查询类型

我们在查询数据时,经常会使用explain来查看我们sql语句的情况,比如这条sql语句查询的级别,用到的索引等信息。下面是查询的级别:
  1. const:是直接定位到一条记录

  2. ref:是查询数据时使用到了二级索引。ref_or_null:是查询结果是由null值引起的

  3. range:利用索引进行范围匹配的查询

  4. index:遍历二级索引的查询

  5. all:全表扫描的方式查询

上面主要是针对sql优化的方式,我们介绍了采用索引的方式来进行优化,还可以通过一些mysql优化器的优化规则,在编写sql时遵守这些规则,以此来达到能让优化器进行最大的优化。下面来学习一下从高性能的mysql集群来优化的方式。
一台数据库的性能是有限的,我们可以通过搭建一主多从的方式来提高数据库的性能。通过开启binlog日志文件,以此来保证主从数据库之间的数据相等。
主从复制的步骤

首先从库会生成两个线程,I/O线程和SQL线程。i/o线程去请求主库的bin log,并将获取到的bin log日志写到relay log(中继)日志中。主库会生成一个log dump线程,用来给从库的i/o线程传bin log日志。

SQL线程会读取relay log日志,并解析成具体操作,来主从的操作一致,最终实现数据一致。

主从复制可能造成的问题

主从复制可能会发生数据丢失问题和主从同步延迟的问题,我们可以开启半同步复制和并行复制来保证主从数据库的数据一致性问题。

上面就是数据库优化的方式,当然还有很多其他的方式,可能没有想到,大家也可以留言,来提出。共同学习,共同进步。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论