MYSQL 十二月 06, 2021

MySQL(六)查询优化

文章字数 7.1k 阅读约需 6 mins.

  • 网络

  • CPU

  • IO

  • 上下文切换

  • 系统调用

  • 生成统计信息

  • 锁等待时间

  • 减少访问数据量的方式进行优化
    • 确认应用程序是否在检索大量超过需要的数据
    • 确认mysql服务器层是否在分析大量超过...
查看全文

MYSQL 十月 24, 2021

MySQL(八)日志文件

文章字数 3.8k 阅读约需 3 mins.

A 原子性 –undolog实现

C 一致性 –通过其他三个(AID)来实现

I 隔离性 –通过锁实现

D 持久性 –redolog实现

确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。

  • 当发生数据修改的时候, innodb 引擎会先将记录写到 redo log 中,并更新内存,此时更新就算是完成了,同时 innodb 引擎会在合适的时机将记录操作到磁盘中

  • redolog 是固定大小的,是循...

查看全文

MYSQL 九月 07, 2021

MySQL(十一)读写分离与集群

文章字数 607 阅读约需 1 mins.

MySQL读写分离基本原理是让master数据库处理写操作,slave数据库处理读操作。master将写操作的变更同步到各个slave节点。

  1. 物理服务器增加,机器处理能力提升。拿硬件换性能。
  2. 主从只负责各自的读和写,极大程度缓解X锁和S锁争用。
  3. slave可以配置myiasm引擎,提升查询性能以及节约系统开销。
  4. master直接写是并发的,slave通过主库发送来的binlog恢复数据是异步。
  5. slave可以单独设置一些参数来提升其读的性能,与master不一样的规则.
  6. 增加冗余,提高可用性。...
查看全文

MYSQL 九月 07, 2021

MySQL(十)主从复制

文章字数 6.6k 阅读约需 6 mins.

  • 在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
  • 做数据的热备
  • 架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。

​ MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方...

查看全文

MYSQL 九月 07, 2021

MySQL(九)锁机制

文章字数 13k 阅读约需 12 mins.

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

​ 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table...

查看全文

MYSQL 九月 06, 2021

MySQL(八)服务器参数设置

文章字数 4.7k 阅读约需 4 mins.

  • datadir=/var/lib/mysql 数据文件存放的目录

  • socket=/var/lib/mysql/mysql.sock mysql.socket表示server和client在同一台服务器,并且使用localhost进行连接,就会使用socket进行连接

  • pid_file=/var/lib/mysql/mysql.pid 存储mysql的pid

  • port=3306 mysql服务的端口号

  • default_storage_engine=InnoDB mysql默认存储引擎

  • ...
查看全文

MYSQL 九月 03, 2021

MySQL(七)分区表

文章字数 6.4k 阅读约需 6 mins.

对于用户而言,分区表是一个独立的逻辑表,但是底层是由多个物理子表组成。分区表对于用户而言是一个完全封装底层实现的黑盒子,对用户而言是透明的,从文件系统中可以看到多个使用#分隔命名的表文件。
mysql在创建表时使用partition by子句定义每个分区存放的数据,在执行查询的时候,优化器会根据分区定义过滤那些没有我们需要数据的分区,这样查询就无须扫描所有分区。
分区的主要目的是将数据安好一个较粗的力度分在不同的表中,这样可以将相关的数据存放在一起。

  1. 表非常大以至于无法全部都放在内存中,或者只在表...
查看全文

MYSQL 八月 29, 2021

MySQL索引优化

文章字数 8.1k 阅读约需 7 mins.

B+Tree是在BTree的基础上做的一种优化

  • B+Tree每个节点可以包含更多的节点.

    作用:

    1. 降低树的高度.

    2. 将数据范围变为多个区间,区间越多,数据检索越快.

  • 非叶子节点存储key,叶子节点存储key和数据,

  • 叶子节点两两指针相互连接,顺序查找性能越高.

索引的优点

  • 大大减少服务器需要扫描的数据量
  • 帮助服务器避免排序和临时表
  • 将随机io变成顺序io

索引的用处

  • 快速查找匹配where子句的行
  • 从consideration中消除行,如果可以在多个索引之间进行选择,mysql...
查看全文

MYSQL 六月 15, 2021

mysql perform schema

文章字数 5.5k 阅读约需 5 mins.

MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况

特点: <https://dev.mysql.com/doc/refman/5.7/en/performance-schema.html>

  1. 提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库主要关注数据库运行过程中的性能相关...

查看全文

MYSQL 六月 15, 2021

MySQL执行计划

文章字数 1.9k 阅读约需 2 mins.

​ 在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。

​ 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。

官方地址: https://dev.mysql.com/doc/refman/5.7/en/explain-output.html

1、执行计划中包含的信息

Column Meaning
id The SELECT identifier
select_type...
查看全文
加载更多
0%