msql
BraveHeart!
freedom!
展开
-
mysql回表致索引失效
这个是导致很多数据量大,索引失效的根本原因,文章很好,指的借鉴!mysql回表致索引失效转载 2020-10-29 11:41:25 · 226 阅读 · 0 评论 -
mysql 的各种锁
一、乐观锁(Optimistic Lock)每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改,则不进行数据更新,如果数据没有被其他线程修改,则进行数据更新。由于数据没有进行加锁,期间该数据可以被其他线程进行读写操作。【Note】: 比较适合读取操作比较频繁的场景,如果出现大量的写入操作...转载 2019-06-13 15:24:39 · 167 阅读 · 0 评论 -
间隙锁
【什么是间隙锁】当我们用范围条件而不是相等条件检索数据,并请求共享锁排它锁时,InnoDB会给符合条件的已有数据记录的索引加锁;对于键值在范围内但并不存在的记录,叫做“间隙(GAP)”【危害】因为Query执行过程中通过范围查找的话,它会锁定这个范围所有的索引键值,及时这个键值不存在。间隙锁有一个比较致命的弱点,就是当锁定一个范围键值之后,及时某些不存在的键值也会被无辜的锁定,而造成在坐定...原创 2019-06-13 15:05:48 · 425 阅读 · 0 评论 -
深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE
概念和区别SELECT … LOCK IN SHARE MODE走的是IS锁(意向共享锁),即在符合条件的rows上都加了共享锁,这样的话,其他session可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记录直到你这个加锁的session执行完成(否则直接锁等待超时)。SELECT … FOR UPDATE 走的是IX锁(意向排它锁),即在符合条件的rows上都加了排它锁,其他ses...转载 2019-06-13 14:59:55 · 131 阅读 · 0 评论 -
数据库常见死锁原因及处理
数据库是一个多用户使用的共享资源,当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严重影响应用的正常执行。 在数据库中有两种基本的锁类...转载 2019-05-06 14:47:39 · 607 阅读 · 0 评论 -
高级mysql学习三、mysql性能分析
mysql性能分析mysql query optimizer(查询优化器)mysql中有专门负责优化select语句的优化器模块主要功能:通过计算分析系统中收集到的系统信息,为客户端请求的query提供它认为最优的执行计划(它认为最优的数据检索方式,但不见得是DBA 认为是最优的,这部分最耗费 时间)当客户端向mysql请求一条query,命令解析器模块完成请求分类,区别出是select并...原创 2019-04-29 15:06:44 · 133 阅读 · 0 评论 -
高级mysql学习二、索引
索引的创建:https://blog.csdn.net/nangeali/article/details/73385342面试题:什么是索引?索引是帮助mysql高效获取数据的数据结构,索引是数据结构索引的目的在于提高查找效率,可以类比字典如果要查’mysql‘这个词,我们看到需要定位到m字母,然后从下找到y字母,再找到身下的sql。你可以简单理解为“排好序的快速查找数据结构”**My...原创 2019-04-29 14:37:14 · 128 阅读 · 0 评论 -
高级mysql学习一、文件、逻辑架构、存储引擎
检查是否安装mysql(Linux)rpm -qa|grep -i mysqlmysqladmin --version(Linux Mac)文件二进制日志log-bin作用:用于主从复制错误日志log-error查询日志log数据文件frm文件-存放表结构myd文件-存放表数据myi文件-存放表索引如数据库a,数据库表b 如果表格b采用MyISAM,data\a中会产...原创 2019-04-29 14:27:07 · 128 阅读 · 0 评论 -
聚簇索引与非聚簇索引(也叫二级索引)
转载地址)https://www.jianshu.com/p/fa8192853184通俗点讲聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索...转载 2019-04-19 11:39:47 · 176 阅读 · 0 评论 -
为什么MySQL不推荐使用子查询和join
转载自这里:https://blog.csdn.net/weixin_38676357/article/details/81510079#commentBox前言:1.对于mysql,不推荐使用子查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做join,merge数据。2.子查询就更别用了,效率太差,执行子查询时,...转载 2019-04-16 18:06:59 · 490 阅读 · 0 评论 -
mysql约束与索引的区别
转载链接一:约束作用:是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具(约束);这里主要讲解mysql的约束:1、非空约束:not null;指示某列不能存储 NULL 值2、唯一约束:unique();ukunique约束的字段,要求必须是唯一的,但null除外;3、主键约束:primary key();pk主键约束=not null ...转载 2019-04-16 11:55:34 · 391 阅读 · 0 评论 -
primary key主键与unique键的区别以及作用
转载链接共同作用是为了约束字段/建立索引/提高查询效率mysql主键的属性:1.主键具有唯一性:是指一张表里只能有一个主键;2.主键作用:主键primary key是为了唯一标识一个字段,使其唯一且不能为NULL,自动生成索引;3.隐含定义:如果这些列没有被明确地定义为NOT NULL,MySQL会隐含地定义这些列。4.主键其实也是索引,甚至在MySQL的术语里面“键”就等于“索引”,...转载 2019-04-16 11:48:25 · 2923 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
链接地址,这个比较新比较全!https://blog.csdn.net/qq_36381855/article/details/80011876转载 2019-04-15 18:55:14 · 107 阅读 · 0 评论 -
【经典数据结构】B树与B+树
B 树可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点。根节点至少有两个子节点每个节点有M-1个key,并且以升序排列位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间其它节点至少有M/2个子节点下图是一个M=4 阶的B树:相关连接地址请看这里...转载 2019-04-15 18:47:53 · 101 阅读 · 0 评论