《MySQL技术内幕(SQL编程)》——基础
引言
由于之前的工作对Mysql应用不多,感觉需要补充下这方面的知识。
对MySQL的了解只是简单的CRUD操作,甚至对于case when的用法以及Date类型和Timestamp类型的区别都忘了,
因此开启这个读书笔记系列。
Mysql数据库的体系结构
MySQL数据库由以下几部分组成:
- 连接池组件(Connection Pool)。
- 管理服务和工具组件(Management Services&Utilities)。
- SQL接口组件(SQL Interface)。
- 查询分析器组件(Parser)。
- 优化器组件(Optimizer)。
- 缓冲组件(Caches&Buffers)。
- 插件式存储引擎(Pluggable Storage Engines)。
- 物理文件(File system)
存储引擎
其中存储引擎主要有:InnoDB、MyISAM等
InnoDB存储引擎:支持事务。其设计目标主要面向OLTP(见下一小节的分析)的应用。
其特点是行锁设计、支持外键,并支持类似
Oracle的非锁定读,即默认读取操作不会产生锁。从MySQL 5.5.8版
本开始是默认的存储引擎。
对于表中数据的存储,InnoDB存储引擎采用了聚集(clustered)
的方式,每张表都是按主键的顺序进行存储的,如果没有显式地在表
定义时指定主键,InnoDB存储引擎会为每一行生成一个6字节的
ROWID,并以此作为主键。
MyISAM存储引擎:不支持事务、表锁设计、支持全文索引。主
要面向一些OLAP数据库应用。在MySQL 5.5.8版本之前是默认的存储引擎。
此外,MyISAM存储引擎的另一个与众不同的地方
是,它的缓冲池只缓存(cache)索引文件,而不缓存数据文件,这
与大多数的数据库都不相同。
NDB存储引擎:NDB存储引擎是一个集群存储引擎,其结构是share nothing的集群架构,
能提供高级别的高可用性。NDB存储引擎的特点是数据全部放在内存中(从5.1版本开
始,可以将非索引数据放在磁盘上),因此主键查找(primary key
lookups)的速度极快,并且能够在线添加NDB数据存储节点(data
node)以便线性地提高数据库性能。由此可见,NDB存储引擎是
高可用、高性能、高可扩展性的数据库集群系统,其面向的也是OLTP的
数据库应用类型。
Memory存储引擎:正如其名,Memory存储引擎中的数据都存放
在内存中,数据库重启或发生崩溃,表中的数据都将消失。它非常适
合于存储OLTP数据库应用中临时数据的临时表,也可以作为OLAP
数据库应用中数据仓库的维度表。Memory存储引擎默认使用哈希索
引,而不是通常熟悉的B+树索引。
Infobright存储引擎:第三方的存储引擎。其特点是存储是按照列
而非行的,因此非常适合OLAP的数据库应用。
OLTP与OLAP的比较
OLTP主要执行基本的、日常的事务处理,比如在银行存取一笔
款,就是一个事务交易。OLTP的特点一般有:
实时性要求高。
查询的数据量不是很大。
交易一般是确定的,所以OLTP是对确定性的数据进行存取。
并发性要求高,并且严格要求事务的完整性、安全性。
OLAP是数据仓库系统的主要应用,其典型的应用就是复杂的动
态报表系统。OLAP的特点一般有:
实时性要求不是很高,很多应用最多每天更新一次数据。
数据量大。因为OLAP支持的是动态查询,用户要通过对很多数
据的统计才能得到想要知道的信息,如时间序列分析等,所以处理的
数据量很大。
因为重点在于决策支持,所以查询一般是动态的,也就是说允许
用户随时提出查询的要求。因此,在OLAP中通过一个重要概
念“维”来搭建一个动态查询的平台(或技术),供用户自己决定需要
知道的信息。
感觉OLAP更适合于做数据仓库
《MySQL技术内幕(SQL编程)》——基础相关推荐
- MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02
MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...
- 读书笔记之MySQL技术内幕
前言 本文内容基本摘抄自<MySQL技术内幕 InnoDB存储引擎>,以供复习之用,没有多少参考价值.想要更详细了解请参考原书. 第一章.MySQL体系结构和存储引擎 数据库是物理操作系统 ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01
MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...
- mysql技术内幕sampdb_MySQL技术内幕汇总
MySql技术内幕之MySQL入门(1) 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结果,则没有安装.否则表示已经安装. sud ...
- mysql技术内幕sampdb_MySql技术内幕之MySQL入门(1)
MySql技术内幕之MySQL入门(1) 安装 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结果,则没有安装.否则表示已经安装. ...
- Mysql技术内幕InnoDB存储引擎——InnoDB存储引擎
特此申明: 前段时间找工作所以看了<Mysql技术内幕InnoDB存储引擎>,整理的时候除了参考网上已有的笔记贴,加上自己整合的,可能和别人有雷同之处.不过无所谓啦,写出来自己看看,需要的 ...
- 视频教程-赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础-Oracle
赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblo ...
- MySQL技术内幕 InnoDB存储引擎:锁问题(脏读、不可重复读)
1.脏读 在理解脏读(Dirty Read)之前,需要理解脏数据的概念.但是脏数据和之前所介绍的脏页完全是两种不同的概念.脏页指的是在缓冲池中已经被修改的页,但是还没有刷新到磁盘中,即数据库实例内存中 ...
- MySQL必知必会教程:深入理解MySQL技术内幕
2019独角兽企业重金招聘Python工程师标准>>> MySQL必知必会教程:深入理解MySQL技术内幕 作为最流行的开源数据库软件之一,MySQL数据库软件已经是广为人知了.当前 ...
最新文章
- CTC损失函数 Transformer用的
- 分布式数据库管理系统
- JavaScript 技术篇-js获取document的几种方式,js获取dom元素的常用方法。
- 每周分享第8期(2019.5.25)
- 将pcre、zlib等包编译进nginx里去(转)
- java多线程创建runnable_Java线程池和runnables创建runnables
- eclipse导入Java源码
- (原創) 這學期C++完美的Ending (C/C++) (日記)
- You Don't Have To Say Goodbye
- oracle补丁冲突解决方法,【学习笔记】Oracle RAC升级安装patch补丁的问题和解决办法...
- 用PHPphpstudy写一个可以登录的简单网页
- 基于物联网技术的校园智慧消防管理平台-Susie 周
- element-ui表格的滚动条样式修改(当固定table表格高度时默认滚动条样式太丑)
- 超百万观众同场看直播流畅不卡顿,快手如何做到的?|首次披露
- 使用redis的setnx可以非同一线程进行加锁和解锁(附源码)
- kodi linux版本,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面
- Excel中建立数据透视表,想用计算字段功能,但是该选项灰色无法点击,怎么办?
- DataStream API:Overview
- 不在数组里的最小正整数
- 秒杀系统,架构与优化细节