杰克说
94年的短视频创作者,软件工程师,CSDN博主。喜欢打抱不平,行侠仗义。有人性格内向,有人性格外向,这是我的vlog。全网搜索杰克说,喜欢记得点赞关注评论哦。
展开
-
MySql索引为什么使用B+树
前言面试中我们经常碰到面试官问到数据库索引,问到索引就会问你索引的数据结构。类似这种数据结构对于普通程序员来说记住概念几天就忘了,而且概念不是每个人都能很好都理解,所以针对这一原因,我简单通俗都像大家讲解为什么mysql使用都是B+树,而不用其他的树形结构。正文Q1:B+树的查询时间大概多少?A:跟树的高度有关,是O(log n)。Q2:hash查找时间大概多少?A:o(1)。Q3:hash比B+查找时间更短,为什么索引不用hash?A:这和业务场景有关,如果只查找一个值原创 2021-05-25 13:15:06 · 273 阅读 · 0 评论 -
sql优化的几种方法
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id f......原创 2019-01-21 21:23:05 · 221 阅读 · 0 评论 -
mysql InnoDB数据存储引擎 的B+树索引原理
一、InnoDB原理在 InnoDB 中,每个索引其实都是一颗 B+ 树,主键索引也称作聚簇索引,其他非主键索引称作二级索引,每个表中每一行的记录值都完整的保存在主键索引的叶子节点上,二级索引的叶子节点保存的是主键的值。每个表至少都有一个主键索引,而且表中所有的数据行都是存放在主键索引这个 B+ 树的叶子节点上的。如果你给表的其他字段加了索引的话,这个索引就是二级索引了,二级索引也是 B+ 树。二级索引和主键索引的不同之处在于其叶子节点上保存的值不一样,表中所有字段的值都被完整的保存在主键索引的原创 2020-07-24 18:24:41 · 499 阅读 · 0 评论 -
什么是事务? 事务的隔离级别和事务运行的模式分别是什么?spring 事务和分布式事务实现方式有哪些?
什么是事务?百度百科中解释:指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。而一个逻辑工作单元要成为事务,就必须满足ACID属性。A:原子性(Atomicity) 事务中的操作要么都不做,要么就全做。C:一致性(Consistency) 事务执行的结果必须是从数据库从一个一致性状态...原创 2019-01-27 23:26:53 · 18976 阅读 · 0 评论 -
sql语句从两张表分别查出的数据如何合并到另一张新表中
1.如果表三不存在,则执行下面语句,插入时会自动创建表三, 备注:存款银行、存款金额、支付银行、支付金额,均为表中字段的含义。select 表一.存款银行,表一.存款金额,表二.支付银行,表二.支付金额 into 表三 from 表一,表二 where 表一.存款银行=表二.支付银行 2.如果表三已经存在,则 insert into 表三(存款银行,存款金额,支付银行,支付金额...原创 2019-05-25 11:17:32 · 33660 阅读 · 3 评论 -
数据库mysql与oracle区别
mysql与oracle区别:相同点:1.都是关系型数据库 2.都是目前比较流行的数据库不同点:一、并发性并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁...原创 2019-01-27 17:40:35 · 7981 阅读 · 2 评论 -
架构师成长之路之数据库选型指南
目录一、前言二、选型维度三、相关资料:一、前言架构师在工作中经常会遇到数据库存储选型的问题,而市面上数据库产品众多,往往会无从下手,甚至有时候从业务开发到上线运维过程中会多次更换底层数据库,给整个研发中心带来不必要的额外工作。结合业务场景做数据库存储选型的时候,可以综合以下几个维度去考虑:二、选型维度1、业务是否需要保证ACID事务? 事务具有4个特征,分别是原子性、一致性、隔离性和持久性。 YES:主流的关系型数据库:MySQL...原创 2020-12-29 17:33:03 · 4706 阅读 · 12 评论 -
如何解决Redis 和MySQL的数据不一致
1. MySQL持久化数据,Redis只读数据redis在启动之后,从数据库加载数据。读请求:不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取。写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)。2.MySQL和Redis处理不同的请求数据类型MySQL处理实时...原创 2020-04-21 19:03:31 · 1413 阅读 · 1 评论 -
数据库索引失效的几种情况
一、什么是索引?索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。二、索引失效的几种情况 1.如果条件中有多个字段使用or,即使其...原创 2020-04-20 15:48:08 · 3847 阅读 · 0 评论 -
sql server 与 mysql 中常用的SQL语句区别
1. 首先说一下sql语句结束标志mysql以;结束一条SQL语句;SQL server 以;或go或不写结束都可以。不过建议写sql server的时候以go结束,因为sql server很多语句要以等一个语句结束后才能写下一个语句,不然会报批处理错误(深受其害)。2. 查看表结构数量等mysql 语句-- 查看系统内所有数据库show databases;-- 查询数据......原创 2018-11-29 17:00:55 · 582 阅读 · 0 评论