随笔分类 - Mysql
摘要:普通索引:允许被索引的数据列包含重复的值。 唯一索引:可以保证数据记录的唯一性。 主键:是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。 联合索引:索引可以覆盖多个数据列,如像 INDEX(columnA, columnB)
阅读全文
摘要:mysql主从同步过程:mysql的主从复制主要有三个线程:master:二进制日志转储线程(binlog dump thread)、slave:I/O线程(I/O thread)和SQL线程(SQL thread).master一条线程和slave中的两条线程。 主节点binlog,主从复制的基础
阅读全文
摘要:基本概念 当前读读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。对于我们日常的操作,如:select … lock in share mode(共享锁),select …for update、update、insert、delete(排他锁)都是一种当前读
阅读全文
摘要:事务的基本特性ACID分别是:原子性(atomicity)事务是不可分割的最小操作单元,要么都成功,要么都失败。一致性(consistency)事务完成时,必须使所有的数据都保持一致状态。隔离性(isolation)数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环 境下运行。持久性(
阅读全文
摘要:执行计划是Mysql如何执行一条sql语句,包括sql查询顺序、是否使用索引、索引信息、查询命中率等信息。基本语法 explain select ... InnoDb引擎的执行计划内容 id:由一组数字组成,表示一个查询中各个子查询的执行顺序; id相同执行顺序由上之下id不同,id值越大优先级越高
阅读全文
摘要:基于锁的属性分类:共享锁、排它锁 基于锁的粒度分类:行级锁(InnoDB)、表级锁(InnoDB、MyISAM)、页级锁(BDB引擎)、记录锁、间隙锁、临键锁。 基于锁的状态分类:意向共享锁、意向排它锁。 共享锁 共享锁又称读锁,简称S锁;当一个事务为数据加上读锁之后,其他事务只能对该数据加读锁,而
阅读全文
摘要:先看下《高性能MySQL》中对于他们的评价: InnoDB:MySQL默认的事务型引擎,也是最重要和使用最广泛的存储引擎。它被设计成为大量的短期事务,短期事务大部分情况下是正常提交的,很少被回滚。InnoDB的性能与自动崩溃恢复的特性,使得它在非事务存储需求中也很流行。除非有非常特别的原因需要使用其
阅读全文
摘要:脏写:A事务对一条数据修改,但未提交,B事务再次修改这条数据,A事务发生回滚,根据undolog恢复数据,B事务写的数据丢失了,发生了脏写。脏读:A事务对一条数据修改,但未提交,B事务读到这条修改后的数据,A事务进行回滚。B事务读到的是一条脏数据,产生脏读。不可重复读:在一个A事务中多次读取同一条记
阅读全文
摘要:聚簇索引和非聚簇索引(主键索引和非主键索引) 主键索引也被称为聚簇索引。 聚簇索引: 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。聚簇索引将索引和数据行放到了一块,找到索引也就找到了数据。因为无需进行回表操作,所以效率很高。 回表查询:InnoDB 中,对于主键索引,只需要走一遍主键索引
阅读全文