随笔分类 - mysql
摘要:1. 例子 with A as (select * from class) select *from A MySQL8.0 才支持
阅读全文
摘要:1.如果采取“先把数据放在内存,然后集中写入磁盘”的办法,可以节省 CPU 资源和磁盘读取的时间,但是也会面临系统故障时会丢失数据的风险; 相反,如果每次都写入磁盘,数据最安全,但是频繁的磁盘读写,会导致系统效率低下。这就需要我们提升优化资源配置的能力。 2. 调整系统参数 InnoDB_flush
阅读全文
摘要:驱动表与被驱动表 先了解在join连接时哪个表是驱动表,哪个表是被驱动表:1.当使用left join时,左表是驱动表,右表是被驱动表2.当使用right join时,右表是驱动表,左表是被驱动表3.当使用join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表 join查询如何选择
阅读全文
摘要:1. Buffer Pool 缓冲池是主内存中的一个区域,InnoDB在访问表和索引数据时会在该区域进行缓存。 缓冲池允许直接从内存访问频繁使用的数据,这加快了处理速度。在专用服务器上,通常会将高达80%的物理内存分配给缓冲池。 2.简单优化 把innodb_buffer_pool_size设置为1
阅读全文
摘要:InnoDB的三大特性是:Buffer Pool、自适应Hash索引、双写缓冲区。 1. Buffer Pool,为了提高访问速度,MySQL预先就分配/准备了许多这样的空间,为的就是与MySQL数据文件中的页做交换,来把数据文件中的页放到事先准备好的内存中。数据的访问是按照页(默认为16KB)的方
阅读全文
摘要:1.redo log 是 InnoDB 引擎特有的,binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。 2. 最重要的是,当数据库 crash 后,想要恢复未刷盘但已经写入 redo log 和 binlog 的数据到内存时,binlog 是无法恢复的。虽然 binlog
阅读全文
摘要:1.二进制日志 (Binary Log) 二进制日志包含一系列二进制日志事件(Binary Log Events)。每个事件都描述了对数据库执行的一个更改 二进制日志在备份和复制中的应用: 1.1.数据备份 1.2.增量备份 2.重做日志 (Redo Log) 首先既然MySQL会写redo log
阅读全文
摘要:看到write-buffer和read-cache瞬间懂了 简单说,Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽
阅读全文
摘要:1. 对于 MySQL 而言,用什么指标来反映资源有多“满”呢?首先我们要关注 MySQL 所在机器的 CPU、内存、硬盘 I/O、网络流量这些基础指标 2. MySQL 本身也有一些指标来反映饱和度,比如刚才我们讲到的连接数,当前连接数(Threads_connected)除以最大连接数(max_
阅读全文
摘要:1. 10分钟为粒度分组 SELECT concat(left(date_format(create_time, '%Y-%m-%d %H:%i'),15),'0') AS groupTime, count(*) FROM ai_t_task WHERE create_time BETWEEN '2
阅读全文
摘要:参考:MySQL 案例:Delete 删数据后磁盘空间未释放 - 腾讯云开发者社区-腾讯云 (tencent.com) 1. 查看有多少为回收的空间 select * from information_schema.tables where TABLE_NAME ='ai_t_placedetect
阅读全文
摘要:1. MySQL查看剩余空间 select table_name, round(data_length/1024/1024) as data_length_mb, round(data_free/1024/1024) as data_free_mb from information_schema.t
阅读全文
摘要:SELECT employee_id, first_name, last_name, salary FROM employees ORDER BY salary DESC LIMIT 1 OFFSET 1; 总结,使用 limit 字句可以限制sql查询的返回数据行数,也可以通过offeset 来先
阅读全文
摘要:1.设计索引的原则是什么? 1. 为频繁查询的字段建立索引2.选择区分度大的列作为索引性别 男 女 加索引和不加区别不大超过基线,比如查询的数据集大于30%3.尽量为ORDER BY 和 GROUP BY 后面的字段建立索引因为在GROUP BY 的时候也要先根据 GROUP BY 后面的字段排序,
阅读全文
摘要:1. 主从复制运行指标: 1、主从复制线程监控: Slave_IO_Running、Slave_SQL_Running两个线程正常那么说明我们的复制集群是健康状态的。 2、主从复制落后时间: MySQL的复制环境中,slave先从master上将binlog拉取到本地(通过IO thread),然后
阅读全文
摘要:1. 回表 使用非主键索引作为条件查询时,会先从非聚簇索引B+树中根据name字段找到主键字段的值,然后从聚簇索引B+树上根据主键字段值查找对应的某条记录 2. 什么是索引覆盖? 索引覆盖:通过普通索引查询的时候,不需要回表查询,直接可以获取到对应的数据 MySQL索引覆盖 回表查询 - it610
阅读全文
摘要:1.过滤出执行时间极大SQL语句(maatkit的digest工具,按照执行时间排序) mysqlbinlog binlog.xxxxxxx |mk-query-digest –type binlog –nofor-explain在测试机上执行筛选的语句,并没有发现有任何的性能异常 https://
阅读全文
摘要:1. pt-ioprofile功能:方便定位IO问题,可通过IO吞吐量来定位。 原理:pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。 2. [root@node3 bin]# ./pt-ioprofile 通过这个报告我们可以看到,哪个文件占用IO的时间比较多,跟
阅读全文
摘要:1. 完全备份 创建用于备份恢复的用户 pxb 并赋予权限 mysql> create user pxb@'localhost' identified by '123456'; mysql> grant reload,process,lock tables,replication client on
阅读全文
摘要:1.技术点 完成业务功能,要懂基本的Sql语句。 做性能优化,要懂索引,懂引擎。 做分库分表,要懂主从,懂读写分离。 做安全,要懂权限,懂备份,懂日志。 做云数据库,要懂源码,懂瓶颈。 https://zhuanlan.zhihu.com/p/352066490 2.进行性能分析。对于 MySQL
阅读全文