MySQL
介绍mysql专题
奔跑的扫地僧
在代码的世界中,知识需要分享,代码需要open source,世界才能大一统。世界本没有界限,人类的思维限定了国界。
展开
-
Mysql 中sql语句的执行流程
mysql 中想要弄清楚一条语句的执行过程,首先需要弄清楚mysql 的执行过程。我这里简单总结绘图,如下:原创 2022-03-01 12:04:02 · 472 阅读 · 0 评论 -
Mycat中间件初入讲解
如果大家在平时的公司项目开发过程中,用的是mysql,当到了一定的数据量之后。会考虑对mysql进行分库分表的操作。那么在这个过程中会用到一款工具 mycat首先第一问:什么是mycat?我这里找了一段觉得比较完整的截图,如下。这里补充一句,虽然mycat支持多种数据库,但实际工作中我们还是在mysql数据库场景下用得最多。第二问:使用mycat的整体思想架构。第三问:实际怎么上手?这里举一个例子,linux服务器上的步骤。另外备注下,现在mycat网上最新已经到了2.0版本,推原创 2022-02-27 09:32:22 · 666 阅读 · 0 评论 -
Mysql8-新特性-公用表表达式
mysql8引入了公用表表达式什么是公用表表达式?答:公用表表达式是一个命名的临时结果集。它存在于单个查询语句中,主要作用就是可以代替子查询,并且可以被后面的查询多次引用。普通公用表表达式的语法结构:WITHCTE名称 AS (子查询)SELECT|DELETE|UPDATE 语句;普通公用表表达式类似于子查询,不过,跟子查询不同的是,它可以被多次引用,而且可以被其他的普通公用表表达式所引用。假设我们有一个商品信息表(demo.goodsmaster),它保存的是商品信息,还原创 2021-12-11 11:04:30 · 782 阅读 · 0 评论 -
Mysql数据库的索引使用-系列10
首先介绍下索引:MySQL 中的索引,相当于图书馆的检索目录,它是帮助 MySQL 系统快速检索数据的一种存储结构。我们可以在索引中按照查询条件,检索索引字段的值,然后快速定位数据记录的位置,这样就不需要遍历整个数据表了。而且,数据表中的字段越多,表中数据记录越多,速度提升越是明显。索引的分类:1、单字段索引你可以通过 CREATE 语句直接给已经存在的表创建索引;可以在创建表的同时创建索引;可以通过修改表来创建索引。CREATE INDEX 索引名 ON TABLE 表名原创 2021-11-20 08:56:46 · 810 阅读 · 0 评论 -
Mysql数据库常用的数学计算函数、字符串处理函数、条件判断函数-系列09
mysql常用的 数值处理函数 有以下几种:分别是取整函数 ROUND()、CEIL()、FLOOR(),绝对值函数 ABS() 和求余函数 MOD()。向上取整 CEIL(X) 和 CEILING(X):返回大于等于 X 的最小 INT 型整数。向下取整 FLOOR(X):返回小于等于 X 的最大 INT 型整数。舍入函数 ROUND(X,D):X 表示要处理的数,D 表示保留的小数位数,处理的方式是四舍五入。ROUND(X) 表示保留 0 位小数。ABS(X)表示获取 X 的绝对值;原创 2021-11-20 08:04:25 · 757 阅读 · 0 评论 -
Mysql数据库的各类时间函数使用-系列08
mysql数据库的时间函数不多,网上找了几张图,总结得很全温馨提醒:MySQL 中获取的时间,其实就是 MySQL 服务器计算机的系统时间。如果你的系统有一定规模,需要在多台计算机上运行,就要注意时间校准的问题。比如我们的信息系统受门店经营环境和操作人员的素质所限,有时会遇到误操作、停电等故障而导致的计算机系统时间失准问题。这对整个信息系统的可靠性影响非常大。解决方法有两类:第一种方法是,可以利用 Windows 系统自带的网络同步的方式,来校准系统时间。第二种办法就是...原创 2021-11-18 22:09:39 · 625 阅读 · 0 评论 -
Mysql数据库的表外键约束-系列07
外检约束,当前各公司的规范不一。例如很多公司为了未来的业务可拆分,系统性能,规定表不能创建外检约束。在应用层使用逻辑进行数据的校验。但是有些场景下,我们又觉得创建外检约束更奈斯。所以这里还是写下:-- 定义外键约束:CREATE TABLE 从表名(字段 字段类型....CONSTRAINT 外键约束名称FOREIGN KEY (字段名) REFERENCES 主表名 (字段名称));ALTER TABLE 从表名 ADD CONSTRAINT 约束名 FOREIGN KEY 字段原创 2021-11-17 21:08:44 · 1147 阅读 · 0 评论 -
Mysql 表的增删改查语句- 系列06
直接上语句INSERT INTO 表名 [(字段名 [,字段名] ...)] VALUES (值的列表); INSERT INTO 表名 (字段名)SELECT 字段名或值FROM 表名WHERE 条件 DELETE FROM 表名WHERE 条件 UPDATE 表名SET 字段名=值WHERE 条件SELECT *|字段列表FROM 数据源WHERE 条件GROUP BY 字段HAVING 条件ORDER BY 字段LIMIT 起始点,行数...原创 2021-11-14 16:27:22 · 365 阅读 · 0 评论 -
Mysql数据库表的约束-系列05
MySQL常见的几种约束如下:默认值约束:就是给字段设置一个默认值。非空约束:就是声明字段不能为空值。唯一性约束:就是声明字段不能重复。自增约束:就是声明字段值能够自动加 1,且不会重复。实际中常使用的sql语句如下:CREATE TABLE(字段名 字段类型 PRIMARY KEY);CREATE TABLE(字段名 字段类型 NOT NULL);CREATE TABLE(字段名 字段类型 UNIQUE);CREATE TABLE(字段名 字段类原创 2021-11-14 16:17:57 · 701 阅读 · 0 评论 -
Mysql数据库的数据类型介绍与经验总结-系列04
mysql数据类型介绍:MySQL常见的数据类型如下:1、整数类型(TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT)2、浮点数类型(FLOAT、DOUBLE、REAL)定点数类型:DECIMAL浮点数类型是把十进制数转换成二进制数存储,DECIMAL 则不同,它是把十进制数的整数部分和小数部分拆开,分别转换成十六进制数,进行存储。这样,所有的数值,就都可以精准表达了,不会存在因为无法表达而损失精度的问题。金融行业选用。3、.原创 2021-11-14 15:57:28 · 739 阅读 · 0 评论 -
mysql常见的8种语句-系列03
平常使用数据库时,常用的语句如下:-- 创建数据库CREATE DATABASE demo;-- 删除数据库DROP DATABASE demo;-- 查看数据库SHOW DATABASES;-- 创建数据表:CREATE TABLE demo.test( barcode text, goodsname text, price int); -- 查看表结构DESCRIBE demo.test;-- 查看所有表SHOW TABLES;-- 添加主键ALTE原创 2021-11-14 12:54:27 · 652 阅读 · 0 评论 -
Windows10环境下用SQLyog连接mysql8-系列02
上一篇文章,已经写了如何在windows 10下安装mysql8 当然,我比较喜欢解压版的安装。看到很多人都用安装版的,所以他们的图形化界面工具用的是mysql的workbench。我比较喜欢简单点的,所以才用了sqlyog来连接本地的mysql数据库。首先确认自己电脑的mysql服务是不是已经已启动,如果没有,参考我的上一篇文章,启动下。如何判断有没有启动呢?鼠标右击我的电脑→管理→服务和应用程序→服务 能看到mysql已经启动即可。如下图然后打开我们的图形化界面工具SQLyog...原创 2021-11-14 11:57:10 · 847 阅读 · 0 评论 -
mysql8的windows安装步骤-系列01
第一步:我们先去官网下载解压包:MySQL :: Download MySQL Community Server第二步:安装mysql-8.0.27-winx64.zip下载完成后,mysql-8.0.27-winx64重命名mysql-8.0.27 我解压放在了这个路径:E:\RDTools\mysql8\mysql-8.0.27进入mysql-8.0.27文件夹2.1. 创建data文件夹2.2. 新增my.ini文件,配置如下:[mysql]# 设置mysql客...原创 2021-11-13 16:03:54 · 140 阅读 · 0 评论 -
MySQL的MVCC解释
MVCC定义:Multiversion concurrency control多版本并发控制仅仅是一种概念术语,并没有统一的实现标准。核心理念就是数据快照,不同的事务访问不同版本的数据快照,从而实现不同的事务隔离级别。用于数据库提供并发访问控制的并发控制技术。与MVCC相对的,是基于锁的并发控制。MVCC最大的好处就是大家耳熟能详的:读不加锁,写依旧加锁,读写不冲突。Mysql中InnoDB引擎通过事务的undo-log巧妙地实现多版本的数据快照。数据库的事务有时需要进行回滚操作,这..原创 2021-03-20 16:41:35 · 213 阅读 · 0 评论 -
图解Mysql的B+树结构
一图解疑惑原创 2021-03-13 23:13:11 · 282 阅读 · 0 评论 -
Mysql架构
这篇文章,持续补充:原创 2021-03-13 11:05:14 · 72 阅读 · 0 评论 -
SQL优化经验30条
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用NOT NULL填充数据库.备注、描述、评论之类的可以设置为NULL,其他的,最好不要使用NULL。不要以为NULL不需要空间,比如:char(100)型...原创 2021-03-12 10:14:35 · 201 阅读 · 0 评论 -
MySQL性能优化专题篇---4/4(主从复制)
1,就算MYSQL拆成了多个,也必须分出主和从,所有的写操作都必须要在主MYSQL 上完成;2,所有的从MYSQL的数据都来自于(同步于)主MYSQL;3,既然涉及到同步,那一定有延迟;有延迟,就一定可能在读的时候产生脏数据;所以,能够在从MYSQL上进行的读操作,一定对实时性和脏数据有一定容忍度的数据;比如,登陆日志,后台报表,首页统计信息来源;文章;资讯;SNS消息;4,在我们的P2P中,做主从,绝大部分的读操作,都必须在主MYSQL上执行;只有(登陆日志,报表,满标一审列表,...原创 2021-02-27 13:47:05 · 199 阅读 · 0 评论 -
MySQL性能优化专题篇---3/4
innobuffer和事务1,Innodb_buffer_pool_size:innodb的缓存,可以用于缓存索引,同时还会缓存实际的数据; innodb_buffer_pool_size 参数用来设置Innodb 最主要的Buffer(Innodb_Buffer_Pool)的大小,对Innodb 整体性能影响也最大,可以按需要设置大一些;2,innodb中的事务处理:1,理解Innodb事务机制:1,事务在buffer中对数据进行修改;2,事务的变化记录在事务日志中;...原创 2021-02-27 13:42:31 · 100 阅读 · 0 评论 -
MySQL性能优化专题篇---2/4
1 合理使用索引1.1索引和索引的优化:索引的原理:把无序的数据变成有序的查询;索引:1,索引的物理结构: 1,数据库文件存储的位置:my.ini配置文件中dataDir对应的数据目录中; 2,每一个数据库一个文件夹; 1,MYISAM引擎:每一个表(table_name)--> table_name.MYI:存放的是数据表对应的索引信息和索引内容; table_name.FRM:存放的是数据表...原创 2021-02-27 13:40:31 · 243 阅读 · 0 评论 -
MySQL性能优化专题篇---1/4
最近研究mysql的性能优化,网上学习到部分知识,总结下来,分享下。这个专题计划写4篇文章,目前先提供第一部分:总体大纲如下图:第一篇先写:影响性能的因素一、影响性能的因素:1.1不合理的需求:需求:一个论坛帖子总量的统计附加要求:实时更新 1,初级阶段:SELECT COUNT(*) 2,新建一个表,在这个表中更新这个汇总数据(频率问题) 3,真正的问题在于,实时?创建一个统计表,隔一段时间统计一次并存入;1.2无用功能堆积: 1,无用...原创 2021-02-21 10:21:18 · 180 阅读 · 2 评论 -
Mysql执行计划参数深入2
一张表格补充下Mysql执行计划参数深入的补充:原创 2021-01-27 23:10:06 · 92 阅读 · 0 评论 -
SQL性能优化的思考
实际开发过程中,SQL性能的优化是最常见的需要思考的问题。那么实际我们再开发过程中应该如何考虑?或者别人问你时,大概怎么回答帮助别人?总结下,大概有如下几点:SQL 优化的原则1,优先优化高并发低消耗的SQL; 1,1小时请求1W次,1次10个IO; 2,1小时请求10次,1次1W个IO;从IO消耗,优化难度,CPU消耗进行比较;2,定位性能瓶颈;采用一...原创 2020-03-31 10:18:16 · 180 阅读 · 0 评论 -
MySQL准确定位性能瓶颈
MySQL自带的准确定位性能瓶颈的profiling 可以用来准确定位一条sql的性能瓶颈Query Profiler是MYSQL5.1之后提供的一个很方便的用于诊断Query执行的工具,能够准确的获取一条查询执行过程中的CPU,IO等情况;1,开启profiling:set profiling=1;2,执行QUERY,在profiling过程中所有的query都可以记录下来;3,查...原创 2020-03-31 09:40:26 · 551 阅读 · 0 评论 -
MySQL执行计划具体参数含义
MySQL针对只有SQL性能的优化其实,很简单,因为MySQL给我们提供了一个单词 explain,我们通过这个单词就可以看出SQL在运行的过程中是不是按照我们预计的执行计划运行的,从而进行调优。具体的使用方式:expalin "实际的SQL语句";执行完毕上面的句子后,我们会得到如下的返回结果,以下,列出这些参数的含义:返回结果: 1,ID:执行查询的序列号;...原创 2020-03-29 10:31:07 · 290 阅读 · 0 评论 -
MySQL索引的使用与创建索引的原则
继续上一篇的介绍,这里记录索引使用的限制和创建索引的选择原创 2020-03-24 22:07:35 · 189 阅读 · 0 评论 -
MySQL索引原理介绍
最近看了一个网上的MySQL优化的视频,视频讲解得还不错,我就顺道截图记录下来。这里仅仅写MySQL索引的介绍:在此感谢,网上视频分享的那位老师。...原创 2020-03-23 08:19:23 · 132 阅读 · 0 评论 -
Mysql执行计划参数深入
Mysql的执行计划查看很简单,一个单词explain就可以搞定了。举一个例子:Mysql>explain select * from student where sid >=0 and sid<=1 \GId:1 (select 查询序列号id相同,执行顺序由上至下;id不同,id值越大优先级越高,越先被执行)Select_type:SIMPLE(查询数据的...转载 2019-06-29 10:38:54 · 170 阅读 · 0 评论 -
MySQL入门了解之01
MySQL学习总结最近公司的新核心任务在使用mysql 所以鄙人就开始了解mysql一点相关知识,因为值钱一直用的都是Oracle数据库所以先写下,最常见的差别。Oracle的条件语句执行过程是从右到左。MySQL是从左到右。 另外MySQL支持多表关联同时更新,Oracle实测是不行的。如下句子,在MySqL可以执行,但Oracle不行。Demo: UPDATE student...原创 2019-06-27 23:42:46 · 133 阅读 · 0 评论