![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
mysql
文章平均质量分 80
mysql数据库
红丶
Stay hungry, stay foolish.
展开
-
mysql 压力测试
mysql 版本:5.7linux:centos7压测工具:sysbench安装sysbenchcurl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bashsudo yum -y install sysbenchsysbench --version进入mysql 创建测试数据库,测试用户并授权CREATE DATABASE test_db;CREATE原创 2021-02-11 13:45:23 · 1246 阅读 · 2 评论 -
mysql 是怎么在磁盘上是存储 NULL 的?
大家知道一般表中char,vachar这些字段都是有值的,那如果某个字段允许为空,且值确实为空,MySql又是怎么处理的呢?是不是直接存储NULL呢?假设这个字段的NULL值我们在磁盘上存储的时候,就是按照“NULL”这么个字符串来存储,是不是很浪费存储空间?因为字符串要占用空间的啊(一个 NULL 字符串要占用四个字符呢),本来他就是个NULL,说明什么值都没有,你还给他存个“NULL”字符串干什么呢?NULL值列表NULL值列表,顾名思义,说的就是你一行数据里可能有的字段值是NULL,比如你的原创 2021-02-02 22:01:38 · 1683 阅读 · 0 评论 -
你知道 mysql varchar字段是怎么存储的吗?
大家对mysql一定不陌生吧,平时我们使用一些增删改查呀,无非就是对某个数据库的一些表,一些字段进行操作,这些都是抽象的概论,那么你知道对数据页中的每一行数据,他在磁盘上是怎么存储的?其实这里涉及到一个概念,就是行格式。Mysql 目前有4种行格式:Redundant、Compact、Dynamic、Compressed,其中Compact和Dynamic应用较广泛,本文主要介绍Compact格式,Dynamic与Compact行格式很像,差异在于页面溢出的处理上;Compact格式:变长字段(记原创 2021-02-02 20:58:34 · 1996 阅读 · 2 评论 -
一条更新SQL,究竟发生了什么?
缓冲池InnoDB存储引擎中有一个非常重要的放在内存里的组件,就是缓冲池(Buffer Pool),这里面会缓存很多的数据,以便于以后在查询的时候,万一你要是内存缓冲池里有数据,就可以不用去查磁盘了,我们看下图。我们的Java系统对数据库执行的增删改操作,其实主要就是对这个内存数据结构中的缓存数据执行的。配置Buffer Pool大小Buffer Pool本质其实就是数据库的一个内存组件,一片内存数据结构,所以这个内存数据结构肯定是有一定的大小的,不可能是无限大的。Buffer Pool默认情况原创 2021-01-29 20:06:25 · 187 阅读 · 0 评论 -
你知道一条SQL语句在mysql中如何执行的吗?
数据库连接池我们的系统中每个线程在每次访问数据库的时候,都基于MySQL驱动去创建一个数据库连接,然后执行SQL语句,然后执行完之后再销毁这个数据库连接。大家觉得这样合理吗?可能我们的系统中有成百个线程会并发的频繁创建数据库连接,执行SQL语句,然后频繁的销毁数据库连接,那效率肯定很低下。所以一般我们会使用一个数据库连接池,也就是说在一个池子里维持多个数据库连接,让多个线程使用里面的不同的数据库连接去执行SQL语句,然后执行完SQL语句之后,不要销毁这个数据库连接,而是把连接放回连接池子中,后续还可原创 2021-01-29 17:57:47 · 265 阅读 · 4 评论 -
MySQL 主从复制原理
什么是mysql的主从复制?MySQL 主从复制指的是数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。这里所说的数据可以是主数据库中的所有数据库或者特定的数据库,或者特定的表。MySQL 主从复制原理主库将数据变更写入二进制 binlog 日志。从库连接到主库之后,从库有一个 IO 线程,将主库的二进制 binlog 日志拷贝到自己本地,写入 relay 中继日志中。接着从库中有一个 SQL 线程会从 relay 中继日志读取 binlog,然后执行 binlog 日志中的内容原创 2020-12-17 22:06:12 · 91 阅读 · 1 评论 -
MySQL 集群方案之PXC集群
简介Percona XtraDB Cluster(简称PXC)是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server 。其 包括了Write Set REPlication补丁,使用Galera 2.0库,这是一个针对事务性应用程序的同步多主机复制插件。Percona Server是MySQL的改进版本,使用 XtraDB 存储引擎,在功能和性能上较 MySQL 有着很显著的提升,如提升了在高负载情况下的 InnoDB 的性能,为 DBA 提供了一些非常有用的性能诊断工具,另外原创 2020-10-24 14:08:08 · 397 阅读 · 0 评论 -
HAProxy负载均衡mycat集群
测试环境mysql-master1 : 192.168.130.128:3306mysaql-slave1:192.168.130.128:3307mysql-master2 : 192.168.130.128:3308mysaql-slave2:192.168.130.128:3309db:my_testtable:t_usercreate table t_user(id int primary key auto_increment,name varchar(20),age int);m原创 2020-10-23 17:48:27 · 194 阅读 · 1 评论 -
docker 搭建mysql主从复制
关于主从复制的原理在之前一篇文章里面已经说过了,这里就不过多赘述了,本文主要讲解使用docker的搭建过程。主从配置需要注意的地方:主DB server和从DB server数据库的版本一致主DB server和从DB server数据库数据一致主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一拉取镜像Percona Server为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负原创 2020-10-23 16:09:35 · 121 阅读 · 0 评论 -
mysql主从复制
本文说明如何在一台物理计算机上使用三个MySQL Server实例创建复制组。这意味着需要三个数据目录,每个服务器实例一个,并且需要独立配置每个实例。此过程假定已下载MySQL Server并将其解压缩到名为的目录中mysql-5.7。每个MySQL服务器实例都需要一个特定的数据目录。创建一个名为的目录data,然后在该目录中为每个服务器实例(例如s1,s2和s3)创建一个子目录,并初始化每个目录mysql-5.7/bin/mysqld --initialize-insecure --basedir=$原创 2020-10-06 11:58:09 · 96 阅读 · 1 评论 -
Mysql 数据库设计优化
数据库表字段类型优化用尽量少的存储空间来存数一个字段的数据;使用varchar类型时尽量减少长度。IP地址最好使用int类型。固定长度的类型最好使用char,例如:邮编。能使用tinyint就不要使用smallint,int。最好给每个字段一个默认值,最好不能为null。使用简单的数据类型,int要比varchar类型在mysql处理上简单。(int类型存储时间是最好的选择)尽可能的使用not null定义字段。(innodb的特性所决定,非not null的值,需要额外的在字段存储,同时原创 2020-09-22 17:24:30 · 118 阅读 · 0 评论 -
Mysql 索引优化
创建索引在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。ALTER TABLEALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。ALTER TABLE table_name ADD INDEX index_name (column_list)ALTER TABLE table_name ADD UNIQUE (column_list)ALTER TABLE table_name AD原创 2020-09-21 22:56:39 · 60 阅读 · 0 评论 -
Mysql 性能优化
Max函数优化我们有一张学生表select * from student我们想知道学生表中的最大年龄select MAX(age) from student;查看执行计划explain select MAX(age) from student\G可以看到进行了全表扫描,效率并不高那么要如何优化呢?很简单,给age这一列创建一个索引create index inx_age on student(age);创建索引后再次查看执行计划explain select MAX(ag原创 2020-09-21 22:25:27 · 85 阅读 · 0 评论 -
数据库的备份与恢复
备份命令在mysql的安装目录的bin目录下有mysqldump命令,可以完成对数据库的备份。语法:mysqldump -u 用户名 -p 数据库名> 磁盘SQL文件路径mysqldump -uroot -pqwe123 test_db >C:\Users\Lenovo\Desktop\mydb.sql由于mysqldump命令不是sql命令,需要在dos窗口下使用。注意:在备份数据的时候,数据库不会被删除。可以手动删除数据库。同时在恢复数据的时候,不会自动的给我们创建数据库,仅仅原创 2020-09-16 22:40:07 · 304 阅读 · 0 评论 -
Navicat连接阿里云mysql
在工作和学习中时常需要我们使用数据库,当我们有了一台云服务器后怎么远程连接服务器中的数据库呢?本文将详细介绍用navicat成功连接到云服务器mysql的过程。首先云服务器需要安装mysql以ubantu为例sudo apt-get install mysql-server-5.7安装的过程中,需要你输入mysql root用户登录密码,需要牢记这个密码。mysql服务的启动和停止#启动service mysql start#停止service mysql stop#重启servic原创 2020-05-28 09:24:26 · 2454 阅读 · 1 评论 -
超详细的mysql事务和锁,彻底搞懂各种隔离级别
什么是事务?事务是作为单个逻辑单元所执行的一系列操作,它是一个最小的不可再分的工作单元。比如新建一个数据库或表格,对表数据的插入、更 新、删除,执行一个存储过程或函数等,这些都是一个事务。事务的特性事务有 ACID 四个基本要素。A:Atomicity 原子性,事务是单独逻辑单元,是最小单元,是一个整体,不可再分。一个逻辑单元要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。C:con原创 2020-05-26 10:37:40 · 4311 阅读 · 3 评论 -
mysql慢查询日志和执行计划
什么是慢查询日志慢查询日志是MySQL提供的一种日志记录,它记录了在查询过程中性能不好的SQL语句,我们可以设置long_query_time的值,当SQL语句的执行时间超过设置的long_query_time值时,这条语句就会被记录在慢查询日志中。Mysql数据库默认关闭了慢查询日志,需要我们手动开启。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。为什么要开启慢查询日志慢查询日志可以跟踪有问题的查询语句,通过分析慢查询日志我们可以知道哪些SQL语句执行的效率低下,以便对SQL语句进原创 2020-05-24 15:40:35 · 1555 阅读 · 0 评论 -
一文揭开Mysql索引本质
文章目录什么是索引索引的分类索引的本质HASHB+树Mysql存储引擎InnoDBMyISAM试验结语什么是索引众所周知,索引是用来加快数据库查询速度的,试想一条sql语句:select * from my_table where id = 10000,如果没有索引,那么就必须要遍历整张表,直到找到id=10000这一行数据,这样做无疑是低效的。而如果在id这一列上建立了索引,就可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可以极大的提高查询速度。索引的分类普通索引:仅用来加原创 2020-05-12 18:55:04 · 1372 阅读 · 0 评论 -
mysql视图和存储过程
查看已有的学生表select * from student;将jack的年龄修改为23update student set age=23 where id=5;创建一个成绩表,外键关联学生表create table achievement_tb(a_id int primary key auto_increment,s_id int,score float not null,fo...原创 2020-05-04 19:42:56 · 1195 阅读 · 0 评论 -
用触发器写日志记录
首先先创建一个学生表create table student(id int primary key auto_increment,name varchar(20),sex enum("male","female"),age int);创建一个触发器,不允许年龄小于0或者大于100delimiter % create trigger student_age before insert on ...原创 2020-05-03 17:47:22 · 3210 阅读 · 0 评论