数据库
lzcWHUT
这个作者很懒,什么都没留下…
展开
-
高性能MySQL(第三版)第一章: MySQL架构与历史
《高性能MySql》阅读笔记(1)1 MySql架构1.1 MySql逻辑架构1.2 读写锁1.3 锁粒度1.4 死锁1.5 事务1.6 事务的隔离级别1.7 多版本并发控制(MVCC)2 存储引擎2.1特点2.2 MyISAM2.2.1 特性2.2.2 MyISAM压缩2.2.3 MyISAM适用场景2.3 InnoDB2.3.1 特性2.3.2 适用场景2.4 MyISAM与InnoDB比较2...原创 2019-08-06 10:24:30 · 445 阅读 · 1 评论 -
常用的分布式事务解决方案
众所周知,数据库能实现本地事务,也就是在同一个数据库中,你可以允许一组操作要么全都正确执行,要么全都不执行。这里特别强调了本地事务,也就是目前的数据库只能支持同一个数据库中的事务。但现在的系统往往采用微服务架构,业务系统拥有独立的数据库,因此就出现了跨多个数据库的事务需求,这种事务即为“分布式事务”。那么在目前数据库不支持跨库事务的情况下,我们应该如何实现分布式事务呢?本文首先会为大家梳理分布式...转载 2019-08-06 16:42:19 · 165 阅读 · 0 评论 -
MySQL中的锁
MySQL/InnoDB的加锁,一直是一个面试中常问的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?我在工作过程中,也会经常用到,乐观锁,排它锁,等。于是今天就对这几个概念进行学习,屡屡思路,记录一下。注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。存储引擎查看MyS...转载 2019-08-08 11:10:11 · 157 阅读 · 0 评论 -
Mybatis中#{ } 与${ } 的区别
Mybatis中#{ } 与${ } 的区别 区别:(1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是id,则解析成的sql为order by "id"。(2)$将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是id,则解析成的sql为or...原创 2019-06-24 14:27:11 · 203 阅读 · 0 评论 -
SQL中ON和WHERE的区别
SQL中ON和WHERE的区别数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left&nb...转载 2019-06-17 20:02:20 · 296 阅读 · 0 评论 -
MySQL中In与Exists的区别
MySQL中In与Exists的区别1 例子2 EXISTS和IN的介绍2.1 exists2.2 in2.3 使用上的区别3 EXISTS和IN的性能分析总结1 例子有两个表需要关联查询,表的情况如下:# 2759174行数据SELECT COUNT(*) FROM tb_data t1;# 7262行数据SELECT COUNT(*) FROM tb_task t2;# 执行...原创 2019-06-17 19:11:50 · 33762 阅读 · 11 评论 -
【mycat】mycat在windows环境下的安装和启动
1、下载从如下地址下载mycat的安装包:http://www.mycat.io/2、解压解压下载的安装包3、安装安装mycat前需要先安装jdk和mysql。mycat1.6版本建议使用的jdk是1.7以上版本,mysql建议使用5.6版本。安装玩jdk和mysql后,进入mycat解压目录下的bin目录,如本文的路径如下:D:\Program Files (x86)\mycat...转载 2019-06-04 18:30:18 · 1010 阅读 · 0 评论 -
高性能MySQL(第三版)第八章:优化服务器设置
第八章 优化服务器设置8.1 创建MySQL配置文件8.2 配置基础知识8.2.1 语法,作用域及动态性8.2.2 设置变量的副作用8.2.3 开始配置8.3 通用调优原则8.3.1 内存使用调优8.3.2 MyISAM键缓存8.3.3 InnoDB缓冲池8.3.4 线程缓存8.3.5 表缓存8.3.6 InnoDB数据字典8.4 MySQL I/O调优8.4.1 MyISAM的 I/O调优8....原创 2019-05-09 15:13:27 · 351 阅读 · 0 评论 -
高性能MySQL(第三版)第十五章:备份与恢复
第十五章 备份与恢复15.1 为什么要备份15.2 定义恢复需求15.3 设计MySQL备份方案15.3.1 在线备份还是离线备份15.3.2 逻辑备份还是物理备份15.3.3 备份什么15.3.4 存储引擎和一致性15.4 管理和备份二进制日志15.4.1 二进制日志格式:15.4.2 安全清理二进制日志15.5 备份数据15.6 从备份中恢复15.7 总结:15.1 为什么要备份灾难恢复...原创 2019-05-13 16:34:32 · 415 阅读 · 0 评论 -
高性能MySQL(第三版)第十一章:可扩展的MySQL
第十一章 可扩展的MySQL11.1 什么是可扩展性11.2 扩展MySQL11.2.1 向上扩展11.2.2 向外扩展11.2.3 多实例扩展11.2.4 集群扩展11.2.5 向内扩展11.3 负载均衡11.3.1 直接连接11.3.2 引入中间件11.3.3 一主多备间的负载均衡11.4 总结11.1 什么是可扩展性可扩展性。 即通过增加资源提升整个系统吞吐量的能力一般会有如下的角度影...原创 2019-05-11 15:08:19 · 665 阅读 · 0 评论 -
高性能MySQL(第三版)第十章:复制
第十章 复制10.1 复制概述10.1.1 复制解决的问题10.1.2 复制如何工作10.2 配置复制10.3 复制原理10.3.1 基于语句的复制10.3.2 基于行的复制10.1 复制概述复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。MySQL支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过主库上记录的二进制日志,在备库重放日志的方式来实现异步的数据复...原创 2019-05-10 21:41:05 · 348 阅读 · 0 评论 -
高性能MySQL(第三版)第六章:查询性能优化
第六章 查询性能优化6.1 为什么查询速度会慢6.2 慢查询基础:优化数据访问6.2.1 是否向数据库请求了不需要的数据6.2.2 MySQL是否在扫描额外的记录6.3 重构查询的方式6.4 查询执行的基础6.4.1 MySQL客户端、服务器端通信协议6.4.2 查询缓存6.4.3 查询优化处理6.4.4 查询执行引擎6.4.5 返回结果给客户端6.5 MySQL查询优化器的局限性6.6 查询优化...原创 2019-05-07 22:19:51 · 920 阅读 · 0 评论 -
高性能MySQL(第三版)第五章:创建高性能的索引
第五章 创建高性能的索引5.1索引基础5.1.1 索引的类型5.1.1.1 B-Tree索引5.1.1.2 哈希索引5.1.1.3 空间数据索引(R-Tree)5.1.1.4 全文索引5.2 索引的优点5.3 高性能的索引策略5.3.1 独立的列5.3.2 前缀索引和索引选择性5.3.3 多列索引5.3.4 选择合适的索引列顺序(B-Tree场景)5.3.5 聚簇索引(主要关注InnoDB)5.3...原创 2019-05-07 15:53:46 · 464 阅读 · 1 评论 -
高性能MySQL(第三版)第九章:操作系统和硬件优化
第九章 操作系统和硬件优化1. CPU 那个更好,更快的CPU还是更多的CPU?2. 平衡内存和磁盘资源3. 随机的I/O和顺序的I/O4. 使用固态硬盘(闪存)5. raid的性能优化:不做过多的记录6. 优化网络以提升mysql性能7. 选择磁盘队列的调度策略 (noop,deadline,,anticipatory,cfg(默认))8.线程9. 虚拟机内存10. 操作系统的状...转载 2019-05-09 16:16:59 · 284 阅读 · 0 评论 -
高性能MySQL(第三版)第四章:Schema与数据类型优化
第四章 Schema与数据类型优化4.1 选择优化的数据类型4.1.1 整数类型4.1.2 实数类型4.1.3 字符串类型4.1.4 日期和时间类型4.1.5 位数据类型4.1.6 选择标识符(identifier)4.1.7 特殊类型数据4.2 MySQL schema设计中的陷阱4.3 范式和反范式4.3.1 范式的优点和缺点4.3.2 反范式的优点和缺点4.3.3 混合范式化和反范式化4.4...原创 2019-05-06 16:05:33 · 593 阅读 · 1 评论 -
高性能MySQL(第三版)第三章:服务器性能剖析
第三章 服务器性能剖析 高性能MySql阅读总结 在我们的技术咨询生涯中,最常碰到的三个性能相关的服务请求是:如何确认服务器是否达到了性能最佳的状态、找出某条语句为什么执行不够快,以及诊断被用户描述成“停顿” 、“堆积” 或者”卡死” 的某些间歇性疑难故障。本章...转载 2019-05-06 14:16:40 · 352 阅读 · 0 评论 -
高性能MySQL(第三版)第七章:MySQL高级特性
7. MySQL高级特性7.1 分区表7.1.1 分区表的原理7.1.2 分区表的类型7.1.3 如何使用分区表7.1.4 什么情况下会出问题7.1.5 查询优化7.1.6 合并表7.2 视图7.2.1 可更新视图7.2.2 视图对性能的影响7.2.3 视图的限制7.3 外键约束7.4 在MySQL内部存储代码(暂时无用,简单介绍)7.4.1 存储过程和函数7.4.2 触发器7.4.3 事件7.4.4 在存储过程中保留注释7.5 游标(暂时无用,简单介绍)7.6 绑定原创 2019-05-08 23:25:37 · 636 阅读 · 0 评论 -
高性能MySQL(第三版)第二章:MySQL基准测试
【笔记】高性能MySQL(第三版)第2章:MySQL基准测试 基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。简单地说,基准测试是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。但也有其他原因,如重现某个系统状态,或者做新硬件的可靠性测试。2.1 为什么需要基准测试基准测试是唯一方便有效的、可以学习系统在给定的工作...转载 2019-05-05 15:06:28 · 290 阅读 · 0 评论 -
详解 MySql InnoDB 中意向锁的作用
前言InnoDB 支持多粒度锁(multiple granularity locking),它允许行级锁与表级锁共存,而意向锁就是其中的一种表锁。意向锁(Intention Locks)需要强调一下,意向锁是一种不与行级锁冲突表级锁,这一点非常重要。意向锁分为两种:意向共享锁(intention shared lock, IS):事务有意向对表中的某些行加共享锁(S锁)-- 事务要获取...转载 2019-08-14 15:15:13 · 2378 阅读 · 7 评论