mysql系统架构
数据处理值增删查改
数据类型和约束分页
索引和慢查询性能分析
数据库安全- 防止 SQL注入
数据库设计ER图设计
数据库事务和锁
数据库设计的三大范式
分组和聚合函数
基于角色的权限访问控制
role based access Control
1 数据库介绍
- 数据库的作用:保存数据
- 数据库的本质:也是一个个文件
- mysql数据库利于数据的管理(增加,修改,删除,查询)
- 只要学会一门数据库,其他数据库都是触类旁通
- 数据库密码 8位以上,数字和英文
- Mysql数据库的缺点
- 海量数据处理的时候效率会显著变慢
2 数据库分类
非关系型数据库 NoSQL Not Only SQL 不仅仅是SQL
- 临时性键值存储
- memcached、Redis
- 永久性键值存储
- ROMA、Redis
- 面向文档的数据库
- MongoDB、CouchDB
- 面向列的数据库
- Cassandra、HBase
- 列族数据库, 将数据放在列里面, 每组数据都在一个列里面
- MongoDB
- 主要解决海量数据的访问效率问题
- Redis
- 内存数据库,做高速缓存
- 可靠高性能的、功能丰富的Key-Value 存储数据库
- 数据量较小的更性能操作和运算上
- Memcached
- 内存数据库
- 用在动态系统中减少数据库负载,提升性能;
- 做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding)
NoSQL 数据库不支持事务
Redis & Memcached 区别 https://www.cnblogs.com/457248499-qq-com/p/7392653.html
关系型数据库 Structured QueryLanguage 结构化查询语言
关系型数据库的缺点
- 大量数据的写入
- 对简单的查询需要快速返回结果的处理
- 字段不固定时的应用
- 为有数据更新的表做索引或表结构 schema 的变更
- 读写集中在一个数据上,会让数据库不堪重负,使用主从复制-实现读写分离,提高读写性能和读库的扩展性
- 数据的写入有 主数据库负责
- 数据的读入有 从数据库负责
- 关系型数据库与 NoSQL数据库是互补的关系,让 NoSQL数据库对关系数据库的不足进行弥补
- 通常情况下使用关系型数据库,在适合用 NoSQL的时候用 NoSQL,
- SQL Server
- 微软的产品, 是.net 程序员的最爱,
- 主要用于开发中型的项目,也可以开发大型项目
- Oracle
- 甲骨文公司, 是javaee程序员的最爱,
- 主要用于开发中型的项目,也可以开发大型项目
- Mysql
- mysql数据库最早是sun公司[java/solaris],后面sun公司被甲骨文公司收购了,
- php 程序员的最爱,
- mysql 数据库也可以开发中型和大型项目,尤其对多并发有很好处理
- DB2 开发电信级的项目
- IBM公司(蓝色巨人),是javaEE程序员使用到,
- 主要用于开发大型项目(金融,证券,海关.) 都是电信级的项目
- infomix 银行用的多
- IBM公司, 安全性很好,
- 在银行系统使用的特别的多
2.1 Mysql & MongoDB 的应用场景
Mysql & MongoDB是平级
- Mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类)
- 从 data models 数据模型设计阶段就将原子性考虑于其中,无需事务之类的辅助
- 开发用如nodejs之类的语言来进行开发,对开发比较方便
- Mongodb本身的failover机制,无需使用如MHA之类的方式实现
- 将 Mongodb作为类似redis ,memcache来做缓存DB,为mysql提供服务
- 将 Mongodb做为辅助mysql而使用的类redis memcache 之类的缓存DB来使用
- 或是仅作日志收集分析
3 Mysql 发展前景
- 开源的数据库
- 去IOE的受益者
- Oracle 从业人员趋于稳定
- 更有前途
4 Mysql如何到大神
- 职业规划
数据库设计,指导公司数据库整体架构
应用程序建表
表的索引创建
SQL优化
搭建高可用集群,大规模运维
监控数据库状态
数据备份 / 恢复
数据库内核级开发,深入学习 Mysql内核原理,快速定位问题,根据需求定制源码
处理内核级的相关
跟踪最新的数据库内核
2. 要事第一
3. 吃透原理
4. 测试验证
5. 提升原理
5 Mysql相关技能
备份
备份原理
逻辑备份
物理备份
备份工具
监控
监控指示:LOAD CPU TPS QPS IOW AIT CONN
监控系统:ZABBIX
高可用
为什么要高可用?
传统的主从复制
MHA
高性能
深入理解体系结构,SQL优化
6 Linux
Shell 终端
7 数据理论
1.关系型数据库基础理论
MVCC / ACID
范式设计
索引设计
分布式数据库基础理论
PC
CAP
base
paxos 算法数据处理
OLTP
OLAP