Mysql
我是图图小淘气
面对世界很好奇
展开
-
Mysql的高可用性和高扩展性
Mysql的分表操作和分区的工作原理分区表1、原理对于用户而言,分区表是一个独立的逻辑表,但是底层的Mysql将其分成了多个物理子表,对于用户来说是透明的,每一个分区表都会使用一个独立的表文件创建表时使用partition by子句定义每个分区存放的数据,执行查询时,优化器会根据分区定义那些没有我们需要数据的分区,这样查询只需要查询我们需要数据的分区即可分区的主要目的是将数据按照比较...原创 2019-02-27 22:56:06 · 1135 阅读 · 0 评论 -
分区操作
分区操作1、分区类型Range分区:是对一个连续性的行值,按范围进行分区;比如:id小于100;id大于100小于200;List分区:跟range分区类似,不过它存放的是一个离散值的集合。Hash分区:对用户定义的表达式所返回的值来进行分区。可以写partitions (分区数目),或直接使用分区语句,比如partition p0 values in……。Key分区:与hash分区类...原创 2019-02-28 11:09:43 · 250 阅读 · 0 评论 -
mysql锁机制
MyISAM引擎表锁1、表锁分为表共享锁和表独占写锁对MyISAM的读操作,不会阻塞其他用户对同一表请求,但会阻塞对同一表的写请求;对MyISAM的写操作,则会阻塞其他用户对同一表的读和写操作;MyISAM表的读操作和写操作之间,以及写操作之间是串行的。2、表锁实现的方法LOCK TABLES remind_message READ LOCAL ,remind_message WR...原创 2019-03-25 11:01:03 · 125 阅读 · 0 评论 -
mysql死锁
关于死锁MyISAM表锁是deadlock free的,这是因为MyISAM总是一次性获得所需的全部锁,要么全部满足,要么等待,因此不会出现死锁。但是在InnoDB中,除单个SQL组成的事务外,锁是逐步获得的,这就决定了InnoDB发生死锁是可能的。发生死锁后,InnoDB一般都能自动检测到,并使一个事务释放锁并退回,另一个事务获得锁,继续完成事务。但在涉及外部锁,或涉及锁的情况下,InnoD...原创 2019-03-26 10:19:49 · 846 阅读 · 0 评论 -
mysql索引本质 B-tree和B+tree
mysql索引本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是一种数据结构。数据库查询是数据库的主要功能之一,最基本的查询算法是顺序查找(linear search)时间复杂度为O(n),显然在数据量很大时效率很低。优化的查找算法如二分查找(binary search)、二叉树查找(binary tree s...原创 2019-03-19 12:17:06 · 294 阅读 · 0 评论