随笔分类 -  mysql

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

点击右上角即可分享
微信分享提示