mysql
mysql
我是陈旭原
生命不息 运动不止
展开
-
mvcc多版本并发控制
文章目录一、前提概要什么是MVCC?什么是当前读和快照读?当前读,快照读和MVCC的关系MVCC能解决什么问题,好处是?数据库并发场景有三种,分别为:MVCC带来的好处是?小结一下咯二、MVCC的实现原理隐式字段undo日志一、前提概要什么是MVCC?MVCCMVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB原创 2020-10-31 10:29:45 · 1047 阅读 · 1 评论 -
mysql 存储过程 游标 like模糊查询并插入处理的一个小案例
DELIMITER $$DROP PROCEDURE IF EXISTS `synchICD10Data`$$CREATE PROCEDURE `synchICD10Data`()BEGIN DECLARE diagnosisCode, diagnosisName VARCHAR(45); DECLARE icdName text; DECLARE count int; DEC...原创 2020-04-30 16:28:30 · 481 阅读 · 0 评论 -
【mysql性能优化】- 避免索引失效原则
文章目录策略1 — 尽量全职匹配策略2 — 最佳左前缀法则策略3 — 不要在索引列上做任何操作策略4 — 范围条件放最后策略5 — 覆盖索引尽量用策略6 — 不等于要甚用策略7 — is null(使用)、is not null(不使用)有影响策略8 — Like查询要当心策略9 — 字符类型加引号(切记)策略10 — OR改UNION效率高前面我们学了执行计划各列的含义以及几个优化案例,本篇博...转载 2020-04-04 12:20:47 · 222 阅读 · 0 评论 -
【mysql性能优化】- 优化实例
文章目录一、优化小案例二、单表优化案例三、两表案例优化四、三表案例优化上一篇博客我们解析了执行计划explain的各个字段的含义,这篇博客我们先根据执行计划优化几个案例一、优化小案例首先创建一个表和加索引-- 创建一个test03create table test03( a1 int(4) not null, a2 int(4) not null, a3 int...原创 2020-04-04 10:51:42 · 370 阅读 · 0 评论 -
【mysql性能优化】- 执行计划explain
文章目录1 前言2 准备3 执行计划结果列的含义3.1 id -- 用来判断语句执行的顺序3.2 select_type -- 判断查询的类型3.3 table -- 当前行操作的数据是关于哪张表的3.4 type -- 索引类型官网:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html1 前言本文用mysql5.5版本测...原创 2020-03-29 14:57:36 · 344 阅读 · 0 评论 -
【myql性能优化】- mysql索引及底层数据结构
文章目录1 为什么要用索引2 什么是索引3 简单说说HASH索引4 非HASH索引为什么选用的数据结构为B+树?4.1 为什么不是其他数据结构4.2为什么是B+树而不是B树呢?4.2.1 B树数据结构4.2.2 B+树数据结构,以及为什么选择B+树4.2.3 一个错误的观点:B树和B+树的区别之一为B树的非叶子节点存储数据4.3 简单猜想:为什么索引中每个节点在内存中的地址是随机的5 MySQL索...转载 2020-03-28 12:06:15 · 172 阅读 · 0 评论 -
【mysql性能优化】- sql解析顺序
文章目录MySQL架构总览:2 查询执行流程2.1 连接2.2 处理2.3 结果3 SQL解析顺序MySQL架构总览:架构最好看图,再配上必要的说明文字。下图根据参考书籍中一图为原本,再在其上添加上了自己的理解。从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage Engine Layer...转载 2020-03-28 10:22:34 · 159 阅读 · 0 评论 -
MySql数据查重、去重的实现
假设有一个表user,字段分别有id–nick_name–password–email–phone,分情况如下(注意删除多余记录时要创建临时表,不然会报错):一、单字段(nick_name)1、查出所有有重复记录的所有记录select * from user where nick_name in (select nick_name from user group by n...转载 2019-07-09 11:36:59 · 890 阅读 · 0 评论 -
一个关于mysql包含事务和异常处理的存储过程
CREATE DEFINER=`dur_dev`@`%` PROCEDURE `prescriptionDrugStatistics`()BEGIN DECLARE code CHAR(5) DEFAULT '00000'; DECLARE msg TEXT; DECLARE rows INT; DECLARE result TEXT; -- 声明异常处理 DECLAR...原创 2019-06-28 16:33:05 · 342 阅读 · 0 评论 -
一个关于mysql分页查询的存储过程写法
DELIMITER $$DROP PROCEDURE IF EXISTS `drugConsumptionStatistics`$$CREATE PROCEDURE drugConsumptionStatistics( -- 输入参数 IN hosCode VARCHAR(128),-- 机构编码 IN prescriptionSource VARCHAR(128),-- 处方来源...原创 2019-06-25 11:31:12 · 378 阅读 · 0 评论 -
mysql 分区间查询
sql 代码create table u(id int,name varchar(8),age int); Load Data InFile 'C:/data.txt' Into Table `u` Fields Terminated By ','; mysql> select * from u;+------+--------+------+| id | name | age |+原创 2018-01-17 20:34:25 · 8083 阅读 · 1 评论 -
存储过程
这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢。参考 mysql存储过程详解存储过程简介 关于MySQL的存储过程 MySQL存储过程的创建 MySQL存储过程的调用 MySQL存储过程的查询 MySQL存储过程的修改 MySQL存储过程的删除 MySQL存储过程的控制语句 MySQL存储过程的基本函数1. 存储过程简介 ...转载 2018-08-08 10:14:16 · 345 阅读 · 0 评论 -
MySQL关于sql_mode的修改(timestamp的默认值不正确)
timestamp的默认值不正确原因:MySQL5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mode的值。select @@global.sql_mode; 查看当前sql_mode;set sql_mode=(select replace(@@sql_mode,'NO_Z...原创 2019-09-30 15:48:26 · 669 阅读 · 0 评论 -
mysql 使用存储过程批量更新表数据
DELIMITER $$CREATE PROCEDURE updateUser()begin DECLARE row_id INT; DECLARE row_ips_acct_no VARCHAR(100); DECLARE row_balance decimal(20,2); DECLARE row_freeze decimal(20,2); DECLARE stop INT default 0...原创 2018-06-26 19:49:00 · 2219 阅读 · 0 评论