mysql高级
andy2cloud
这个作者很懒,什么都没留下…
展开
-
订单分库分表实践总结
订单分库分表实践总结主库容量已接近服务器物理空间上限,同时也已经达到MySQL的处理上限,很快将无法再处理新增订单。旧订单库面临的问题有:1、超大容量问题订单相关表都已经是超大表,最大表的数据量已经是几十亿,数据库处理能力已经到了极限;单库包含多个超大表,占用的硬盘空间已经接近了服务器的硬盘极限,很快将无空间可用;2、性能问题转载 2017-07-28 00:18:09 · 4109 阅读 · 4 评论 -
乐观锁和悲观锁的区别(最全面的分析)
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过转载 2017-09-06 23:06:16 · 583 阅读 · 0 评论 -
深入理解数据库中的乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibe转载 2017-09-06 23:52:10 · 270 阅读 · 0 评论 -
mysql共享锁与排他锁
mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁转载 2017-09-01 23:31:31 · 265 阅读 · 0 评论 -
MySQL事务隔离级别详解
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirt转载 2017-12-12 11:18:24 · 394 阅读 · 0 评论 -
mysql锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。 一、概述 MySQL有三种锁的级别:页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-le转载 2017-12-12 11:48:31 · 459 阅读 · 0 评论 -
MySQL中锁详解(行锁、表锁、页锁、悲观锁、乐观锁等)
原文地址:http://blog.csdn.net/mysteryhaohao/article/details/51669741锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或线程并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性转载 2017-12-15 17:03:41 · 240 阅读 · 0 评论 -
MySql中的变量定义
根据mysql手册,mysql的变量分为两种:系统变量和用户变量。但是在实际使用中,还会遇到诸如局部变量、会话变量等概念。根据个人感觉,mysql变量大体可以分为四种类型:一、局部变量。局部变量一般用在sql语句块中,比如存储过程的begin/end。其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了。局部变量一般用declare来声明,可以使用default来说明默认值。例如在存储过...转载 2018-02-12 10:15:45 · 587 阅读 · 0 评论 -
MYSQL开发性能研究——批量插入的优化措施
一、我们遇到了什么问题在标准SQL里面,我们通常会写下如下的SQL insert语句。1INSERT INTO TBL_TEST (id) VALUES(1); 很显然,在MYSQL中,这样的方式也是可行的。但是当我们需要批量插入数据的时候,这样的语句却会出现性能问题。例如说,如果有需要插入转载 2018-04-02 17:01:51 · 2069 阅读 · 0 评论 -
mysql事务执行时间过长引起死锁
http://blog.csdn.net/lin_credible/article/details/8541195http://www.51testing.com/html/16/390216-838016.htmlhttp://www.jb51.net/article/32651.htm1.优化sql事务,减少事务锁的时间转载 2018-04-13 20:34:14 · 6274 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
前两天经历了武汉一行腾讯面试,数据库索引是一个面试热点,在此搜集相关资料,以备学习之用。下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享。原文链接:MySQL索引背后的数据结构及算法原理本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据转载 2017-08-09 15:07:54 · 328 阅读 · 1 评论 -
MySQL调优三步曲(慢查询、explain profile)
mysql profile explain slow_query_log分析优化查询在做性能测试中经常会遇到一些sql的问题,其实做性能测试这几年遇到问题最多还是数据库这块,要么就是IO高要么就是cpu高,所以对数据的优化在性能测试过程中占据着很重要的地方,下面我就介绍一些msyql性能调优过程中经常用到的三件利器:1、慢查询 (分析出现出问题的sql)2、Explain转载 2017-07-09 18:25:53 · 686 阅读 · 0 评论 -
mysql主从架构的复制原理及配置详解
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到转载 2017-01-23 13:53:47 · 396 阅读 · 0 评论 -
如何恢复MySQL主从数据一致性
最近被告知,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,于是,登上备库,使用 mysql> show slave status\G查看,果然,备库在insert语句中因违反主键约束,导致备库停止了同步。现在的问题很明确,就是如何恢复主从库数据的一致性。可选方案如下:一、查看Master最新的Position,将其作为Slave复制的起点。这种思路体现的转载 2017-04-18 13:26:54 · 847 阅读 · 0 评论 -
mysql清除mysql-bin.0000xx日志的方法
这是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。这样做主要有以下两个目的:1:数据恢复如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。2:主从服务器之间同步数据主服务器上所有的操作都在记转载 2017-03-03 10:52:49 · 4536 阅读 · 0 评论 -
MySQL行级锁、表级锁、页级锁详细介绍
页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以转载 2017-06-12 18:35:25 · 275 阅读 · 0 评论 -
深入理解事务--事务ACID特性及隔离级别
ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解.理解原子性(Atomicity) 原子性意味着数据库中的事务执转载 2017-06-12 18:45:34 · 408 阅读 · 0 评论 -
Mysql有两种存储引擎:InnoDB与Myisam
二者之间有六大区别: MyISAMInnoDB构成上的区别:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩 展名为.MYD (MYData)。索引文件的扩 展名是.MYI (MYIndex)。基于磁盘的资源是Inn转载 2017-06-13 10:00:35 · 647 阅读 · 0 评论 -
如何理解并正确使用MySQL 索引
1、概述索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构2、索引的优点1、大大减轻了服务器需要扫描的数据量,从而转载 2017-07-14 18:46:02 · 305 阅读 · 0 评论 -
MySQL前缀索引和索引选择性
有时候需要索引很长的字符列,这会让索引变得大且慢。通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。但这样也会降低索引的选择性。索引的选择性是指不重复的索引值(也称为基数,cardinality)和数据表的记录总数的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行。唯一索引的选择性是1,这是最好的索引选择性转载 2017-07-14 18:52:18 · 412 阅读 · 0 评论 -
漫画算法:什么是一致性哈希?
2017-07-18 算法爱好者(点击上方公众号,可快速关注)来源:伯乐专栏作者/玻璃猫,微信公众号 - 梦见(dreamsee321)如有好文章投稿,请点击 → 这里了解详情一年之前——转载 2017-07-20 18:43:06 · 1082 阅读 · 0 评论 -
深入分析事务的隔离级别
转载出处:http://www.hollischuang.com/archives/943本文详细介绍四种事务隔离级别,并通过举例的方式说明不同的级别能解决什么样的读现象。并且介绍了在关系型数据库中不同的隔离级别的实现原理。在DBMS中,事务保证了一个操作序列可以全部都执行或者全部都不执行(原子性),从一个状态转变到另外一个状态(一致性)。由于事务满足久性。所以一旦事务被提交之转载 2017-07-17 22:23:59 · 356 阅读 · 0 评论 -
MySQL的ON DUPLICATE KEY UPDATE用法
平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件. 此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主键的记录,我们就更新该条记录。 否则就插入一条新的记录。 逻辑上我们需要怎么写:$result = mysql_query('select * from xxx...转载 2018-07-24 14:01:51 · 43036 阅读 · 1 评论