
优化
文章平均质量分 88
mysql、oracle
戴国进
往后余生,专注人工智能领域!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详解MySQL三大日志:binlog、redo log和undo log
日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息。MySQL日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。binlogbinlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是MySQL的逻辑日志,并且由Server层进行记录,使用任何存储引擎的MySQL数据原创 2022-01-09 11:19:36 · 1661 阅读 · 1 评论 -
数据库连接池到底应该设多大?
本文内容95%译自这篇文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽。故在此做译文分享。接下来是正文数据库连接池的配置是开发者们常常搞出坑的地方,在配置数据库连接池时,有几个可以说是和直觉背道而驰的原则需要明确。1转载 2021-11-25 11:59:54 · 597 阅读 · 0 评论 -
15 张图详述 MySQL InnoDB 工作原理
如果你使用过mysql数据库,对它的存储引擎:innodb,一定不会感到陌生。众所周知,在mysql8以前,默认的存储引擎是:mylsam。但mysql8之后,默认的存储引擎已经变成了:innodb,它是我们建表的首选存储引擎。那么,问题来了: innodb底层是如何存储数据的? 表中有哪些隐藏列? 用户记录之间是如何关联起来的? 如果你想知道上面三个问题的答案,那么,请继续往下面看。本文主要包含如下内容:1.磁盘or内存?1.1 磁盘数据对系统来说原创 2021-11-03 10:47:01 · 589 阅读 · 0 评论 -
面试官问:MySQL 删除表数据,磁盘空间还一直被占用,为什么?
最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录。明明已经执行了delete,可表文件的大小却没减小,令人费解项目中使用Mysql作为数据库,对于表来说,一般为表结构和表数据。表结构占用空间都是比较小的,一般都是表数据占用的空间。当我们使用 delete删除数据时,确实删除了表中的数据记录,但查看表文件大小却没什么变化。Mysql数据结构凡是使用过mysql,对B+树肯定原创 2021-10-27 19:55:44 · 1072 阅读 · 0 评论 -
面试官:如果MySQL引起CPU消耗过大,你会怎么优化?
谁在消耗cpu?用户+系统+IO等待+软硬中断+空闲祸首是谁?用户用户空间CPU消耗,各种逻辑运算正在进行大量tps函数/排序/类型转化/逻辑IO访问…用户空间消耗大量cpu,产生的系统调用是什么?哪些函数使用了cpu周期?IO等待等待IO请求的完成此时CPU实际上空闲如vmstat中的wa 很高。但IO等待增加,wa也不一定会上升(请求I/O后等待响应,但进程从核上移开了)产生影响用户和IO等待消耗了大部分cpu 吞吐量下降转载 2021-10-27 19:53:49 · 373 阅读 · 0 评论 -
MySQL:互联网公司常用 分库分表
本文目录一、数据库瓶颈 IO瓶颈 CPU瓶颈 二、分库分表 水平分库 水平分表 垂直分库 垂直分表 三、分库分表工具四、分库分表步骤五、分库分表问题 非partition key的查询问题 非partition key跨库跨表分页查询问题 扩容问题 六、分库分表总结七、分库分表示例一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连原创 2021-10-24 10:27:51 · 572 阅读 · 0 评论 -
pt-query-digest 分析慢查询日志
一、简介pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。二、安装pt-query-digest1.下载页面:https://www.perco原创 2021-03-12 11:27:37 · 2966 阅读 · 0 评论 -
SQL中的where条件,在数据库中提取与应用浅析
1 问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍:给定一条SQL,如何提取其中的where...原创 2020-05-05 19:00:24 · 6852 阅读 · 0 评论 -
MySQL explain详解
1、id:SQL执行的顺序的标识。 sql从里向外执行,通过以上观察发现sql是按照id从大到小执行的。2、select_type: select类型1)、SIMPLE(不使用UNION或子查询等)2)、PRIMARY:最外层的select3)、DERIVED:派生表的SELECT(FROM子句的子查询)4)、UNION:UNION中的第二...原创 2020-05-05 19:02:16 · 6541 阅读 · 0 评论 -
mysql 各关键词的查询顺序
mysql执行sql的顺序从 From 开始,以下是执行的顺序流程1、FROMtable1 left join table2 on 将table1和table2中的数据产生笛卡尔积,生成Temp12、JOINtable2所以先是确定表,再确定关联条件3、ONtable1.column = table2.columu 确定表的绑定条件 由Temp1产生中间表Temp24、WHERE对中间表Temp2产生的结果进行过滤产生中间表Temp35、GROUP BY 对中间表Te...原创 2020-06-27 23:33:48 · 8758 阅读 · 0 评论 -
mysql库、表、字段、索引设计通用规范
以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。1、数据库设计1、库名【强制】库的名称必须控制在32个字符以内,相关模块的表名与表名之间尽量体现关联关系,如user表和user_login表。 【强制】库的名称格式:业务系统名称_子系统名,同一模块使用的表名尽量使用统一前缀。 【强制】创建数据库时必须显式指定字符集,并且字符集只能是utf8mb4。创建数据库SQL举例:create da原创 2020-06-11 17:18:59 · 8897 阅读 · 0 评论 -
mysql 查询性能优化
1,查询条件里有不等号SELECT * FROM `t_user` WHERE `id` != 2 中,id 的索引将不会被使用。2,查询条件里使用了函数SELECT * FROM `t_user` WHERE DAY(`regTime`) = 6 中,regTime 的索引将不会被使用。3,在JOIN操作中,主键和外键的数据类型不同SELECT `C` . * ,...原创 2020-05-05 19:01:09 · 6739 阅读 · 0 评论