202201-17 MySQL Shell import_table数据导入的实现 目录1.import_table介绍2.LoadData与importtable功能示例2.1用LoadData方式导入数据2.2用import_table方式导入数据3.import_table特定功能3.1多文件导入(模糊匹配)3.2并发导入3.3导入速率控制3.4自定义chunk大小4.LoadDatavsimport_table性能对比5.技术总结1.import_table介绍上期技术分享我们介绍了MySQLLoadData的4种常用的方法将文本数据导入到MySQL,这一期我们继续介绍另一款更加高效的数据导入工具,MyS... 继续阅读 >
202201-12 MySQL配置主从服务器(一主多从) 目录思路主机配置修改conf重启检验从机1配置从机2配置配置主从关联测试数据同步常见问题原因解决方案本文主要介绍了MySQL配置主从服务器(一主多从),感兴趣的可以了解一下当前环境Centos7.6Mysql5.7Centos7.6安装MySQL5.7请参考:https://www.jb51.net/article/99965.htm思路主机配置修改confvim/etc/my.cnf在[mysqld]后面换行追加配置,保存并退出server-id=1log-bin=master-binlog-bin-index=master-bin.index重启syste... 继续阅读 >
202201-06 MYSQL使用Union将两张表的数据合并显示 使用UNION操作符union:用于连接两个以上的SELECT语句的结果组合到一个结果集合中。多个SELECT语句会删除重复的数据。使用union操作符会将多张表中相同的数据取值一次,如果想将表1和表2中的值完整的显示出来,可以使用unionall。演示小伙伴们自行创建一下表。表1数据如下: 表2数据如下:OK,表数据已经创建完成,一共五条数据,接下来我们去看一看union和unionall的使用。使用union看一下效果:selectt1.idid,... 继续阅读 >
202112-14 浅谈mysql join底层原理 目录join算法驱动表和非驱动表的区别1、SimpleNested-LoopJoin,简单嵌套-无索引的情况2、IndexNested-LoopJoin-有索引的情况3、BlockNested-LoopJoin,joinbuffer缓冲区缓冲区大小数据量大的表和数据量小的表如何选择连接顺序细节join算法mysql只支持一种join算法:Nested-LoopJoin(嵌套循环连接),但Nested-LoopJoin有三种变种:SimpleNested-LoopJoin,简单嵌套IndexNested-LoopJoin,索引嵌套Bloc... 继续阅读 >
202112-09 MySQL中utf8mb4排序规则示例 在MySQL中常见的utf8mb4排序规则有:utf8mb4_0900_ai_ciutf8mb4_unicode_ciutf8mb4_general_ci当设置表的默认字符集为utf8mb4字符集但未明确指定排序规则时:在MySQL5.7版本中,默认排序规则为utf8mb4_general_ci。在MySQL8.0版本中,默认排序规则为utf8mb4_0900_ai_ci。由于utf8mb4_0900_ai_ci排序规则时MySQL8.0引入的排序规则,因此将MySQL8.0版本的表导入到MySQL5.7或MySQL5.6版本时,会存在字符集... 继续阅读 >
202112-09 MySQL里面的子查询的基本使用 目录一、子查询定义二、子查询分类1.标量子查询: 2.MySQL列子查询:3.MySQL行子查询:4.MySQL表子查询:三、字查询例举1.ANY进行子查询2.使用IN进行子查询3.使用SOME进行子查询4.使用ALL进行子查询5.标量子查询6.多值子查询7.独立子查询8.相关子查询9.EXISTS谓词10.派生表四、子查询优化一、子查询定义 定义:子查询允许把一个查询嵌套在另一个查询当中。子查询,又叫内部查询,相对于内部查... 继续阅读 >
202111-17 mysql 字段定义不要用null的原因分析 一NULL为什么这么经常用(1)java的nullnull是一个让人头疼的问题,比如java中的NullPointerException。为了避免猝不及防的空指针,需要小心翼翼地各种if判断,麻烦又臃肿.为此有很多的开源包都有诸多处理commonlang3的StringUtils.isBlank();CollectionUtils.isEmpty();guava的Optional甚至java8也引入了Optional来避免这一问题(和guava的大同小异,用法稍有一点点变化)(2)mysql的null为什么横行滥用(a)创建不规范null是创... 继续阅读 >
202111-16 MySQL中的redo log和undo log日志详解 MySQL日志系统中最重要的日志为重做日志redolog和归档日志binlog,后者为MySQLServer层的日志,前者为InnoDB存储引擎层的日志。1重做日志redolog1.1什么是redologredolog用于保证事务的持久性,即ACID中的D。持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。redolog有两种类型,分别为物理重做日志和逻辑重做日志。在InnoDB中redolog大多数情况下... 继续阅读 >
202111-16 MySQL中的redo log和undo log日志详解 MySQL日志系统中最重要的日志为重做日志redolog和归档日志binlog,后者为MySQLServer层的日志,前者为InnoDB存储引擎层的日志。1重做日志redolog1.1什么是redologredolog用于保证事务的持久性,即ACID中的D。持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。redolog有两种类型,分别为物理重做日志和逻辑重做日志。在InnoDB中redolog大多数情况下... 继续阅读 >
202111-14 为什么MySQL选择Repeatable Read作为默认隔离级别 目录Oracle的隔离级别MySQL的隔离级别总结关于MySQL的事务隔离级别,相信很多读者都不陌生,网商有很多种相关的文章,很多人对于各种隔离级别,以及不同的级别可以解决的一些读现象都是如数家珍的。我们知道,ANSI/ISOSQL定义的标准隔离级别有四种,从高到底依次为:可序列化(Serializable)、可重复读(RepeatableReads)、提交读(ReadCommitted)、未提交读(ReadUncommitted)。RU隔离级别下,可能发生脏读、幻读、不可重复读等... 继续阅读 >
202111-09 mysql脏页是什么 目录脏页(内存页)为什么会出现脏页内存管理机制简述数据修改和读取只依赖缓冲区行不行为什么脏页一定要刷新刷脏页有下面4种场景会造成的影响脏页(内存页)干净页:内存和磁盘中的数据一致脏页:内存和磁盘中的数据不一致为什么会出现脏页平时很快的更新操作,都是在写内存和日志。他并不会马上同步到磁盘数据页,这时内存数据页跟磁盘数据页内容不一致,我们称之为脏页。这里面就涉及mysql的内存管理机制内存管理机制简述缓冲... 继续阅读 >
202111-09 MySQL深度分页(千万级数据量如何快速分页) 目录前言案例优化小结前言后端开发中为了防止一次性加载太多数据导致内存、磁盘IO都开销过大,经常需要分页展示,这个时候就需要用到MySQL的LIMIT关键字。但你以为LIMIT分页就万事大吉了么,Tooyoung,toosimple啊,LIMIT在数据量大的时候极可能造成的一个问题就是深度分页。案例这里我以显示电商订单详情为背景举个例子,新建表如下:CREATETABLE`cps_user_order_detail`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENT... 继续阅读 >
202111-07 mybatis+springboot中使用mysql的实例 目录依赖引入配置引入案例实现案例源码在软件开发中,数据库的引入是必不可少的,其中又属mysql使用最为广泛,而在springboot中,集成使用mysql的方式有很多(例如jpa),这里来展现一下通过mybatis框架在springboot中使用mysql。依赖引入首先在使用初始化工程的时候加入mybatis、mysql相关的依赖,如下所示:<dependencies><dependency><groupId>org.springframework.boot</groupId><artifact... 继续阅读 >
202111-01 mysql 直接拷贝data 目录下文件还原数据的实现 mysql拷贝data目录下的文件还原数据背景:MySQL的的崩溃无法启动,决定重新搭环境,但数据库测试数据忘记备份时,MySQL的的数据目录幸存操作:1,复制测试数据库的文件夹(包含.frm.ibd等文件)2,重启mysql通过Navicat查看数据库某张表,结果显示“表'xxx不存在”3,各种谷歌,百度后发现innodb的表直接复制文件是无法使用的,会提示表不存在,在复制的时候,应将数据目录下的ibdata1文件一并复制过去,并且删除ib_logfile0... 继续阅读 >
202110-29 MySQL索引是啥?不懂就问 目录概述从二叉树到B+树聚集索引非聚集索引联合索引和覆盖索引B+树索引VS哈希索引普通索引和唯一索引InnoDBVSMyISAM用explain分析索引使用总结概述以下是需要创建索引的常见场景,为了对比,创建测试表(a带索引、d无索引):mysql>createtabletest(--创建测试表->idint(10)notnullAUTO_INCREMENT,->aint(10)defaultnull,->bint(10)defaultnull,->cint(10)defaultnull,->dint(10)de... 继续阅读 >
202110-28 MySQL 那些常见的错误设计规范,你都知道吗 依托于互联网的发达,我们可以随时随地利用一些等车或坐地铁的碎片时间学习以及了解资讯。同时发达的互联网也方便人们能够快速分享自己的知识,与相同爱好和需求的朋友们一起共同讨论。但是过于方便的分享也让知识变得五花八门,很容易让人接收到错误的信息。这些错误最多的都是因为技术发展迅速,而且没有空闲时间去及时更新已经发布的内容所导致。为了避免给后面学习的人造成误解,我们今天来看一看MySQL设计规范中几个常见的... 继续阅读 >