文章 78
评论 0
浏览 8362
11-MySQL优化及其他

11-MySQL优化及其他

7 性能优化 数据库服务衡量指标: Qps:query per second Tps:transaction per second 7.1 压力测试工具 7.1.1 常见 MySQL 压力测试工具 mysqlslap Sysbench:功能强大,官网: https://github.com/akopytov/sysbench tpcc-mysql MySQL Benchmark Suite MySQL super-smack MyBench 7.1.2 mysqlslap mysqlslap:来自于mariadb包,测试的过程默认生成一个mysqlslap的schema,生成测试表t1,查询和插入测试数据,mysqlslap库自动生成,如果已经存在则先删除。用--only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹 使用格式: mysqlslap [options] 常用参数 [options] 说明: --auto-generate-sql, -a #自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力 --auto....

10-MySQL 高可用

10-MySQL 高可用

6.3 MySQL 高可用 6.3.1 MySQL 高可用解决方案 MySQL官方和社区里推出了很多高可用的解决方案,大体如下,仅供参考(数据引用自Percona) MMM: Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql MasterMaster复制的配置(同一时间只有一个节点是可写的) 官网: http://www.mysql-mmm.org https://code.google.com/archive/p/mysql-master-master/downloads MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用....

9-MySQL集群架构-读写分离

9-MySQL集群架构-读写分离

6.2 MySQL 中间件代理服务器 6.2.1 关系型数据库和 NoSQL 数据库 数据库主要分为两大类:关系型数据库与 NoSQL 数据库。 关系型数据库,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库中的数据。主流的 MySQL、Oracle、MS SQL Server 和 DB2 都属于这类传统数据库。 NoSQL 数据库,全称为 Not Only SQL,意思就是适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。主要分为临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase),每种 NoSQL 都有其特有的使用场景及优点。 Oracle,mysql 等传统的关系数据库非常成熟并且已大规模商用,为什么还要用 NoSQL 数据库呢?主要是由于随着互联网发展,数据量越来越大,对性能要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且....

8- MySQL 集群-主从复制

8- MySQL 集群-主从复制

6 MySQL 集群 Cluster 服务性能扩展方式 Scale Up,向上扩展,垂直扩展 Scale Out,向外扩展,横向扩展 6.1 MySQL 主从复制 6.1.1 主从复制架构和原理 6.1.1.1 MySQL的主从复制 读写分离 复制:每个节点都有相同的数据集,向外扩展,基于二进制日志的单向复制 6.1.1.2 复制的功用 负载均衡读操作 备份 高可用和故障切换 数据分布 MySQL升级 6.1.1.3 复制架构 一主一从复制架构 一主多从复制架构 6.1.1.4 主从复制原理 主从复制相关线程 主节点 dump Thread:为每个Slave的I/O Thread启动一个dump线程,用于向其发送binary log events 从节点 I/O Thread:向Master请求二进制日志事件,并保存于中继日志中 SQL Thread:从中继日志中读取日志事件,在本地完成重放 跟复制功能相关的文件: master.info:用于保存slave连接至master时的相关信息,例如账号、密码、服务器地址等 relay-log.info:保....

7-MySQL备份和恢复

7-MySQL备份和恢复

5 备份和恢复 5.1 备份恢复概述 5.1.1 为什么要备份 灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等数据丢失场景 5.1.2 备份类型 完全备份,部分备份 完全备份:整个数据集 部分备份:只备份数据子集,如部分库或表 完全备份、增量备份、差异备份 增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂 差异备份:仅备份最近一次完全备份以来变化的数据,备份较慢,还原简单 注意:二进制日志文件不应该与数据文件放在同一磁盘 冷、温、热备份 冷备:读、写操作均不可进行,数据库停止服务 温备:读操作可执行;但写操作不可执行 热备:读、写操作均可执行 MyISAM:温备,不支持热备 InnoDB:都支持 物理和逻辑备份 物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快 逻辑备份:从数据库中"导出"数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度 5.1.3 备份什么 数据 二进制日志、InnoDB的事务日志 用户帐号,权限设置,程序代码(存储过....

6-MySQL架构和性能优化(重点)

6-MySQL架构和性能优化(重点)

4 MySQL 架构和性能优化 4.1 MySQL架构 MySQL是C/S 架构的 4.1.1 connectors(连接器) 可供Native C API、JDBC、ODBC、NET、PHP、Perl、Python、Ruby、Cobol 等连接mysql;ODBC叫开放数据库(系统)互联,open database connection;JDBC是主要用于java语言利用较为底层的驱动连接数据库;以上这些,站在编程角度可以理解为连入数据库管理系统的驱动,站在mysql角度称作专用语言对应的链接器.任何链接器连入mysql以后,mysql是单进程多线程模型的,因此,每个用户连接,都会创建一个单独的连接线程;其实mysql连接也有长短连接两种方式,使用mysql客户端连入数据库后,直到使用quit命令才退出,可认为是长连接;使用mysql中的-e选项,在mysql客户端向服务器端申请运行一个命令后则立即退出,也就意味着连接会立即断开;所以,mysql也支持长短连接类似于两种类型;所以,用户连入mysql后,创建一个连接线程,完成之后,能够通过这个链接线程完成接收客户端发来的请求,为其处.....

5-MYSQL数据库其他功能

5-MYSQL数据库其他功能

3.8 VIEW视图 视图:虚拟表,保存有实表的查询结果,相当于别名 利用视图,可以隐藏表的真实结构,在程序中利用视图进行查询,可以避免表结构的变化,而修改程序,降低程序和数据库之间的耦合度 创建方法: CREATE VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 查看视图定义: SHOW CREATE VIEW view_name #只能看视图定义 SHOW CREATE TABLE view_name # 可以查看表和视图 删除视图: DROP VIEW [IF EXISTS] view_name [, view_name] ... [RESTRICT | CASCADE] 注意:视图中的数据事实上存储于"基表"中,因此,其修改操作也会针对基表实现;其修改操作受基表限制 范例: create view v_st_co_sc as select st.name,co.course,sc.score from students st inner jo.......

4-DQL 语句

4-DQL 语句

3.7 DQL 语句 3.7.1 单表操作 语法: SELECT [ALL | DISTINCT | DISTINCTROW ] [SQL_CACHE | SQL_NO_CACHE] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [FOR UPDATE | LOCK IN SHARE MODE] 说明: 字段显示可以使用别名: col1 AS alias1, col2 AS alias2, ... WHERE子句:指明过滤条件以实现"选择"的功能:....

3-SQL 语言-DDL,DML

3-SQL 语言-DDL,DML

3 SQL 语言 3.1 关系型数据库的常见组件 数据库:database 表:table,行:row 列:column 索引:index 视图:view 存储过程:procedure 存储函数:function 触发器:trigger 事件调度器:event scheduler,任务计划 用户:user 权限:privilege 3.2 SQL语言的兴起与语法标准 目前,所有主要的关系数据库管理系统支持某些形式的SQL,大部分数据库至少遵守ANSI SQL89标准,虽然有这一标准的存在,但大部分的SQL代码在不同的数据库系统中并不具有完全的跨平台性业内标准 微软和Sybase的T-SQL,Oracle的PL/SQL 3.2.1 SQL 语言规范 在数据库系统中,SQL 语句不区分大小写,建议用大写 SQL语句可单行或多行书写,默认以 " ; " 结尾 关键词不能跨多行或简写 用空格和TAB 缩进来提高语句的可读性 子句通常位于独立行,便于编辑,提高可读性 注释: SQL标准: #单行注释,注意有空格 -- 注释内容 #多行注释 /注释内容 注释内容 注释内容/ MyS....

2-MySQL安装和基本使用

2-MySQL安装和基本使用

2 MySQL安装和基本使用 2.1 MySQL 介绍 2.1.1 MySQL 历史 1979年:TcX公司 Monty Widenius,Unireg 1996年:发布MySQL1.0,Solaris版本,Linux版本 1999年:MySQL AB公司,瑞典 2003年:MySQL 5.0版本,提供视图、存储过程等功能 2008年:Sun公司 以10亿美元收购MySQL 2009年:Oracle公司以 75 亿美元收购 sun 公司 2009年:Monty成立MariaDB 2.2.2 MySQL系列 2.2.2.1 MySQL 的三大主要分支 mysql mariadb percona Server 2.2.2.2 官方网址 https://www.mysql.com/ http://mariadb.org/ https://www.percona.com 2.2.2.3 官方文档 https://dev.mysql.com/doc/ https://mariadb.com/kb/en/ https://www.percona.com/software/mysql-datab......

1-关系型数据库理论

1-关系型数据库理论

1 关系型数据库理论 1.1 实体-联系模型E-R 实体Entity:客观存在并可以相互区分的客观事物或抽象事件称为实体,在E-R图中用矩形框表示实体,把实体名写在框内 属性:实体所具有的特征或性质 联系:联系是数据之间的关联集合,是客观存在的应用语义链 实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之有一种关联关系 实体之间的联系:指不同实体之间联系。例:学生选课实体和学生基本信息实体之间 实体之间的联系用菱形框表示 1.2 联系类型 一对一联系(1:1) 一对多联系(1:n):外键 多对多联系(m:n):增加第三张表 1.3 数据的操作 开发工程师 CURD (Create,Update,Read,Delete) 数据提取:在数据集合中提取感兴趣的内容。SELECT 数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE 1.4 数据库规划流程 收集数据,得到字段 收集必要且完整的数据项 转换成数据表的字段 把字段分类,归入表,建立表的关联 关联:表和表间的关系 分割数据表并建立关联的优点 节省空间 减....

生而为人