
mysql数据库
文章平均质量分 75
mysql数据库
爱上口袋的天空
一步一流年,止不住的脚步,挽不回的青春!
展开
-
Linux下安装MySQL8的客户端
背景:需要做一个这样的需求,Linux下通过MySQL的下面的命令,完成文件加载到另一个MySQL服务器的需求,命令如下:mysql -h172.18.22.100 -uroot -p’123!@#’ ,但是目前这个服务器上没有MySQL相应的组件,之前安装过MySQL的服务端和客户端,现在想着是不是只安装MySQL的客户端就够用了。这样也能节省系统开销,不需要安装服务端了注意:安装客户端的话,只安装以下几个安装包就够用了(note:一定要按这个顺序来安装,否则会有报错的提示)原创 2024-01-26 15:11:23 · 1444 阅读 · 0 评论 -
MySQL的索引数据结构
索引的数据结构使用的是B+树,那为什么使用B+树而不是二叉查找树、平衡二叉树或者B树呢,接下来,我们来讲讲B+树的由来。官方介绍索引是帮助MySQL高效获取数据的数据结构。简单来讲,数据库索引就像是书前面的目录,能加快数据库的查询速度。事实上,索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。转载 2023-10-16 14:11:26 · 152 阅读 · 0 评论 -
SQL之索引分类
使用索引可以帮助我们从海量的数据中快速定位想要查找的数据,不过索引也存在一些不足,比如占用存储空间、降低数据库写操作的性能等,如果有多个索引还会增加索引选择的时间。当我们使用索引时,需要平衡索引的利(提升查询效率)和弊(维护索引所需的代价)。在实际工作中,我们还需要基于需求和数据本身的分布情况来确定是否使用索引,尽管索引不是万能的,但数据量大的时候不使用索引是不可想象的,毕竟索引的本质,是帮助我们提升数据检索的效率。原创 2023-07-23 11:10:57 · 4129 阅读 · 0 评论 -
SQL之范式设计:数据表的范式有哪些,3NF指的是什么?
我们今天讲解了数据表设计的三种范式。关系型数据库的设计都是基于关系模型的,在关系模型中存在着 4 种键,这些键的核心作用就是标识。在这些概念的基础上,我又讲了 1NF,2NF 和 3NF。我们经常会与这三种范式打交道,利用它们建立冗余度小、结构合理的数据库。有一点需要注意的是,这些范式只是提出了设计的标准,实际上设计数据表时,未必要符合这些原则。一方面是因为这些范式本身存在一些问题,可能会带来插入,更新,删除等的异常情况(这些会在下一讲举例说明),另一方面,它们也可能降低会查询的效率。这是为什么呢?转载 2023-07-23 10:41:36 · 410 阅读 · 0 评论 -
SQL之存储过程
存储过程的英文是 Stored Procedure。它的思想很简单,就是 SQL 语句的封装。一旦存储过程被创建出来,使用它就像使用函数一样简单,我们直接通过调用存储过程名即可。我在前面讲过,存储过程实际上由 SQL 语句和流控制语句共同组成。流控制语句都有哪些呢?这个我稍后讲解。CREATE PROCEDURE 存储过程名称 ([参数列表])BEGIN需要执行的语句END。转载 2023-07-23 10:16:51 · 2850 阅读 · 0 评论 -
SQL之游标
在数据库中,游标是个重要的概念,它提供了一种灵活的操作方式,可以让我们从数据结果集中每次提取一条数据记录进行操作。游标让 SQL 这种面向集合的语言有了面向过程开发的能力。可以说,游标是面向过程的编程方式,这与面向集合的编程方式有所不同。在 SQL 中,游标是一种临时的数据库对象,可以指向存储在数据库表中的数据行指针。这里游标充当了指针的作用,我们可以通过操作游标来对数据行进行操作。转载 2023-07-23 10:02:19 · 5275 阅读 · 0 评论 -
MySQL之视图
视图是由数据库中的一个表或多个表导出的虚拟表,是一种虚拟存在的表,方便用户对数据的操作。转载 2023-07-16 16:27:58 · 499 阅读 · 0 评论 -
Linux排错记录关于net.ipv4.ip_forward
今日,使用部署应用的时候,无法使用IP地址访问,防火墙已经关闭,可以ping通,应用已经配置0.0.0.0。转载 2023-04-12 22:21:57 · 1086 阅读 · 0 评论 -
mysql的索引使用的案例
单表索引优化案例 1)表结构 DROP TABLE IF EXISTS `article`;CREATE TABLE IF NOT EXISTS `article`(`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',`author_id` INT (10) UNSIGNED NOT NULL COMMENT '作者ID',`category_id` INT(10) UNSIGNED NO...原创 2020-09-06 18:28:44 · 1240 阅读 · 0 评论 -
mysql之索引优化案例一
创建表结构以及相关索引 CREATE TABLE staffs(id INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(24)NOT NULL DEFAULT'' COMMENT'姓名',`age` INT NOT NULL DEFAULT 0 COMMENT'年龄',`pos` VARCHAR(20) NOT NULL DEFAULT'' COMMENT'职位',`add_time` TIMESTAMP NOT NULL DEFAULT CURREN原创 2020-09-07 22:41:33 · 265 阅读 · 0 评论 -
mysql之索引优化案例二
永远小表驱动大表 1)优化原则 小表驱动大表,既小的数据集驱动大的数据集 2)案例 Order by 关键字优化 1)order by子句,尽量index方式排序,避免使用filesort排序 2)尽可能在索引列上完成排序操作,遵照索引建的最佳左前缀 3)如果不在索引列上,filesort有两种算法,mysql就要启动双路排序和单路排序 慢日志查询 建表语句 CREATE TABLE dept( id INT UNSIGNED PRIMARY KEY...原创 2020-09-12 21:09:22 · 180 阅读 · 0 评论 -
mysql的sql语句相关优化理论基础
什么是存储引擎? 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。 mysql5.7版本的包含如下存储引擎 InnoDB存储引擎(InnoDB 是系统的默认引擎,支持可靠的事务处理。)和MyISAM存储引擎对比 ...原创 2020-09-06 13:35:13 · 195 阅读 · 0 评论 -
sql语句在mysql中是如何执行的
概览最近开始在学习mysql相关知识,自己根据学到的知识点,根据自己的理解整理分享出来,本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的。一、mysql架构分析下面是mysql的一个简要架构图:mysql主要分为Server层和存储引擎层Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 bin转载 2021-02-24 11:51:40 · 207 阅读 · 0 评论 -
mysql主从复制优缺点
主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现。一、主从复制的好处:数据更安全:做了数据冗余,不会因为单台服务器的宕机而丢失数据 性能大大提升:一主多从,不同用户从不同数据库读取,性能提升 扩展性更优:流量增大时,可以方便的增加从服务器,不影响系统使用 负载均衡:一主多从相当于分担了主机任务,做了负载均衡。二、MySQL主从方案主要作用:1、读写分离,使数据库能支撑更大的并发在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,...转载 2022-03-26 21:13:07 · 5165 阅读 · 0 评论 -
mysql搭建双主双从
一、简介一个主机 m1 用于处理所有写请求,它的从机 s1 和另一台主机 m2 还有它的从机 s2 负责所有读请 求。当 m1 主机宕机后,m2 主机负责写请求,m1、m2 互为备机。架构图如下机器准备:编号 角色 IP地址 1 Master1 192.168.56.20 2 Slave1 192.168.56.21 3 Master2 192.168.56.22 4 Slave2 192.168.56.23转载 2022-03-26 17:51:20 · 460 阅读 · 0 评论 -
mysql主从复制架构搭建以及主从复制模式
1.搭建主库1)创建目录 命令:mkdir -p /data/mysql/master012)进入 /data/mysql/master01目录中创建data和conf文件夹,并且授权 3)在/data/mysql/master01/conf创建my.cnf配置文件,内容如下 #输入如下内容[mysqld]log-bin=mysql-bin #开启二进制日志server-id=1 #服务id,不可重复#出现 [Err] 105...原创 2021-05-22 15:25:52 · 364 阅读 · 0 评论 -
MySQL数据库的集群方案
1.简介 我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案: 其中一个是主库,负责写入数据,我们称之为:写库; 其它都是从库,负责读取数据,我们称之为: 读库; 那么,对我们的要求是:读库和写库的数据一致; 写数据必须写到写库; 读数据必须到读库;2.架构从该系统架构中,可以看出:数据库从之前的单节点变为多节点提供服务 主节点数据,同步到从节点数据 应用程序需要连接到2个...原创 2021-05-22 11:55:17 · 1934 阅读 · 4 评论 -
mysql主从复制原理
1.简介mysql从3.23版本开始提供复制功能,复制是将主库的DDL和DML操作通过二进制日志传递到复制服务器(从库)上,然后从库对这些日志重新执行(重做),从而使得主库和从库保持数据一致。2.为什么要做主从复制?在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。 做数据的热备,主库宕机后能够及时替换主库,保证业务可转载 2021-05-21 22:48:38 · 5312 阅读 · 1 评论 -
MySQL5.7创建用户并授权
MySQL 5.7版本的user表中已经没有了password字段,取而代之的是 authentication_string,同时user表中还有一些没有默认值的字段,如果还通过insert的方式插入新用户,会很麻烦。在网上找到一篇写的挺好的,转载到这里。一. 创建用户命令:create user 'username'@'host' identified by '123456';说明: username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地转载 2021-04-17 14:21:46 · 4209 阅读 · 1 评论 -
centos7安装mysql5.7.33版本
1.卸载系统自带的 mariadb-lib[root@centos-linux ~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64[root@centos-linux ~]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps2.在官网(https://dev.mysql.com/downloads/mysql/)下载安装包 mysql-*.rpm-bund原创 2021-04-17 13:29:53 · 1152 阅读 · 0 评论 -
mysql大数据量删除以及插入导致max_binlog_cache_size的问题
1.业务概述每天需要跑一个定时任务,需要向一张表更新300万条数据,每天数据量都是全量下发,由于事务的问题会导致max_binlog_cache_size问题。2.解决办法建立一张临时表,表结构和要更新的表一样,我们将下发的数据全量写入到这张临时表中,并且我们不使用事务,一旦中间出现问题就停止程序的运行,当写操作完成后直接将临时表和业务部名互换即可。例如:业务表:ISS_SERVICE,那么临时表就是ISS_SERVICE_TEM,第二天下发数据前直接将临时表数据truncate掉原创 2021-04-16 22:00:09 · 847 阅读 · 0 评论 -
clickhouse之TSKV格式
TSKV需要了解的点TSKV格式不适合有大量小列的输出.(因为每一行都是需要输出key,value,会比较浪费) TSKV的效率并不比JSONEachRow差. TSKV支持数据查询和数据导入。 不需要保证列的顺序。 支持忽略某些值,这些列使用默认值,例如0和空白行。复杂类型的值必须指定,无法使用默认值。数据的查询常规的数据查询 使用TSKV格式化之后的查询 命令:select * from escape_demo format TSKV; 可以发现每个数据前面都拼接上了字段名称。原创 2021-04-11 12:31:24 · 462 阅读 · 0 评论 -
mysql数据库迁移相关命令
1、导出指定数据库表结构命令:mysqldump -h8.8.8.8 -P3306 -uroot -proot --default-character-set=utf8 -d --add-drop-table --hex-blob databaseNmae > /home/databaseNmae.sql-h 数据库所在服务器的ip-P 端口号-u 用户名-p 密码--add-drop-table 在每个create语句之前增加一个drop table--hex-blob原创 2021-04-10 12:29:08 · 675 阅读 · 0 评论 -
MySQL为什么会有一大堆在Sleep的进程
1.什么是sleep线程?sleep线程长时间保持客户端与服务端的连接状态2.为什么mysql中会存在sleep线程使用了太多持久连接(持久连接是指连接上了,一直保持着连接不断。 非持久连接则反之) 程序中,没有及时关闭mysql连接 数据库查询不够优化,过度耗时当然,更根本的方法,还是从以上三点排查之(但是见效并不快):程序中,不使用持久链接,即使用mysql_connect而不是pconnect。 程序执行完毕,应该显式调用mysql_close 只能逐步分析系统的SQ.原创 2021-04-06 22:23:25 · 2484 阅读 · 0 评论 -
mysql执行sql报1205错误的解决办法
今天测试环境做性能测试时突然报错了,经排查是数据库执行sql超时。当时执行的sql是这个样子的。SELECT _nextval('doc_no') FROM DUAL ;报错如下:Lock wait timeout exceeded; try restarting transaction怀疑是否有正在执行的事务没有提交,进行查询。select * from information_schema.PROCESSLIST a , information_schema.INNODB_TR转载 2021-04-06 22:03:49 · 3556 阅读 · 0 评论 -
B树与B+树简明扼要的区别
看了很多讲B树和B+树的文章,大多都是围绕各自的特性讲的,第一,树中每个结点最多含有m个孩子(m>=2);第二,……我也是从这些文章里弄懂了各种树的联系与区别,要真写,我可能还不如人家写得好。所以就在这里简明扼要的用几张图记录一下主要区别吧。为了便于说明,我们先定义一条数据记录为一个二元组[key,data],key为记录的键值,key唯一;data为数据记录除key外的数据。B树每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为null。B+树...转载 2021-03-03 18:02:41 · 888 阅读 · 2 评论 -
使用docker安装mysql8.0
拉取指定版本的镜像 docker pull mysql:8.0 查看下载的镜像 命令:docker images 使用root用户创建实例并启动mysql docker run -p 3307:3306 \-e MYSQL_ROOT_PASSWORD=iamp@1234 \-v /mydata/mysql8/data:/var/lib/mysql-files:rw \-v /mydata/mysql8/log:/var/log/mysql:rw \-v /mydata/my...原创 2020-08-20 18:00:01 · 3720 阅读 · 0 评论