![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 89
zhendeWD
这个作者很懒,什么都没留下…
展开
-
分区表介绍
优化查询:特定查询场景下,分区表拆分可以显著提高查询效率,如特定的日期范围查询、根据某个分区键值排序、查找特定某个分区,均可借助MySQL分区表的方式优化查询效率。查询数据:在查询分区表时,MySQL会根据查询条件中的分区键值范围定位到对应的分区,然后只扫描该分区中的数据,避免无关分区数据的扫描访问,大幅降低查询数据开销。根据转换前的原表的写入时间点,更新分区表的分区定义。通过分区剪枝,优化器会生成一个优化的执行计划,只对涉及的分区进行扫描,从而减少了查询的数据量和处理的开销,提高了查询的性能。原创 2024-02-27 21:51:12 · 869 阅读 · 0 评论 -
数据库锁及批量更新死锁处理
按照加锁规则,会加上 (0,5] ,(5,10] ,(10,15],因为 k = 10 等值查询,最后一条记录是 k = 15,所以退化成 (10,15),最终加的Next key-Lock 是 (0,5] ,(5,10] , (10,15)我们看索引 k 的结构,事务A 加的间隙锁应该是 ((0,0)(5,5)),((5,5)(15,5)),((15,5)(10,10)) 三个间隙锁,事务B 更新操作相当于插入一条(10,0) 的记录,此时需要在间隙锁中插入记录 ((0,0)(3)(25, 30];原创 2023-09-21 20:36:16 · 830 阅读 · 0 评论 -
ShardingSphere(一)分库分表及ShardingSphere基础
为了解决由于数据量过大而导致的数据库性能降低的问题,将原来独立的数据库拆分成若干数据库,把原来数据量大的表拆分成若干数据表,使得单一数据库、单一数据表的数据量变得足够小,从而达到提升数据库性能的效果。ShardingSphere 由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar 这三款相互独立的产品组成,在应用 Sharding-JDBC 时,需要注意到 Sharding-JDBC 背后依赖的是一套完整而强大的分片引擎。定位为一个透明化的数据库代理端。原创 2023-08-07 22:11:32 · 298 阅读 · 0 评论 -
mysql总结
myisaminnodb不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效率不如一次加一把大锁B+树。主要是在所有叶子结点中增加了指向下一个叶子节点的指针,使用默认自增的主键作为主索引。哈希表,有序数据组,搜索树索引是一种特殊的文件,包含对数据表里所有记录的引用指针。索引可以极大的提高数据的查询速度,但会降低插入、删除、更新表的速度,因此在执行这些写操作时,还要操作索引文件。特性:原子性,一致性,隔离性,持久性。原创 2023-07-29 15:24:17 · 320 阅读 · 0 评论 -
MYSQL实战45讲笔记--深入浅出索引
索引模型:是哈希表、有序数组和搜索树。区别:哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换算成一个确定的位置,然后把 value 放在数组的这个位置。,比如 Memcached 及其他一些 NoSQL 引擎。。N 叉树由于在读写上的性能优点,以及适配磁盘的访问模式,已经被广泛应用在数据库引擎中了。数据库底层存储的核心就是基于这些数据模型的。原创 2023-06-04 12:18:10 · 561 阅读 · 0 评论 -
MYSQL实战45讲笔记--事务隔离:为什么你改了我还看不见?
ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),其中 I就是“隔离性”。当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。原创 2023-06-04 12:14:12 · 235 阅读 · 0 评论 -
MYSQL实战45讲笔记--日志系统:一条SQL更新语句是如何执行的?
一条更新语句的执行流程又是怎样的呢?查询语句的那一套流程,更新语句也是同样会走一遍。你执行语句前要先连接数据库,这是连接器的工作。在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以这条语句就会把表 T 上所有缓存结果都清空。分析器会通过词法和语法解析知道这是一条更新语句。优化器决定要使用 ID 这个索引。然后,执行器负责具体执行,找到这一行,然后更新。与查询流程不一样的是,更新流程还涉及两个重要的日志模块,redo log(重做日志)和 binlog(归档日志)。原创 2023-06-04 12:10:29 · 651 阅读 · 0 评论 -
MYSQL实战45讲笔记--基础架构:一条SQL查询语句是如何执行的?
开始执行的时候,要先判断一下你对这个表 T 有没有执行查询的权限,如果没有,就会返回没有权限的错误(在工程实现上,如果命中查询缓存,会在查询缓存返回结果的时候,做权限验证。:连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。第一次调用的是“取满足条件的第一行”这个接口,之后循环取“满足条件的下一行”这个接口,这些接口都是引擎中已经定义好的。原创 2023-06-04 11:50:07 · 655 阅读 · 0 评论 -
mysql优化
1.存储过程create table t_user(id int not null,user_name varchar(32) CHARACTER set utf8 COLLATE utf8_general_ci default null,address varchar(255) default null,create_time datetime default null on update CURRENT_TIMESTAMP,PRIMARY key(id))ENGINE=INNODB DEF原创 2021-03-11 20:19:12 · 109 阅读 · 0 评论 -
数据库知识点复习
【考点】什么是索引?索引的分类索引的优缺点分析何时需要使用索引?何时无需使用索引?什么是事务?事务的四大特性数据库三大范式数据库有哪些表连接?【资料整理】数据库索引全面解析...转载 2019-01-10 15:11:49 · 221 阅读 · 0 评论