MySQL
文章平均质量分 97
MySQL
我爱布朗熊
目前是个学生,仍然在学习阶段
展开
-
MySQL - 读写分离、一主一从、双主双从
读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。MyCat实现读写分离的话,主要通过两个组件来实现:读写分离它的前提是基于主从复制主从复制的原理是基于MySQL的二进制日志Binlog来实现的如果是读的操作,我们就直接连接从节点,如果是写的操作,直接连主节点应用程序不用直接连接MySQL,否则会很繁琐,因为会有多个服务器数据库。原创 2023-06-02 19:44:38 · 3503 阅读 · 0 评论 -
MySQL - 分库分表、MyCat配置、分片规则
单数据库弊端为了解决上述问题,我们需要对数据库进行分库分表处理 将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。 分库分表的形式,主要是两种:垂直拆分和水平拆分。 而拆分的粒度,一般又分为分库和分表。 分库: 对一个数据库来进行拆分,将一个数据库中的数据分散地存储在多个数据库当中 分表:原来存储在一张表结构当中的数据现在要分散地存储在多张表结构中垂直分库:以表为依据,根据业务将不同表拆分到不同库中。特点垂直原创 2023-06-02 14:30:47 · 1853 阅读 · 0 评论 -
MySQL — 主从复制介绍
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),使得从库和主库的数据保持同步。 从库当中把主库的二进制日志文件同步过来并执行了,name这个时候从库的数据和主库的数据也就同步保持一致了,这个过程就称为主从复制。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制主库一般称为Master, 从库一般称为Slave优点主库出现问题,可以快速切换到从库提供服务。原创 2023-06-02 14:28:23 · 447 阅读 · 0 评论 -
MySQL — 日志、错误日志、二进制日志、查询日志、慢查询日志
作用①. 灾难时的数据恢复;②. MySQL的主从复制log_bin二进制文件是开是关当前数据库服务器的binlog日志的基础名称(前缀),具体的binlog文件名需要再该basename的基础上加上编号(编号从000001开始)。binlog的索引文件,里面记录了当前服务器关联的binlog文件有哪些。原创 2023-05-31 10:42:49 · 1285 阅读 · 0 评论 -
MySQL — InnoDB引擎、MySQL架构、事务原理、MVCC
我们之前在这个文章中粗略的介绍了一下InnoDB存储引擎 MySQL——存储引擎与索引应用下面内容以理解为主InnnoDB存储结构图TableSpace: 表空间索引、数据,都是在表空间中存储的,是最外层的逻辑结构。表空间(ibd文件),一个MySQL实例可以对应多个表空间,用于存储记录、索引等数据 在表空间中又包含很多的段(Segment)表空间是由各个段组成的,段分为数据段、索引段、回滚段等InnoDB是索引组织表,数据段就是B+树的叶子结点,索引段即为B+树的非叶子结点InnoDB中原创 2023-05-31 10:39:23 · 498 阅读 · 0 评论 -
MySQL — 锁
锁是计算机协调多个进程和线程并发访问某一资源的机制。 在数据库中,除传统的计算资源(CPU、RAM、I/O)的挣用以外,数据也是一种供许多用户共享的资源。 如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。分类全局锁:锁定数据库中的所有表表级锁:每次操作锁住整张表行级锁:每次操作锁住对应的行数据。全局锁:锁定数据库中的所有表全局锁。原创 2023-05-29 10:29:58 · 1263 阅读 · 0 评论 -
MySQL — 视图、存储过程、触发器
存储过程:事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单:数据库SQL语言层面的代码封装与重用。特点封装、复用 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可可以接收参数,也可以返回数据减少网络交互,效率提升 如果涉及到多条SQL,每执行一次都是一次网络传输。原创 2023-05-29 10:27:45 · 1892 阅读 · 0 评论 -
MySQL — SQL 优化
上面案例能够正常使用索引排序的情况创建索引、联合索引的时候不指定升序排列还是降序排列,默认就是升序排列一个升序,一个降序会出现filesort现象,但是也可以优化,如下所示总结根据排序字段建立合适的索引,多字段排序时,也遵循最左前缀法则。尽量使用覆盖索引。多字段排序, 一个升序一个降序,此时需要注意联合索引在创建时的规则(ASC/DESC)。如果不可避免的出现filesort,大数据量排序时,可以适当增大排序缓冲区大小sort_buffer_size(默认256k)。原创 2023-05-25 21:57:25 · 763 阅读 · 0 评论 -
MySQL——存储引擎与索引应用
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型 创建表时没有指定存储引擎,会赋予一个默认的存储引擎。innodb 存储引擎是 MySQL 5.5 之后的默认引擎。原创 2023-05-25 11:30:35 · 876 阅读 · 0 评论 -
MySQL基础 — 多表查询以及事务管理
问:select * from emp , dept 最终结果为什么是102条? emp 记录17条,dept 记录6条,17*6=102 其实就是员工表emp所有的记录(17) 与 部门表dept所有记录(6) 的所有组合情况,这种现象称为笛卡尔积,在这些组合情况中有许多记录是无用的,我们需要消除笛卡尔积笛卡尔积左边集合与右边集合所有情况怎么消除笛卡尔积? 多表连接时添加条件即可事务。原创 2023-05-25 11:23:29 · 1061 阅读 · 0 评论 -
Mysql基础 — DDL、DML、DQL、DCL、函数、约束
编号(纯数字)员工工号 (字符串类型,长度不超过10位)员工姓名(字符串类型,长度不超过10位)性别(男/女,存储一个汉字)年龄(正常人年龄,不可能存储负数)身份证号(二代身份证号均为18位,身份证中有X这样的字符)入职时间(取值年月日即可)原创 2023-05-25 11:21:31 · 1106 阅读 · 0 评论