随笔分类 - MySQL
摘要:使用navicat客户端工具连接上测试的mysql数据库,新建一个测试表 CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号', `login_name` varchar(50) NOT NULL CO
阅读全文
摘要:MySQL的InnoDB(存储引擎)索引数据结构是B+树,主键索引叶子节点的值存储的就是MySQL的数据行(可以理解为一行数据),普通索引的叶子节点的值存储的是主键值(只有个主键),这是了解聚簇索引和非聚簇索引的核心。 1、什么是聚簇索引?通俗解释:找到了索引就找到了需要的数据,那么这个索引就是聚簇
阅读全文
摘要:什么是索引下推? 索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。 在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符
阅读全文
摘要:1 什么是MVCC MVCC全称是: Multiversion concurrency control,多版本并发控制,提供并发访问数据库时,对事务内读取的到的内存做处理,用来避免写操作堵塞读操作的并发问题。 举个例子,程序员A正在读数据库中某些内容,而程序员B正在给这些内容做修改(假设是在一个事务
阅读全文
摘要:首先,贴一个待优化的sql语句 select * from A left join B on A.c = B.c where A.employee_id = 3 需求解读: A表left join B表,并且指定A表中的employee_id为一个具体的值 在c字段不是任何索引,A B 表各有1W多
阅读全文
摘要:(注:MySQLInnoDBDialect与MySQLMyISAMDialect继承自MySQLDialect。) InnoDB和MyISAM是MySQL最重要的两种数据存储引擎,两者都可用来存储表和索引,各有优缺点,视具体应用而定。基本的差别为:MyISAM 类型不支持事务处理等高级处理,而Inn
阅读全文
摘要:假设有两种表:test_on_position表和address表,address表存放地址,test_on_position存放会员及其常用的地址,数据如下: address表: test_on_position表: 1. left join 条件在where后面 SELECT * FROM te
阅读全文
摘要:一、使用QueryByExampleExecutor 1. 继承MongoRepository public interface StudentRepository extends MongoRepository<Student, String> { } 2. 代码实现 使用ExampleMatch
阅读全文
摘要:有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms,
阅读全文
摘要:1.开发背景 在web项目中,经常会需要查询数据导出excel,以前比较常见的就是用poi。使用poi的时候也有两种方式,一种就是直接将集合一次性导出为excel,还有一种是分批次追加的方式适合数据量较大的情况。poi支持xls和xlsx,使用2003版本的只支持6万多行以下的数据量,使用2007版
阅读全文
摘要:创建表 1、建表语句如下所示: DROP TABLE IF EXISTS `p_user`; CREATE TABLE `p_user` ( `id` int(11) NOT NULL auto_increment, `name` varchar(10) default NULL, `sex` ch
阅读全文
摘要:在应用时,经常要使用这两个函数TIMESTAMPDIFF和TIMESTAMPADD。 一,TIMESTAMPDIFF 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。 说明: 返回日期或日期时间表达式datetime_expr1 和
阅读全文
摘要:mysql-5.6.28主从备份,异地容灾 2018mysql5.7.21主从异地热备份(容灾) 一、主服务器配置 1.首先修改my.cnf文件,添加 server-id = 200 #设置主服务器ID log-bin = mysql-bin-200 #binlog日志文件名 sync_binlog
阅读全文
摘要:1.主从复制的含义 在 MySQL 多服务器的架构中,至少要有一个主节点(master),跟主节点相对的,我们把它叫做从节点(slave)。主从复制,就是把主节点的数据复制到一个或者多个从节点。主服务器和从服务器可以在不同的 IP 上,通过远程连接来同步数据,这个是异步的过程。 2.主从复制的形式
阅读全文
摘要:从维度来说分成两种,一种是垂直,一种是水平。垂直切分:基于表或字段划分,表结构不同。我们有单库的分表,也有多库的分库。水平切分:基于数据划分,表结构相同,数据不同,也有同库的水平切分和多库的切分。 1.1 垂直切分 垂直分表有两种,一种是单库的,一种是多库的。 1.1.1 单库垂直分表 单库分表,比
阅读全文
摘要:为什么要分库分表 1.1 数据库性能瓶颈的出现 对于应用来说,如果数据库性能出现问题,要么是无法获取连接,是因为在高并发的情况下连接数不够了。要么是操作数据变慢,数据库处理数据的效率除了问题。要么是存储出现问题,比如单机存储的数据量太大了,存储的问题也可能会导致性能的问题。归根结底都是受到了硬件的限
阅读全文
摘要:1.下载mysql5.7并解压 可以自己去下载5.7.22版本 2.可以把解压的内容随便放到一个目录,我的是如下目录(放到C盘的话,可能在修改ini文件时涉及权限问题,之后我就改放D盘了): D:\MySQL\MySQL Server 5.7.22 如下图:此时加压后的文件中没有data目录和ini
阅读全文
摘要:日期 编号 仓库 数量 2012-05-31 C001 A店 136 2012-05-29 C001 A店 139 2012-05-29 C001 B店 5 2012-05-30 C001 B店 6 我只显示最大日期的记录,这个SQL怎么写呀?即 日期 编号 仓库 数量 2012-05-31 C00
阅读全文
摘要:对于数据库中的树形结构数据,如部门表,有时候,我们需要知道某部门的所有下属部分或者某部分的所有上级部门,这时候就需要用到mysql的递归查询。 1、创建表 DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` ( `id` int(
阅读全文
摘要:存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结
阅读全文