随笔分类 -  MySQL

摘要:事务 确保事务内的SQL都可以同步执行 要么一起成功 要么一起失败。事务有四个特性原子性 一致性,隔离性,持久性 实现方式 开始事务的时候回家记录记录一个LSN日志序列 当事务执行的时候 会首先在Innodb_log_buffer 日志缓冲区插入事务日志 redo log;当事务提交的时候 再根据不 阅读全文
posted @ 2018-02-04 17:51 alin_qu 阅读(244) 评论(0) 推荐(0)
摘要:锁 MyISAM 只支持表锁 读锁演示 Session 1 读锁 其它session可以读不可写 Session 1 锁等待时间设置 Session 2 查询数据 不影响 Session 2 更新数据 Session 1 查看进程 Session 1 释放锁 Session 2 获得锁 立即更新数据 阅读全文
posted @ 2018-01-20 10:49 alin_qu 阅读(184) 评论(0) 推荐(0)
摘要:![](http://images2017.cnblogs.com/blog/736597/201801/736597-20180118205632287-1660848504.png) 阅读全文
posted @ 2018-01-18 20:57 alin_qu 阅读(132) 评论(0) 推荐(0)
摘要:mysql 主从复制流程图 Server version: 10.0.24 MariaDB 7 Ubuntu 16.04 Master 记录二进制文件 导出数据并记录二进制位置 导入数据,设置二进制位置,并开启同步 具体配置流程 1.打开Master二进制记录功能 2.授权Slave 锁表 并记录二 阅读全文
posted @ 2018-01-07 10:43 alin_qu 阅读(168) 评论(0) 推荐(0)
摘要:1、优化方式 硬件优化=》系统优化=》mysql配置优化=》SCHEMA优化=》sql优化=》其他解决方案(redis or MongoDB or Cassandra or HBase) 2、mysql配置分析 1)常见瓶颈 90%系统瓶颈都在IO上,所以提高IOPS尤为总要,iowait过高,加内 阅读全文
posted @ 2018-01-06 17:31 alin_qu 阅读(290) 评论(0) 推荐(0)
摘要:聚簇索引和非聚簇索引: 聚簇索引: 按照每张表的主键构造一颗B+树,叶子节点存放的就是行记录的所有数据,也将聚簇索引的叶子节点成为数据页。页与页之间通过双向链表链接,页按照主键的顺序排序。每张表只能有一个聚簇索引。 对于主键的排序查询和范围查询非常快,叶子节点上的数据就是用户要查找的数据。 辅助索引 阅读全文
posted @ 2017-12-23 17:23 alin_qu 阅读(157) 评论(0) 推荐(0)
摘要:项目中遇到了慢查询问题 Sql语句 Explain 之后的结果: 关于 Using temporary; 手册解释 大意是,需要一个临时表来暂存查询后的结果,经常会出现在Group By 或者 Order By 中 关于 Using filesort;手册解释 大意是 Mysql 如果想要正常的查找 阅读全文
posted @ 2017-12-23 10:55 alin_qu 阅读(2831) 评论(0) 推荐(0)
摘要:缓冲池: 是一块内存区域,通过内存的速度来弥补磁盘速度较慢对数据库性能的影响。在数据库中读取的页数据会存放到缓冲池中,下次再读取相同页的时候,会首先判断该页是否在缓冲池中。对于数据库中页的修改操作,会首先修改在缓冲池中的页,然后再以一定的频率刷新到磁盘上。缓冲池中缓存的数据页有 索引页,数据页,UN 阅读全文
posted @ 2017-12-09 19:31 alin_qu 阅读(268) 评论(0) 推荐(0)
摘要:英文版原文链接 ICP 全称 Index Condition Pushdown。这个特性主要是针对索引查找的优化,使得查找数据的时候,无法精确匹配的索引也会做出比较。会在存储引擎层将不满足的数据直接过滤掉。 打开和关闭ICP 当ICP特性被打开之后,Explain 字段会显示 “Using inde 阅读全文
posted @ 2017-11-26 19:00 alin_qu 阅读(227) 评论(0) 推荐(0)
摘要:第一部分:名称解释 文档地址 EXPLAIN Join Types: system const eq_ref ref ref_or_null unique_subquery range index 第二部分:数据演示 1.查看表数据类型 有一个主键ID 两个普通索引 还有一个联合索引 2.查看数据大 阅读全文
posted @ 2017-11-25 19:10 alin_qu 阅读(741) 评论(0) 推荐(0)
摘要:autocommit 和 start transaction 都是事务相关的命令。类似MyISAM的mysql引擎就不支持。 autocommit 默认是ON状态,即sql语句是自动提交的 start transaction 优先级较高,当运行这个命令之后,只有commit之后,sql命令运行的结果 阅读全文
posted @ 2016-06-06 18:34 alin_qu 阅读(540) 评论(0) 推荐(0)