
mysql
文章平均质量分 95
mysql核心知识为索引,锁,事务等
daiwei-dave
剖开表象,理解实质.一个领域深入的越深,扩展另一个领域时则更全面
展开
-
mysql高可用架构设计
数据库中的数据在主库完成更新后,是异步同步到每个从库上的,这个过程有一个微小的时间差,这个时间差叫主从同步延迟。正常情况下,主从延迟非常小,不超过 1ms。但即使这个非常小的延迟,也会导致在某一个时刻,主库和从库上的数据是不一致的。应用程序需要能接受并克服这种主从不一致的情况,否则就会引发一些由于主从延迟导致的数据错误。主备切换可能是一个主动运维动作,比如软件升级、主库所在机器按计划下线等,也可能是被动操作,比如主库所在机器掉电。接下来,我们先一起看看主动切换的场景。原创 2024-03-04 13:50:48 · 1365 阅读 · 0 评论 -
mysql服务治理
在数据库性能优化的过程中,了解IOPS(Input/Output Operations Per Second,即每秒输入/输出操作数)是至关重要的。IOPS是衡量数据库磁盘性能的重要指标之一,可以帮助我们了解数据库在处理输入输出操作时的效率和吞吐量。IOPS = 请求的IO总数 / 测试时间IOPS的数值受多个因素的影响,主要包括以下几个方面:1.硬件设备数据库的硬件设备对IOPS有着直接的影响。例如,硬盘类型(机械硬盘还是固态硬盘)、硬盘容量、硬盘转速等都会影响IOPS的数值。原创 2024-03-01 10:02:33 · 1490 阅读 · 0 评论 -
mysql基础
6一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是8;但是如果重启(上文中提到的)MySQL的话,这条记录的ID是5。因为InnoDB表只把自增主键的最大ID记录到内存中,所以重启数据库或者对表OPTIMIZE操作,都会使最大ID丢失。但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是8。因为MylSAM表会把自增主键的最大ID记录到数据文件里面,重启MYSQL后,自增主键的最大ID也不会丢失。原创 2024-02-28 15:06:27 · 358 阅读 · 0 评论 -
mysql事务
VALUES (4, 1100, 100000070001, 100000057004, 'dwtest2', '戴维test', 1, 1, 1, '2020-12-10 11:38:58', '2020-12-19 13:52:58', 0);VALUES (4, 1100, 100000070001, 100000057004, 'dwtest2', '戴维test', 1, 1, 1, '2020-12-10 11:38:58', '2020-12-19 13:52:58', 0);原创 2024-02-27 15:14:53 · 1158 阅读 · 0 评论 -
mysql-MVCC
MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它是通过读取历史版本的数据, 来降低并发事务冲突, 从而提高并发性能的一种机制读取数据时通过一种类似快照的方式将数据保存下来,这样读锁就和写锁不冲突了,不同的事务session会看到自己特定版本的数据版本链它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。原创 2024-02-23 14:28:57 · 1027 阅读 · 0 评论 -
mysql-索引
在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址,然后访问所在行相应的数据。索引是一个将索引列按照一定顺序排序,并维护到一种存储结构中如B+树或者hash列表中。在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。自我总结:索引其实就是一种维持一种特殊顺序的数据结构。原创 2024-02-19 16:52:02 · 1272 阅读 · 0 评论 -
mysql架构设计
参考架构图1:第一层,即最上一层,所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等。第二层值得关注。这是MySQL的核心部分。通常叫做 SQL Layer。在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断, sql解析,行计划优化, query cache 的处理以及所有内置的函数(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视 图等。原创 2024-01-19 16:52:28 · 1444 阅读 · 0 评论 -
mysql-锁
一、基础概念锁是数据库系统区分与文件系统的一个关键特性。为了保证数据一致性,必须有锁的介入。数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。mysql锁主要是为了解决并发写数据时的一种安全机制。lock与latch这里还要区分锁中容易令人混淆的概念lock与 latch。在数据库中,lock与 latch都可以被称为“锁”。但是两者有着截然不同的含义,本章主要关注的是lock。latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续原创 2021-01-24 19:47:17 · 4223 阅读 · 1 评论 -
mysql实战总结
1.先删除再插入 代码如下:<!--插入不成功,则删除冲突的在插入--> <insert id="batchAdd" parameterType="Object"> REPLACE into t_store_task(task_id,store_no,store_name,store_sale_task) valu原创 2017-11-30 10:24:22 · 1076 阅读 · 1 评论 -
关系型数据库连接表的几种方式
一.SQL 左外连接,右外连接,全连接,内连接 a表 id name b表 id job parent_id 1 张3 1 23 1 2 李四 2 34 2原创 2017-12-01 16:24:35 · 9164 阅读 · 0 评论 -
mysql和oracle的sql语法
1.插入语句:1)oracle<insert id="add" parameterType="Object"> <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id"> SELECT T_TASK_SEQ.NEXTVAL as id from DUAL原创 2017-12-12 14:09:43 · 360 阅读 · 0 评论