mysql
- MySQL基本
> 关于SQL SQL和NOSQL 关系型数据库sql支持ACID,即原子性,一致性,持久性,隔离性 非关系型数据库支持BASE: B:Basically Available —— 基本可用:系统发生故障的时候,不要求所有功能可用,基本功能要可以使用 S:软状态,允许存在一致性窗口的中间状态 E:最终一致性:中间状态最终要回到一致 C:一致性 A:原子性 P:分区容错 CAP理论主要是阐明分布式系统中在网络分区的情况下一致性和原子性的取舍 BASE理论是分布式系统中实际的应用 网络分区是分布式多节点 …
- MySQL事务
> 关于SQL事务 事务 事务是一组操作的集合,事务把所有操作作为一个整体向系统提交请求,这些操作要么全部成功,要么全部失败。 事务的特性(ACID) A原子性:一组事务要么全部成功要么全部失败 C一致性:事务完毕时,所有的数据都保证一致状态 I隔离性:数据库的隔离机制,确保事务不受其他并发请求的影响 D持久性:事务一旦提交,对数据的修改是永久的 MySQL通过不同的方式来保证这四个特性: 原子性:undo log 一致性:通过原子性+隔离性+持久性来保证 隔离性:mvcc,锁机制 持久性:redo …
- MySQL键
> 关于SQL索引 主键 Primary Key 主键是对某一条记录的唯一标识 主键唯一,且一张表只能有一个主键 主键不能为空,可以是联合主键 唯一键Unique Key 保证某个键的值不能重复(不是主键) 主键主要用于唯一标识记录;唯一键用于保证业务字段唯一。 唯一建可以为NULL 普通索引 索引主要是为了提高查询速度,不唯一 外键 表示表和表之间的关联关系 一个表中的字段引用另一个表的主键或唯一键,用来保证两个表之间的数据关系合法。 全文索引 主要用于文本搜索 查询优化器 查询优化器: …
- MySQL索引
> 关于SQL索引 SQL 索引 索引是帮助SQL高效获取数据的有序数据结构 利用索引可以提高数据检索的效率,降低io成本 通过索引对数据进行排序,减少cpu消耗 索引占一部分空间 索引降低了更新表的速度,对表进行插入删除的时候成本提高 索引类型 B+树索引 Hash索引:底层用哈希表实现,只支持精确匹配不支持范围查询 R-Tree空间索引 Full-text全文索引 索引结构 InnoDB MYISAM Memory Q:为什么用B+树不用二叉树,红黑树,B树 A:顺序查找会形成单向链表,性能大大 …
- MySQL日志
> 关于SQL日志 SQL日志都有哪些? redolog,引擎层日志,用于SQL掉电恢复 undolog,引擎层日志,用于事务回滚和MVCC binlog,server层日志,用于数据备份和主从复制 relaylog,中继日志,主从复制场景下,slave拷贝master的本地binlog之后生成的日志 慢查询日志:需要手动开启,记录执行时间过长的SQL binlog 在执行完一条更新操作之后,server会生成一条binlog,等之后事务提交的时候,将本次事务中生成的所有binlog写入binlog …