随笔分类 -  MySQL

摘要:对于联合索引我们知道,在使用的时候有一个最左前缀的原则,除了这些呢,比如字段放置的位置,会不会对索引的效率产生影响呢? 最左匹配原则 联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例: create table test ( id bigint auto_ 阅读全文
posted @ 2022-02-19 12:02 残城碎梦 阅读(6574) 评论(0) 推荐(0) 编辑
摘要:MySQL的B+树索引 索引概述 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。 拿汉语字典的目录页(索引)打比方,我们可以按拼音 阅读全文
posted @ 2022-02-19 07:42 残城碎梦 阅读(74) 评论(0) 推荐(0) 编辑
摘要:Explain 查看SQL执行计划 Explain关键字是Mysql中sql优化的常用关键字,通常都会使用Explain来查看sql的执行计划,而不用执行sql,从而快速的找出sql的问题所在。 我们先创建三个数据表:用户表user、角色表role、以及用户角色关系表role_user -- 用户表 阅读全文
posted @ 2022-02-17 22:50 残城碎梦 阅读(139) 评论(0) 推荐(0) 编辑
摘要:为什么要主从设置 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。 读写分离,使数据库能支撑更大的并发。在报表中尤其重要。 阅读全文
posted @ 2022-02-17 22:48 残城碎梦 阅读(933) 评论(0) 推荐(0) 编辑
摘要:MySQL的逻辑架构 redo log日志 redo log(重做日志):redo log是InnoDB存储引擎层的日志,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和介质失败(media failure)时,redo log文件就能派上用场,如数据库掉电, 阅读全文
posted @ 2022-02-17 22:47 残城碎梦 阅读(108) 评论(0) 推荐(0) 编辑
摘要:既然谈到优化,一定想到要从多个维度进行优化。 这里的优化维度有四个:SQL语句及索引、表结构设计、系统配置、硬件配置。 其中SQL语句相关的优化手段一定是最为重要的。 硬件配置 硬件方面的优化可以有对磁盘进行扩容、将机械硬盘换为SSD等等。这个优化手段成本最高,带来的成本却是最高的,见效也较小。 系 阅读全文
posted @ 2022-02-17 08:32 残城碎梦 阅读(120) 评论(0) 推荐(0) 编辑
摘要:先上图 查询请求的执行流程 众所周知在MySQL数据库应用中查询请求是使用最多的,假设我们输入下面的SQL,通过客户端请求MySQL服务器,会得到一个包含user的结果集。但是,其中MySQL的处理过程我们并不了解,那么下面就让我们一起看看在查询请求前后MySQL服务端发生了些什么吧。 select 阅读全文
posted @ 2022-02-16 13:06 残城碎梦 阅读(1112) 评论(0) 推荐(0) 编辑
摘要:最近的业务中,有这样一个需求:如果数据存在就更新,不存在就写入,一般情况下是需要先查询,后判断是更新还是写入的,需要进行两次IO操作。所以为了减少同步时间,第一个思路是使用并发,第二种思路就是应该尽量减少请求MySQL的次数,这里将讲讲第二种思路。 正常情况下实现:如果存在就更新,不存在就写入的伪代 阅读全文
posted @ 2022-02-16 12:55 残城碎梦 阅读(605) 评论(0) 推荐(0) 编辑
摘要:聚簇索引并不是一种单独的索引类型,而是一种数据存储方式,具体细节依赖于其实现方式。 MySQL数据库中innodb存储引擎,B+树索引可以分为: 聚簇索引(也称聚集索引,clustered index) 辅助索引(有时也称非聚簇索引或二级索引,secondary index,non-clustere 阅读全文
posted @ 2022-02-16 08:44 残城碎梦 阅读(561) 评论(0) 推荐(0) 编辑
摘要:索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。 索引在 MySQL 数据库中分三类 阅读全文
posted @ 2022-02-16 08:20 残城碎梦 阅读(97) 评论(0) 推荐(0) 编辑
摘要:首先对mysql锁进行划分: 按照锁的粒度划分:行锁、表锁、页锁 按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现) 还有两种思想上的锁:悲观锁、乐观锁。 InnoDB中有几种行级锁类型:Record Lock、Gap Lock、Next-key Lock Record Lock:在索引记录上 阅读全文
posted @ 2021-11-27 13:18 残城碎梦 阅读(492) 评论(0) 推荐(0) 编辑
摘要:事务的四大特性 原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。 一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数 阅读全文
posted @ 2021-11-27 13:16 残城碎梦 阅读(279) 评论(0) 推荐(0) 编辑
摘要:事务的并发问题 脏读(Dirty read):当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。 丢失修 阅读全文
posted @ 2021-11-27 13:12 残城碎梦 阅读(363) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示