数据库
拔苦与乐喵
这个作者很懒,什么都没留下…
展开
-
mysql与oracle的区别
一、并发性(行锁的区别)mysql的InnoDB存储引擎虽然支持行锁,但是当表无索引或者sql语句索引失效时,行锁会变成表锁。oracle行锁,不依赖于表的索引二、事务mysql的MyISAM存储引擎不支持事务,在InnoDB存储引擎下才支持事务oracle完全支持事务三、事务隔离级别mysql默认的隔离级别是:可重复读 repeatable readoracle默认的隔离级别是:不可重复读 re...原创 2018-03-07 17:33:39 · 246 阅读 · 0 评论 -
MyISAM并发插入、 InnoDB的间隙锁问题分析
根据网络资料学习并整理一、MyISAM并发插入#语法:lock tables [tablename] read/write Local#说明:1、local的作用:在满足MyISAM表并发插入条件的情况下,允许其他用户在表尾并发插入记录2、在用lock tables显示加锁时必须同时取得所有涉及到的表的锁不支持锁升级,也就是说只能访问显示加锁的这些表,不能访问未加锁的表如果加的是[读锁],那么当前...原创 2018-04-11 14:24:09 · 1221 阅读 · 0 评论 -
什么是分布式事务(二):分布式事务特性、2PC、3PC
作者:海洋链接:https://www.zhihu.com/question/65292792/answer/229459320来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和...转载 2018-03-05 19:21:45 · 2755 阅读 · 0 评论 -
什么是分布式事务(一):概念、产生的原因、解决方案
分布式事务是什么先看看百度百科的解释,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说就是一个大的操作由两个或者更多的小的操作共同完成。而这些小的操作又分布在不同的网络主机上。这些操作,要么全部成功执行,要么全部不执行。PS:拿转帐来说。张三和李四在不同的城市,存储他们账户信息的服务器也在不同的网络主机上。张三有30元钱,李四有...转载 2018-03-05 19:21:11 · 6650 阅读 · 1 评论 -
脏读、幻读、不可重复读和丢失更新
脏读、幻读、不可重复读和丢失更新2017年6月5日,天气——雨。 前两天整理之前的学习笔记时,发现对事务并发产生的问题——脏读、幻读、不可重复读和丢失更新这些概念有点模糊,于是又重新温习了一遍,现在把自己的一些理解归纳整理如下,方便大家学习。 锁就是防止其他事务访问指定资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重...转载 2018-03-05 19:17:55 · 273 阅读 · 0 评论 -
mysql高级----查询截取分析(二):批量插入数据脚本、用show profile分析sql、全局查询日志
一、批量插入数据脚本往表里插入1000w数据1、建表2、设置参数log_bin_trust_function_creators3、创建函数,保证每条数据都不同(#3.1 随机产生字符串定义函数rand_string(n) 注:delimiter $$表示将sql默认的结束符号(;)改成$$ #3.2 随机产生部门编号定义函数 rand_num()4、创建存储过程#4.1 创建emp表的存储过程#4...原创 2018-03-05 19:15:26 · 363 阅读 · 0 评论 -
mysql高级----查询截取分析(一):查询优化、慢查询日志
四招:1.观察,至少跑一天,看看生产的慢SQL情况2.开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL3.explain+慢查询分析4.show profile5.数据库服务器参数优化---运维的事一、查询优化1、小表驱动大表(小的数据集驱动大的数据集)注:若大表驱动小表,则会额外增加跟数据库连接的资源消耗2、exists和in2.1exists#语法: select ...from tab...原创 2018-03-05 19:13:47 · 485 阅读 · 0 评论 -
mysql悲观锁总结和实践
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证...转载 2018-03-05 19:11:32 · 171 阅读 · 0 评论 -
mysql乐观锁总结和实践:用version或者时间戳
转载:http://chenzhou123520.iteye.com/blog/1863407原作者:chenzhou123520上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样...转载 2018-03-05 19:10:54 · 13010 阅读 · 2 评论 -
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
什么是事务???事务是数据库逻辑工作单元unit(由一组SQL语句组成的逻辑处理单元)四个特性:原子性atomic,一致性,隔离性(有以下四种隔离级别),永久性#知道点复习1、事务的特性2、事务的传播行为如果当前存在事务,就加入该事务required:当前没有事务,就创建一个新事务(常用)supports:当前没有事务,就以非事务执行mandatory:当前没有事务,就抛出异常requires_n...转载 2018-03-05 19:09:44 · 466 阅读 · 0 评论 -
mysql高级----锁机制(表锁、行锁;读写锁;乐观锁,悲观锁)
一、锁介绍1、定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言尤其重要,也更加复杂。2、举个例子(生活购物)3、...原创 2018-03-05 19:08:40 · 5565 阅读 · 3 评论 -
mysql高级----索引优化(二):索引失效案例(应该避免)
建表SQL索引情况一、全值匹配我最爱二、最佳左前缀法则1、where条件列的,从索引的最左前列开始,且不跳过索引中的列2、违背原则:未以最左前列开始,索引失效3、违背原则:跳过索引中间列(age),只引用了部分索引结论:where条件要满足最佳左前缀法则。口诀:带头大哥不能死,中间兄弟不能断三、不在索引列上做任何操作(计算、函数、自动or手动类型转换),会导致索引失效而转向全表扫描即使满足最左前缀...原创 2018-03-05 19:05:15 · 2444 阅读 · 2 评论 -
mysql高级----索引优化(一):索引分析
一、单表1、表结构2、案例分析显示表的索引信息:show index from 表名重新分析:仍然用了文件排序,因为comments范围查询,会导致索引失效将where条件改成comments=1后,分析结果如下:相当于给定已知组合索引中的两个列,求未知的另外一个列时,可以用索引求得。显示表的索引信息:show index from 表名分析结果:此时排序就不会用到额外的 [文件排序]二、两张表1...原创 2018-03-05 18:57:32 · 442 阅读 · 0 评论 -
mysql高级--索引简介
一、索引简介1、什么是索引?(排好序的、快速查找的) 索引的本质是一种数据结构,帮助mysql高效获取数据的数据结构。可以理解为:排好序的、快速查找的数据结构。2、为什么要创建索引?作用:提高查找效率,类似于新华字典 功能:排序+快速查询 (注:由于索引的功能,它会影响* where 查询条件的条件约束* order by 后面的排序)举例:若要在排好序的数据中找...原创 2018-03-05 18:26:48 · 212 阅读 · 0 评论 -
mysql高级---explain详解
一、Mysql Query Optimizer二、Mysql 瓶颈分析CPU:CPU在饱和的时候,一般发生在数据装入内存或从磁盘上读取数据的时候(从磁盘到内存)IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候(装入数据>内存容量)服务器硬件的性能瓶颈:top,free,iostat和vmstat来查看系统的性能状态三、Explain(查询执行计划)假设mysql未出现瓶颈,且优化分析也...原创 2018-03-05 18:01:31 · 710 阅读 · 0 评论 -
mysql高级--mysql逻辑架构
概览:mysql是分层、可拔插式的存储引擎架构,将查询处理和其它的系统任务以及数据的存储提取(写/读)相分离。1、连接层作用:连接处理、授权认证及相关的安全方案。2、服务层核心功能,如SQL接口,SQL分析及优化,内置函数及查询缓存3、存储引擎常用的两类存储引擎有:MyISAM(读操作)和InnoDB(写操作)阿里巴巴、淘宝用哪个存储引擎呢??? 答案:Percona server4、存储层(文...原创 2018-03-05 14:57:44 · 310 阅读 · 0 评论 -
mysql的7种join理论
一、复习:1、创建索引的格式: 表名》user 列名》id,name,sex,email单列索引:create index idx_user_name on user(name);组合索引:create index idx_user_nameEmail on user(name,email);2、select查询顺序 from>on>join/where>group by&g...原创 2018-03-05 14:55:39 · 1356 阅读 · 0 评论 -
B tree和B+ tree,mysql的索引实现
一、b 树和b+树B树是一种多路自平衡搜索树,它类似普通的二叉树,但是B书允许每个节点有更多的子节点。B树示意图如下:B树的特点:(1)所有键值分布在整个树中(2)任何关键字出现且只出现在一个节点中(3)搜索有可能在非叶子节点结束(4)在关键字全集内做一次查找,性能逼近二分查找算法B+树是B树的变体,也是一种多路平衡查找树,B+树的示意图为:从图中也可以看到,B+树与B树的不同在于:(1)所有关键...转载 2018-04-11 14:30:55 · 450 阅读 · 0 评论