Mysql

Mysql优化大分页查询

如题,年前做了一个需求,涉及到Mysql大分页查询,整理一下,希望对需要的小伙伴有帮助。背景分页查询的性能瓶颈B+树简述B+比起二叉查找树,有什么优势?分页查询过程测试集解决方法1延迟关联法:2主键阈值法最后背景  系统结构如上图。经过排查是因为系统B拉取数据时间太长导致的推送超时。 &e...
代码星球·2020-08-31

你了解MySQL中的多表联合查询吗?

前言:多表联合查询,其实就是我们MySQL中的join语句,经常会看到有人说join非常影响性能,不建议使用,你知道这是为什么呢?我们究竟可不可以用呢?测试数据:CREATETABLE`t2`(`id`int(11)NOTNULL,`a`int(11)DEFAULTNULL,`b`int(11)DEFAULTNULL,...

你知道MySQL中的主从延迟吗?

前言在一个MySQL主备关系中,每个备库接受主库的binlog并执行。正常情况下,只要主库执行更新生成所有的binlog,都可以传到备库并被正常的执行,这样备库就能够达到跟主库一样的状态,这就是最终一致性。但是MySQL提供的高可用能力,只有最终一致性是不够的,因为我们的备份可能会遇到主备延迟。什么是主备延迟?主备切换...

你了解MySQL的加锁规则吗?

注:加锁规则指的是next-keylock,如果还不了解next-keylock,请阅读上一篇博客加锁规则可以概括为:两个原则、两个优化和一个bug:原则1:加锁的基本单位是next-keylock,前开后闭原则2:查找过程中访问到的对象才会加锁优化1:索引上的等值查询,给唯一索引加锁的时候,next-keylock退...
代码星球·2020-08-31

一条查询语句在MySQL中是如何执行的?

我们在学习一种技术的时候,首先要鸟瞰其全貌,千万不要一开始就陷入到细节中去,这样有助于我们站在高维度其理解问题——丁奇。学习MySQL也是一样,所以我们可以从一条查询语句的执行开始看起。select*fromtwhereid=1;通常情况下,我们在使用MySQL的时候,只是从客户端输入一行指令,...

你了解MySQL中的日志吗?

MySQL中有两类非常重要的日志,一类是redolog(重做日志),一类是binlog(归档日志)重做日志利用的,是MySQL中,常见的WAL技术,WAL技术的全程是:Write-Ahead-Logging,它的关键点就是先写日志,再写磁盘。在我们的MySQL中,当有一条记录需要更新的时候,InnoDB引擎就会将记录先...
代码星球·2020-08-31

你了解MySQL中的锁吗?

MySQL中的锁,分为全局锁、表级锁、行锁全局锁的意思就是,对整个数据库实例加锁,它的命令是FTWRLFlashtableswithreadlock这个命令的语义是,使整个库处于一种只读的状态,使用这个命令后,以下语句会被阻塞:数据的更新、数据结构的定义、更新类事务的提交。全局锁通常被用于全库逻辑备份,但是让整个库只读...
代码星球·2020-08-31

Mysql 日期查询今天、昨天、近7天、近30天、本月、上一月、本季

select * from 表名 where to_days(时间字段名) = to_days(now());SELECT * FROM 表名 WHERE TO_DAYS(NOW()) -&...

Mysql 添加字段、修改字段、删除字段

altertableMACHINERYaddIS_VEHICLEintDEFAULT0COMMENT'是否接入车辆,0:不是,1:是'altertableusersmodifytelnointunsigneddefault'0';altertableusersmodifytelnointunsigneddefault'...

MySQL 获取所有表名、所有表结构

SELECTA.TABLE_SCHEMA'数据库',A.TABLE_NAME'表名',A.TABLE_ROWS'表记录行数',A.CREATE_TIME'创表时间',A.TABLE_COMMENT'表备注'FROMINFORMATION_SCHEMA.TABLESAWHEREA.TABLE_SCHEMA='数据库'&n...

Window版 MySQL可视化工具 Navicat 面安装免激活绿色版

网盘地址链接:https://pan.baidu.com/s/1T0WyhGAFEt28GaU4wXhfrg提取码:z4ww navicat15破解版链接:https://pan.baidu.com/s/1PfRJccFzoVvjVflrca40EQ提取码:5iy8 ...

yb课堂 实战之Mybatis打通Mysql数据库 《二》

server.port=8081#========================数据库相关配置=====================spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysq...

Mysql的Innodb和MyISAM引擎的区别

区别项InnodbMyISAM 事务 支持 不支持锁粒度 行锁,适合高并发表锁,不适合高并发 是否默认 默认 非默认 支持外键 支持外键 不支持 适合场景 读写均衡,写大于读场景,需要事务 ...

Linux MySQL分库分表之Mycat

当表的个数达到了几百千万张表时,众多的业务模块都访问这个数据库,压力会比较大,考虑对其进行分库当表的数据达到几千万级别,在做很多操作都比较吃力,考虑对其进行分库或分表  数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式:垂直切分:按照业务模块进行切分,将不同模块的表切分到不同的数据库中水平切分,...

Linux MySQL Proxy 读写分离

  因为读写分离是建立在MySQL集群主从复制的基础上,还不了解的,先看我另一篇博客:点我直达  mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。它使用mysql协议,任何使用mysql-client的上游无需修改任何...