• MySQL innodb意向锁介绍

    大家知道,InnoDB 实现了标准的行级锁,包括:共享锁(S锁)、排它锁(X锁)。那么为什么需要引入意向锁呢?它能解决什么问题呢?假设,事务A获取了某一行的排它锁,尚未提交,此时事务B想要获取表锁时,必须要确认表的每一行都不存在排他锁,很明显效率会很低,引入意向锁之后,效率就会大为改善:如果事务A获取了某一行的排它锁,实际此表存在两种锁,表中某一行的排他锁和表上的意向排他锁。如...

    MySQL 2021年02月23日 21 0
  • mysql一张表到底能存多少数据?

    前言程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?接下来咱们逐一探讨知识准备数据页在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网...

    MySQL 2021年02月20日 27 0
  • Insert into select语句竟然也会引发的生产事故?

    前言  Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O...

    MySQL 2021年02月02日 81 0
  • MySQL如何加锁控制并发

    目录前言一、乐观锁添加version字段二、悲观锁读锁全表锁(LOCK TABLE 表 READ)行锁(SELECT ... LOCK IN SHARE MODE)写锁全表锁(LOCK TABLE 表 WRITE)行锁(SELECT ... FOR UPDATE)前言锁总体可以分为乐观锁和悲观锁,简单说,乐观锁用版本号控制,悲观锁用锁控制。下面是待会要用来测试的数据# 添加一个...

    MySQL 2021年01月31日 83 0
  • MYSQL8.023新特性,消失的列

    我们来体验一下MySQL 8.0.23新特性:不可见列(invisible 关键字)。传统版本数据库中所有列都是可以查询的,现在可以指定一个不可见的列,它将对查询隐藏。如果显式引用,它可以被查到。1、首先建表create table test_invisible ( id int, name varchar(20), money float in...

    MySQL 2021年01月30日 110 0
  • Flink + Iceberg 全场景实时数仓的建设实践

    摘要: Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持...

    MySQL 2021年01月29日 82 0
  • Flink + Iceberg 全场景实时数仓的建设实践

    摘要: Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持...

    MySQL 2021年01月29日 74 0
  • mysql索引优化实战一

    CREATE TABLE `eb_special_subject` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '' COMMENT '名称', `pic` varchar(255) NOT NULL DEFAULT '' COMMENT '图标', `sort...

    MySQL 2021年01月28日 86 0
  • MySql安装全攻略,如果想好好学习,一篇就够了

    下载MySql安装文件MySql官网下载浏览器输入官网下载地址:https://www.mysql.com/downloads/,进入管网下载页面这里主要有三个版本可以选择:MySQL Enterprise EditionMySQL企业版包括最全面的一套先进的功能,管理工具和MySQL的技术支持MySQL Cluster CGEMySQL集群是一个实时的开源事务数据库,设计用于...

    MySQL 2021年01月28日 69 0
  • MySQL中的分区表(下)

    分区表的管理range和list分区添加分区删除分区修改分区合并或拆分分区hash和key分区添加分区删除分区修改分区合并或拆分分区分区的维护重建分区优化分区分析分区检查分区修复分区分区表的注意事项总结关于分区表的的分类和示例,请参考上篇文章。分区表的管理range和list分区对于range和list两种类型的分区表的管理,接下来的各种演示示例:添加分区、删除分区、修改分区、...

    MySQL 2021年01月28日 84 0
  • MySQL中的分区表(上)

    什么是分区表为什么要用分区表如何查看分区信息分区的类型range范围分区list列表分区columns多列分区range columns范围多列分区list columns列表多列分区hash哈希分区linear hash线性哈希分区key按键分区linear key线性按键分区复合分区range-hash复合分区range-key复合分区list-hash复合分区list-k...

    MySQL 2021年01月28日 81 0
  • MySQL 8.0 中的索引可以隐藏了…

    MySQL 8.0 虽然发布很久了,但可能大家都停留在 5.7.x,甚至更老,其实 MySQL 8.0 新增了许多重磅新特性,比如栈长今天要介绍的 “隐藏索引“ 或者 “不可见索引“。隐藏索引是什么鬼?隐藏索引 字面意思就是把索引进行隐藏,即不可见,它不是用来查询优化的,所以它不会被优化器使用到。隐藏索引适用于除主键索引(显示或者隐式设置)之外的索引,意味着主键索引是不能通过任...

    MySQL 2021年01月26日 85 0
  • 项目重启数据库连接数突增!连接数据库超时!请收下这个方子

    结论:数据库连接数突增是数据库连接资源没有及时释放。连接数据库超时是因为数据库连接资源释放得过早。现象1:每次上线项目DB的连接数会突增。原因:是项目关闭的时候没有释放连接资源导致。DB的connection资源没有正常释放,导致项目启动的时候再次创建数据库连接资源,就出现了连接数突增的现象。一段时间后mysql根据wait_time的配置,自动回收conncetion,所以连...

    MySQL 2021年01月26日 196 0
  • 数据量大读写缓慢如何优化(3)「Elasticsearch」

    如何使用Elasticsearch设计表结构?我们知道Elasticsearch(以下简称“ES”)是基于索引的设计,它没办法像MySQL那样使用join查询,所以,查询数据时我们需要把每条主数据及关联子表的数据全部整合在一条记录中。比如MySQL中有一个订单数据,使用ES查询时,我们会把每条主数据及关联子表数据全部整合在下表中:从上表中,我们发现:使用ES存储数据时并不会设计...

    MySQL 2021年01月25日 78 0
  • 基于canal实现mysql的数据同步

    canal是什么?canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6...

    MySQL 2021年01月25日 102 0
  • 最基础的分类统计SQL语句

    原始数据如下:想要得到的结果:sql语句:select dw,count(distinct zy) as zycount from table group by dw

    MySQL 2021年01月23日 77 0
  • 使用源码编译安装MySQL

    前言环境准备源码编译安装下载MySQL源码解压源码文件开始编译操作安装MySQL数据库生成二进制安装包初始化MySQL创建系统用户执行数据库的初始化启动MySQL服务登录MySQL数据库总结前言前面的文章中,我们介绍了MySQL使用二进制文件安装的大致过程。今天我们来看下另外一种安装方式,那就是使用MySQL的源码自己编译安装MySQL。环境准备我们使用docker运行一个最新...

    MySQL 2021年01月22日 107 0
  • 深入剖析 RSA 密钥原理及实践

    一、前言在经历了人生的很多至暗时刻后,你读到了这篇文章,你会后悔甚至愤怒:为什么你没有早点写出这篇文章?!你的至暗时刻包括:1.你所在的项目需要对接银行,对方需要你提供一个加密证书。你手上只有一个六级英语证书,不确定这个是否满足对方需求。由于你迟迟无法提供正确的证书,项目因此延期,加薪计划泡汤,月供断了,女朋友分手了,你感觉人生完了。2. 你老骥伏枥 2 个月,终于搞懂了.cr...

    MySQL 2021年01月20日 78 0
  • mysql中的各种日志文件

    mysql在CentOS 7安装好之后,配置文件一般在/etc/my.cnf中。数据目录一般在/var/lib/masql下,其中包含一些日志文件。1)通用日志通用查询日志会记录用户的所有操作,其中还包含增删查改等信息。在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响mysql的性能的。所以,默认情况下是关闭的。可以用 general_log={ON|OFF...

    MySQL 2021年01月14日 113 0
  • 数据库同步软件DBSync的设计与实现

    DBSync工作原理示意图DBSync是一款数据库同步软件,支持各种数据库之间的同步,支持增量同步。本文分享该软件的产品渊源、设计思想、技术要点、功能特征、使用方法,最后分析其优缺点,供IT技术人员参考,也欢迎大家提供宝贵意见,促进我们持续进步。阅读本文,用时大约15分钟。1、产品渊源早在2003年,我们在企业信息化的过程中,就经常遇到系统对接问题。很多客户的一些老旧软件,不方...

    MySQL 2021年01月13日 123 0
  • 要精通SQL优化?首先要看懂explain关键字

    前言在MySQL中,我们知道加索引能提高查询效率,这基本上算是常识了。但是有时候,我们加了索引还是觉得SQL查询效率低下,我想看看有没有使用到索引,扫描了多少行,表的加载顺序等等,怎么查看呢?其实MySQL自带的SQL分析神器Explain执行计划就能完成以上的事情!Explain有哪些信息先确认一下试验的MySQL版本,这里使用的是5.7.31版本。只需要在SQL语句前加上e...

    MySQL 2021年01月12日 159 0
  • MySQL的日志 - undo log

    前言什么是undo logundo log的作用undo log的存储空间和系统表空间存放在一起独立的undolog表空间undo log的相关参数独立undolog表空间的意义最后前言前面我们介绍了MySQL中的慢查询slow query log,二进制日志binlog,中继日志relay log,重做日志redolog,今天我们来看一下另外一个重要的日志:undo log。...

    MySQL 2021年01月11日 130 0
  • 数据库实用脚本:计算地球上两个坐标点之间的里程

    今天给大家分享计算地球上两个坐标点之间里程不同数据库版本的脚本。1、SQLServer脚本–-计算地球上两个坐标点(经度,纬度)之间距离sql函数 CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEn...

    MySQL 2021年01月11日 120 0
  • 小心避坑:MySQL分页时使用 limit+order by 会出现数据重复问题

    0 问题描述在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。具体如下:SELECT   `post_title`,   `post_date...

    MySQL 2021年01月11日 127 0
  • 分享一则生产数据库sql优化案例—从98s优化到1.4s

    概述今天主要分享一则生产环境的sql优化案例,仅供参考。问题sql该sql定位还是比较容易的,直接查慢查询语句就直接定位出来了。在测试环境执行需耗时98s,查出数据7108条。SELECT * FROM ( SELECT t.group_code, ter.terminate_begin_date AS terminateBeginDate, ... FR...

    MySQL 2021年01月11日 131 0
  • CENTOS MYSQL复制下slave严重延迟的分析和处理

    昨晚在生产环境刷数据,执行了一个全局表的update table_test set XK = 'PT' where (XK = '' or XK is null);当时语句没啥问题,测试了下,执行单库的时间在6s左右,没太在意,结果今天发现所有的从库严重延迟,全都卡在这条事务的binlog回放上了。分析原因: 尽管我们使用的是基于组的多线程复制,线程配置为4个,但是他对无序i...

    MySQL 2021年01月06日 124 0
  • 什么是MySQL主从复制读写分离,看这篇就够了

    思维导图前言在很多项目,特别是互联网项目,在使用MySQL时都会采用主从复制、读写分离的架构。为什么要采用主从复制读写分离的架构?如何实现?有什么缺点?让我们带着这些问题开始这段学习之旅吧!为什么使用主从复制、读写分离主从复制、读写分离一般是一起使用的。目的很简单,就是为了提高数据库的并发性能。你想,假设是单机,读写都在一台MySQL上面完成,性能肯定不高。如果有三台MySQL...

    MySQL 2021年01月05日 133 0
  • 什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推

    聚集索引我们先建如下的一张表CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(10) NOT NULL COMMENT '学生姓名', `age` int(11) NOT NULL COMMENT '学生年龄', PRIMARY K...

    MySQL 2021年01月05日 170 0
  • MySQL的日志 - relay log

    前言relay log的作用如何开启relay log验证relay log开启的效果relay log日志相关参数relay log日志的清除最后前言前面介绍了MySQL的binlog日志相关的知识点,接下里这篇文章中,我们来看一下relaylog的相关内容。relay-log是记录什么的?MySQL用它做什么?relay log的作用Relay log,我们翻译成中文,一般...

    MySQL 2021年01月05日 115 0
  • MySQL为Null会导致5个问题,个个致命

    在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示: “兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。-- 如果存在 person 表先删除 DROP TABLE IF EXISTS person;  -- 创建 p...

    MySQL 2021年01月01日 153 0