
MySQL学习之路
文章平均质量分 81
MySQL学习之路
PoetryAndTheDistance
三年Java后端,一年数据。一年交付。没别的爱好,只是喜欢啃骨头。
展开
-
实现一个MySQL自定义函数:求两个JSONArray的并集
目录准备表及数据创建自定义函数删除自定义函数测试自定义函数函数中用到的其他的MySQL支持的JSON函数准备表及数据建表以及添加测试数据/* Navicat Premium Data Transfer Source Server : DataLab测试库 Source Server Type : MySQL Source Server Version : 80015 Source Host : ****** Sourc原创 2021-05-26 16:34:26 · 752 阅读 · 1 评论 -
Mysql中的JSON函数使用教程
新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下前言JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。JSON的格式非常简单:名称/键值。之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用TEXT大文本。 MySQL5.7发布后,专门设计了JSON数据类.转载 2021-05-25 21:18:07 · 645 阅读 · 0 评论 -
mysql存储过程、变量、自定义函数、触发器、事件
目录一、定义二、存储过程的特点三、创建一个简单的存储过程四、存储过程的变量五、变量的作用域六、存储过程参数七、存储过程条件语句八、存储过程循环语句九、存储过程游标的使用十、自定义函数十一、触发器十二、流程控制十四、存储过程+event(事件)十五、本文所用到的表本文主要记录了本人学习mysql存储过程时的笔记,文档中用到的表结构在文档结尾处有说明。本文SQL直接粘过去会有各种空格的格式问题,学习时需要注意。另外SQL执行时有时会有END的识原创 2021-05-23 22:29:56 · 763 阅读 · 0 评论 -
Mysql创建存储过程时出现ERROR 1064错误
ERROR 1064 (42000):ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE i INT DEFAULT 0' at line 1创建存储过程时,报错了。DROP PROCEDURE IF EXISTS Gam.转载 2021-05-23 22:26:13 · 2555 阅读 · 1 评论 -
深入理解MVCC与BufferPool缓存机制
目录MVCC多版本并发控制机制undo日志版本链与read view机制详解Innodb引擎SQL执行的BufferPool缓存机制MVCC机制举例.xlsxMVCC多版本并发控制机制Mysql在可重复读隔离级别下如何保证事务较高的隔离性,我们上节课给大家演示过,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。这个隔离性就是靠MVCC(Multi-Version Concurrency Control)机制来保转载 2021-05-20 23:57:14 · 327 阅读 · 0 评论 -
深入理解Mysql事务隔离级别与锁机制
目录概述事务及其ACID属性并发事务处理带来的问题事务隔离级别锁详解锁分类表锁行锁间隙锁(Gap Lock)临键锁(Next-key Locks)查看INFORMATION_SCHEMA系统库锁相关数据表死锁锁优化建议概述我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计转载 2021-05-20 23:50:34 · 567 阅读 · 0 评论 -
Mysql索引优化实战一篇概全
目录举一些大家不容易理解的综合例子:什么是索引下推了?Mysql如何选择合适的索引trace工具用法:常见sql深入优化Order by与Group by优化Using filesort文件排序原理详解filesort文件排序方式索引设计原则索引设计实战分页查询优化Join关联查询优化in和exsits优化count(*)查询优化阿里巴巴Mysql规范解读补充:MySQL数据类型选择举一些大家不容易理解的综合例子:示例表CREAT转载 2021-05-20 23:26:07 · 973 阅读 · 0 评论 -
一条SQL在MySQL中是如何执行的
MySQL的内部组件结构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 In...转载 2021-05-20 00:02:07 · 401 阅读 · 0 评论 -
Explain详解与索引最佳实践
目录Explain工具介绍Explain分析示例explain 两个变种explain中的列1. id列2. select_type列3. table列4. type列5. possible_keys列6. key列7. key_len列8. ref列9. rows列10. Extra列索引最佳实践1.全值匹配2.最左前缀法则3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4.存储..原创 2021-05-19 23:37:11 · 1083 阅读 · 1 评论 -
程序中调用MySQL的存储过程抛出报错指向权限问题
学习MySQL存储过程的时候,我创建了一个存储过程:create procedure selectUserById(userId int)begin select * from t_user where id = userId;end;MySQL调用:call selectUserById(1);结果:id name1 张三但是,当我在程序进行调用时:String SQL_SELECT = "call selectUserById(1)";...原创 2021-03-18 10:08:21 · 330 阅读 · 0 评论 -
MySQL跨库多表联查(不同库之间进行表关联)
MySQL跨库联查(不同库之间进行表关联)mysql支持多个库中不同表的关联查询,你可以随便链接一个数据库然后,sql语句为:select * from db1.table1 left join db2.table2on db1.table1.id = db2.table2.id只要用数据库名加上"."就能调用相应数据库的数据表了.数据库名.表名自己遇到的一个跨库聚合求差集的场景SELECT COUNT(1) FROM analytics_graph_data.HORGSh.原创 2021-03-11 10:44:37 · 16336 阅读 · 3 评论 -
关系数据库MySQL索引学习
MySQL-索引1、索引概述MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示(通过二叉树举例):左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所原创 2021-03-10 23:22:20 · 222 阅读 · 0 评论 -
数据同步Canal搭建全过程
数据同步Canal搭建全过程在当今互联网行业,尤其是现在分布式、微服务开发环境下,为了提高搜索效率,以及搜索的精准度,会大量使用Redis、Memcached等NoSQL数据库,也会使用大量的Solr、Elasticsearch等全文检索服务。那么,这个时候,就会有一个问题需要我们来思考和解决:那就是数据同步的问题!如何将实时变化的数据库中的数据同步到Redis/Memcached或者Solr/Elasticsearch中呢?互联网背景下的数据同步需求在当今互联网行业,尤其是现在分布式、微服务开发环境原创 2020-08-19 14:53:16 · 578 阅读 · 1 评论 -
所谓的数据库物理外键与逻辑外键
所谓的数据库物理外键与逻辑外键当看到物理外键的时候,第一反应是有物理外键那一定有逻辑外键,那我熟悉的外键是什么?物理外键指的是使用foreign key 作为外键关联另一张的字段的连接方法,而且限定了引擎为InnoDB,而逻辑外键,又叫做事实外键,是因为存在语法上的逻辑关联而产生的外键,需要有连接关键词inner join 或者left join 等等和连接部分,也就是on后面的部分,如果需要对应的设置,也可以加上set等语句。看到的一网友的评论,引起我的共鸣:SQL FOREIGN KEY 约束原创 2020-07-17 19:55:52 · 7932 阅读 · 0 评论 -
Echarts使用(附MySQL列转行示例)
Echarts使用(附MySQL列转行示例)echarts官网页面引入<script src="/echarts.min.js"></script>或者网上路径<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>html<div id="echartsLine" style="width: 600px;height:300px;ma原创 2020-07-14 16:26:37 · 406 阅读 · 0 评论 -
四:ShardingProxy分库分表实战及同类产品选型对比
目录一、ShardingProxy快速使用1、ShardingProxy部署2、ShardingProxy使用3、ShardingProxy的服务治理4、Shardingproxy的其他功能5、ShardingProxy的SPI扩展二、ShardingSphere总结三、与其他相关产品的对比一、ShardingProxy快速使用 ShardingProxy的功能同样是分库分表,但是他是一个独立部署的服务端,提供统一的数据库代理服务。注意,ShardingPro.翻译 2021-04-25 13:49:35 · 602 阅读 · 0 评论 -
三:ShardingSphere内核原理及核心源码剖析
这一部分,我们主要了解ShardingSphere进行分库分表的底层原理,并且深入到源码了解分库分表的实际运行过程。一方面,我们之前在学习ShardingJDBC时,积累了大量的测试实例,对于学习底层原理是非常好的学习入口。另一方面,也是为了后面学习ShardingProxy做准备。因为对于ShardingProxy,如果只是学会几个简单的配置和指令,是无法在实际工作中用好的。而ShardingProxy作为一个黑盒产品,要通过ShardingProxy来了解底层原理是比较困难的。一、内核剖析翻译 2021-04-25 13:37:47 · 1472 阅读 · 0 评论 -
二:ShardingJDBC核心概念与快速实战
目录一、ShardingSphere二、ShardingJDBC实战1、核心概念:2、测试项目介绍3、快速实战4、ShardingJDBC的分片算法5、ShardingSphere的SQL使用限制6、分库分表带来的问题7、分库分表方案设计实战一、ShardingSphere ShardingSphere是一款起源于当当网内部的应用框架。2015年在当当网内部诞生,最初就叫ShardingJDBC。2016年的时候,由其中一个主要的开发人员张亮,带入到京.原创 2021-04-25 13:02:02 · 1500 阅读 · 0 评论 -
一、MySQL主从架构及读写分离实战
目录一、实验目的与环境二、基础环境介绍三、搭建主从集群1、理论基础2、同步的原理3、搭建主从集群3.1 配置master主服务器3.2 配置slave从服务3.3 主从集群测试3.4 集群搭建扩展:3.5、GTID同步集群4、集群扩容5、半同步复制1、理解半同步复制2、搭建半同步复制集群6、主从架构的数据延迟问题:四、MySQL的高可用方案--了解1、MMM2、MHA3、MGR五、分库分表1、分库分表有什么用2.原创 2021-04-25 12:52:02 · 325 阅读 · 0 评论