MySQL
文章平均质量分 91
MySQL学习
杉杉来啦
coffe in,code out.
展开
-
(18) 读写分离
1 介绍读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。通过MyCat可轻易实现上述功能,不仅可以支持MySQL,也可以支持Oracle和SQL Server。2 一主一从2.1 原理MySQL的主从复制,是基于二进制日志(binlog)实现的。2.2 准备备注:主从复制的搭建,可以参考之前文章中 主从复制 章节中的步骤操作。3 一主一从读写分离MyC原创 2022-04-19 14:30:27 · 581 阅读 · 0 评论 -
(17) 分库分表
1 介绍链接:百度网盘 请输入提取码([提取码:0429],下面将会使用到的脚本资源文件)1.1 问题分析随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈。 CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。为了解决上述问题,需要对数据库进行分库分表处理。...原创 2022-04-19 12:45:27 · 1463 阅读 · 0 评论 -
(16) 主从复制
1 概述主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志(binlog)传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。MySQL 复制的优点主要包含以下三个方面:主库出现问题,可以快速切换到从库提供服务。 实现读写分离,降低主库的访问压力。(主库负责增删改请求,从库负责查询请求) 可以在从库中执行备份,以避免备份期间.原创 2022-04-17 14:16:09 · 252 阅读 · 0 评论 -
(15) 日志
1 错误日志错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中 发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。查看日志位置:showvariableslike'%log_error%';2 二进制日志2.1 介绍二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。...原创 2022-04-17 13:02:30 · 97 阅读 · 0 评论 -
(14) MySQL管理
1 系统数据库Mysql数据库安装完成后,自带四个数据库,具体作用如下:2 常用工具1)mysql该mysql不是指mysql服务,而是指mysql的客户端工具。语法 :mysql [options] [database]选项 :-u,--user=name #指定用户名-p,--password[=name] #指定密码-h,--host=name #指定服务器IP或域名...原创 2022-04-16 18:37:31 · 1225 阅读 · 0 评论 -
(13) InnoDB引擎
1 逻辑存储结构1)表空间表空间是InnoDB存储引擎逻辑结构的最高层, 如果用户启用了参数 innodb_file_per_table(在8.0版本中默认开启),则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个表空间,用于存储记录、索引等数据。2)段段分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment),InnoDB是索引组织表,数据段就是B+树的叶子节.原创 2022-04-16 13:15:12 · 925 阅读 · 0 评论 -
(12) 锁
1 概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。MySQL中的锁,按照锁的粒度分,分为以下三类:全局锁:锁定数据库中的所有表。 表级锁:每次操作锁住整张表。 行级锁:每次操作锁住对应的行数据。2 全局锁2.1 介绍全局锁就是对整个数据库实例加锁原创 2022-04-14 19:17:18 · 955 阅读 · 0 评论 -
(11) 视图/存储过程/触发器
1 视图1.1 介绍视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。1.2 语法1)创建CREATE [OR REPLACE] VIEW视图名称[(列名列表)]ASSELECT语句 [ WITH [CASCADED | LOCAL ] CHECK OPTION...原创 2022-04-13 21:48:59 · 792 阅读 · 1 评论 -
(10) SQL优化
1 插入数据1.1 insert如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化:insertintotb_testvalues(1,'tom');insertintotb_testvalues(2,'cat');insertintotb_testvalues(3,'jerry');.....1)批量插入数据insertintotb_testvalues(1,'Tom'),(2,'Cat'),(3,'Jerry');2)手动...原创 2022-04-12 20:38:21 · 873 阅读 · 0 评论 -
(9) 索引
1 索引概述1.1 介绍索引(index)是帮助MySQL高效获取数据的数据结构 (有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2.2 演示表结构及其数据如下:假如我们要执行的SQL语句为 : select * from user where age = 45 ;1)无索引情况在无索引情况下,就需要从第一行开始扫描,一直扫描到最后一行,我们原创 2022-04-11 13:14:50 · 957 阅读 · 1 评论 -
(8) 存储引擎
1 MySQL体系结构1)连接层最上层是一些客户端和链接服务,包含本地socket通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。2)服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分原创 2022-04-09 13:47:31 · 412 阅读 · 0 评论 -
(7) 事务
1 事务简介事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作 "作为一个整体" 一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。例: 张三给李四转账1000块钱,张三银行账户的钱减少1000,而李四银行账户的钱要增加1000。 这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。正常情况:转账这个操作 需要分为以下这么三步来完成:异常情况:转账这个操作, 也是分为以下这么三步来完成:(在执行第三步是报错了, 这样就导致张三减少100原创 2022-04-08 21:45:42 · 219 阅读 · 0 评论 -
(6) 多表查询
1 多表关系项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对多(多对一) 多对多 一对一1.1 一对多例:部门 与 员工 的关系关系:一个部门对应多个员工,一个员工对应一个部门实现:在多的一方建立外键,指向一的一方的主键1.2 多对多例:学生 与 课程 的关系关系:一个学生可以选修多门课程,一门课程也可以供多个学生选择实现:建立第三张中间表.原创 2022-04-08 12:37:25 · 2939 阅读 · 1 评论 -
(5) 约束
1 概述概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。分类:注:约束是作用于表中字段上的,可以在 创建表 / 修改表 的时候添加约束。案例例:根据需求,完成表结构的创建。需求如下:对应的建表语句为:CREATETABLEtb_user(idintAUTO_INCREMENTPRIMARYKEYCOMMENT'ID唯一标识',namevarchar(10)NOT...原创 2022-04-05 22:17:30 · 772 阅读 · 1 评论 -
(4) 函数
MySQL中的函数主要分为以下四类:字符串函数、数值函数、日期函数、流程函数。3.1 字符串函数MySQL中内置了很多字符串函数,常用的几个如下:1)concat : 字符串拼接selectconcat('Hello','MySQL');2)lower : 全部转小写selectlower('MySQL');3)upper : 全部转大写selectupper('MySQL');4)lpad : 左填充selectlpad('My...原创 2022-04-04 16:29:49 · 617 阅读 · 0 评论 -
(3) 图形化界面工具DataGrip
通过DDL语句执行在命令进行操作,主要存在以下两点问题:会影响开发效率 ; 使用起来,并不直观,并不方便 ;所以在日常的开发中,会借助于MySQL的图形化界面工具,来简化开发,提高开发效率。而目前mysql主流的图形化界面工具,有以下几种:这里选择的是最后一种DataGrip,这种图形化界面工具,功能更加强大,界面提示更加友好,是我们使用MySQL的不二之选。1 安装1)下载相应安装包。安装包网址:https://download.jetbrains.com.cn/datagri原创 2022-04-03 21:39:09 · 2960 阅读 · 6 评论 -
(2) SQL
全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作 关系型数据库 的统一标准。1 SQL通用语法1)SQL语句可以单行或多行书写,以分号结尾。2)SQL语句可以使用 空格/缩进 来增强语句的可读性。3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。4) 注释:单行注释:--注释内容 或#注释内容多行注释:/* 注释内容 */2 SQL分类S...原创 2022-04-03 19:21:59 · 1380 阅读 · 0 评论 -
(1) MySQL概述、安装
1 数据库相关概念2 MySQL数据库2.1 版本官方:MySQLMySQL官方提供了两种不同的版本:社区版本 (MySQL Community Server): 免费, MySQL不提供任何技术支持 商业版本 (MySQL Enterprise Edition): 收费,可以使用30天,官方提供技术支持2.2 下载下载地址:MySQL :: Download MySQL Installer (Archived Versions)2.3 安装1)双击官...原创 2022-04-03 19:20:00 · 678 阅读 · 0 评论