MySQL Mysql表连接的执行流程详解 1. 前言 对于连接操作,驱动表和被驱动表的关联条件我们放在on后面,如果额外增加对驱动表和被驱动表的过滤条件,放到on或者where后面都不会报错,但是得到的结果集却是不一样的??? 1.1 mysql连接的原理 众所周知,mysql是基于嵌套循环连接(...
MySQL Mysql中的CHECK约束特性详解 功能说明 在MySQL 8.0.16以前, CREATE TABLE允许从语法层面输入下列CHECK约束,但实际没有效果: CHECK (expr) 在 MySQL 8.0.16,CREATE TABLE添加了针对所有存储引擎的表和列的CHECK约束的核心...
MySQL mysql日志系统redo log和bin log介绍 首先,我们先来看看一次查询/更新语句流程图 本文会将重点放在执行器<->存储引擎之间的交互。 mysql不是每次数据更改都立刻写到磁盘,而是会先将修改后的结果暂存在内存中,当一段时间后,再一次性将多个修改写到磁盘上,减少磁盘io成本,同时提高操...
MySQL MySQL中的存储过程异常处理 1. condition 2.handler 3.diagnostics area 在使用MySQL存储过程时,其中的代码可能会出现运行错误从而导致异常,此时需要将存储过程中产生的异常捕获并打印出来 需要知道的概念: condition hanlder d...
MySQL MySQL优化案例之隐式字符编码转换 索性失效前提 MySQL中我们知道有: 1、如果对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能。 2、隐式类型转换也会导致同样的放弃走树搜索。 因为类型转换等价于在条件字段上使用了函数比如: /*假设tradeid字段有索...
MySQL MySQL数据库的触发器和事务 一、触发器 概念 触发器是SQL server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,是由事件来触发。触发器经常用来加强数据的完整性约束和业务规则。 二、 触发器的操作 创建account和account_lo...
MySQL MySQL使用正则表达式去检索指定数据库字段 使用MySQL正则表达式 基本字符匹配 例:检索列prod_name 包含文本1000的所有行。 SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’ ORDER ...
MySQL MYSQL 数据库时间字段 INT,TIMESTAMP,DATETIME 性能效率的比较介绍 前言: 在数据库设计的时候,我们经常会需要设计时间字段,在 MYSQL 中,时间字段可以使用 int、timestamp、datetime 三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好呢 ? 就这个问题,来一个实践出真知吧。 一、准备...
MySQL MySQL中with rollup的用法及说明 MySQL with rollup的用法 当需要对数据库数据进行分类统计的时候,往往会用上groupby进行分组。 而在groupby后面还可以加入withcube和withrollup等关键字对数据进行汇总。 mysql文档 with rollup概述 ...
MySQL MySQL中表锁和行锁机制浅析(源码篇) [var] 众所周知,MySQL的存储引擎有MyISAM和InnoDB,锁粒度分别是表锁和行锁。 后者的出现从某种程度上是弥补前者的不足,比如:MyISAM不支持事务,InnoDB支持事务。表锁虽然开销小,锁表快,但高并发下性能低。行锁虽然开销大,锁表慢,...
MySQL MySQL查询性能优化索引下推 前言 前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下: MySQL查询性能优化七种方式索引潜水 MySQL查询性能优化武器之链路追踪 今天要讲的是MySQL的另一种查询性能优化方式 — 索引下推(Index Con...
MySQL MySQL子查询的使用详解下篇 相关子查询 相关子查询执行流程 如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新计算一次,这样的子查询就称之为 关联子查询 。相关子查询按照一行接一行的顺序执行,主查询的...