数据库优化-基准测试(二)

如何执行基准测试

测试条件

–如何避免常见的错误?需要在一个真实的环境中运行基准测试。

  • 相似或相同的硬件

    包括CPU、内存、网络、IO系统

  • 相同的软件配置
  • 相似的数据集大小
  • 相似的数据分布
  • 相似的访问模式

    –避免查询和数据缓存

    –重新构建访问的分布

  • 相当的线程数量

    –多用户和多服务器

记录所有信息

  • 宁可记录无用的信息也不错过重要的信息
  • 文档化所有的步骤以便于重新执行基准测试
  • 配置:硬件、软件版本和参数、数据大小、数据集
  • 收集硬件统计信息(CPU、磁盘、网络、内存)
  • 收集软件统计信息(GLOBAL STATUS, INNODB STATUS)
  • 组织输出的结果

隔离基准测试环境

  • 在不作其他用途的系统上运行基准测试
  • 避免环境的共用(虚拟机或SAN)
  • 确保没有其它应用程序使用网络
  • 在相同的条件下启动(warmup)
  • (如果可能)在每次基准测试前启动系统
  • 禁用所有可能干扰基准测试的程序(crons)

自动化基准测试

自动化测试的好处:

- 简化可重复执行

- 避免人工错误

- 改善文档化

- 易于重新执行

- 易于分析

测试结果分析

  • 处理所有采集的数据
  • 识别哪些数据提供有用的信息
  • 回答目标中定义的问题
  • 对结果进行文档化
  • 总结测试结果
  • 定义测试指标
时间: 2024-11-04 06:34:45

数据库优化-基准测试(二)的相关文章

MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. 什么是子查询:当一个查询是另一个查询的子部分时,称之为子查询. 2. 查询的子部分,包含的情况: a) 目标列位置:子查询如果位于目标列,则只能是标量子查询,否则数据库可能返回类似“错误:子查询只能返回一个字段 ( [Err] 1242 - Subquery returns more than 1

数据库优化的“二五五二”原则

数据库优化对于实际项目开发有着非常重要的意义,笔者根据自己的学习将数据库的优化总结为以下的“二五五二”原则. “二五五二”原则将数据库的优化划分为四个部分,即分析.设计.实现.运维. 分析阶段(二): ①根据项目需求,分析系统的性能以及需要的硬件条 件. ②根据需求,判断该系统属于OLTP还是OLAP. 设计阶段(五): ①存储环境的物理设计. ②设计合理的索引和视图. ③合理使用冗余,即表的规范化与反规范化处理. ④选择合适的数据类型. ⑤合理设置主外键约束以及其它约束. 实现阶段(五): ①

数据库优化(二)—— MySQL索引优化

目录 MySQL的索引优化 一.MySQL 5.7的初始化配置 二.MySQL配置文件 1.配置 2.配置文件作用 三.多实例 1.创建相关的目录 2.创建实例的配置文件 3.初始化 4.授权 5.启动实例 6.查看启动状况 7.测试 8.配置启动脚本 9.开机自启 10.设定mysql密码 11.忘记密码 四.数据类型 1.整型 2.字符串类型 3.时间类型 规范 五.索引 1.索引作用 2.索引种类 3.Btree 分类 4.聚集索引和辅助索引的对比 六.MySQL索引管理 1.创建索引(辅

数据库优化-基准测试(三)

基准测试工具 基准测试工具:mysqlslap 是MySQL官方提供的性能基准测试工具,通过客户端模拟工作负载. 其执行包括三个阶段: 1. 创建表结构和加载数据 2. 运行测试 3. 清理数据 #例子1:--only-print 只输出SQL语句并打印 --auto-generate-sql 代表用系统自己生成的SQL脚本来测试 $ mysqlslap --only-print --auto-generate-sql DROP SCHEMA IF EXISTS `mysqlslap`; CRE

数据库优化-基准测试(五)

基准测试工具:DBT2 DBT2是一个OLTP事务性能测试工具.它模拟一个批发供应商,多个职员访问数据库,更新客户信息和检查库存. DBT2是一个TPC's TPC-C基准测试规范的不错的实现,它是MySQL的最流行的基准测试工具之一,但它的文档很缺乏. DBT2:安装Perl模块 DBT2需要的Perl模块: Statistics::Descriptive Test::Parser Test::Reporter 安装Perl模块的方法: $ sudo cpan Statistics::Desc

数据库优化-基准测试(一)

基准测试的目的 基准测试是为了找出系统的瓶颈,包括: 硬件 磁盘.内存.网络等. 操作系统 文件系统.内存管理.驱动.调度等. RDBMS SQL层.存储引擎层. Schema设计 索引.表结构.数据类型. Query Query写的不好.逻辑错误. 应用程序问题 系统各部分之间的交互 磁盘IO.RAM.RDBMS等. 测量值 如何测量?哪里最花时间?哪个组件最忙? 找出造成瓶颈的原因 系统测试计划的需求 选择正确的硬件和软件 : 理解系统的行为 : 理解系统的性能 : 对系统做正确调优和配置

数据库优化(十二)-tpch中Q3-Q5仅仅在sql优化方面的分析

--Q3; 1.1执行计划 EXPLAIN EXTENDED SELECT L_ORDERKEY, SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS REVENUE, O_ORDERDATE, O_SHIPPRIORITY FROM CUSTOMER, ORDERS, LINEITEM WHERE C_MKTSEGMENT = 'BUILDING' AND C_CUSTKEY = O_CUSTKEY AND L_ORDERKEY = O_ORDERKEY AN

数据库优化-基准测试(四)

基准测试工具:sysbench 简述 sysbench多线程基准测试工具,可以测试: 文件I/O性能 Scheduler性能 内存分配和转换速度 POSIX线程实现性能 数据库服务器性能(OLTP) 工具初始开发用于MySQL的性能测试,现在已经扩展到其它数据库. 获取工具的网址: https://code.launchpad.net/~sysbench-developers/sysbench/0.5 http://sysbench.sourceforge.net/ http://dev.mys

优化页面访问速度(二) ——数据库优化

优化页面访问速度(二) ——数据库优化 一.概述 数据库优化,主要包括数据表设计.索引.sql语句.表拆分.数据库服务器架构等方向的优化. 二.数据库设计 在建表的时候,就需要考虑到将来的使用场景,尽量在建表初期就设计好. 1.存储引擎 Mysql常被提到的存储引擎就是InnoDB和MySIAM,其实现在主要都在用InnoDB了.两者的区别: InnoDB支持事务,索引和数据存在一个文件,主键查询速度快(主键就是索引B+树的叶子节点,而数据就绑定在叶子节点),行级锁,支持外键,恢复起来较快. M