zoukankan      html  css  js  c++  java
  • mysql-笔记-性能

    Mysqldump 工具 导出数据到文件
    Alter table mytable engine= innodb 修改表的存储引擎
    Insert select导入数据到其他引擎 prercona toolkit 提供的pt-online-schema-change 工具
    基准测试 先确定测试目标
    指标:吞吐量 单位时间内的事务处理数 http://www.tpc.org 参考 主要针对在线事务处理的吞吐量,适用于多用户的交互式应用。常用 的测试单位是每秒事务数TPS
    响应时间:用于测试任务所需的整体时间。最大响应时间每次都不同,可以使用百分比响应时间 percentile response time 来替代最大响应时间。
    并发性:在任意时间有多少同时发生的并发请求。关注正在工作中的并发操作,测试应用在不同并发下的性能
    mysql数据库的并发性可以通过 sysbench 指定 32 64 128个线程的测试。记录mysql数据库的 threads_running 状态值
    可扩展性:
    测试规划应该记录测试数据、系统配置的步骤、如何测试和分析结果、以及预热的方案等
    应建立将参数和结果文档化的规范
    Pt-diskstats 工具 捕获/proc/diskstats的数据为后续分析磁盘IO使用。
    脚本语言:shell php perl 尽可能地使所有测试过程都自动化 包括 装载数据、系统预热、执行测试、记录结果

    基准测试工具 ---集成式测试工具
    1 Ab 是一个apache http 服务器基准测试工具 可以测试http服务器每秒可以处理多少请求。只能针对单个url 进行尽可以快的压力测试。
    Http_load 对web服务器进行测试。可以通过一个输入文件提供多个url
    Jmeter 是一个java 应用程序,可以加载其他应用并测试其性能。可以用于测试其他诸如FTP服务器,测试web应用,或者通过jDbc进行数据库查询测试
    Mysql 的benchmark()函数,可以测试某些特定操作的执行速度,参数可以是执行的次数和表达式
    Set @ input :='hello world'; Benchmark(100000,md5(@input)); benchmark(100000,sha1(@input));
    mysql基准测试套件:在安装目录 下的sql-bench 子目录中
    Sysbench 可以执行多种类型的基准测试,可以用于测试数据库的性能,数据库服务器的性能
    mysql剖析服务器性能:
    New relic 插入到应用程序中进行性能剖析,将收集到的数据发送到一个基于WEB的仪表盘。浏览器、应用代码、数据库及其他外部调用。
    IFP工具
    2 慢查询日志 是开销最低、精度最高的测量查询时间的工具。带来的开销可以忽略不计。生成剖析报告再分板查询日志 工具:pt-query-digest
    通用日志:在查询请求到服务器时进行记录,不包含响应时间和执行计划
    v/m :方差均值比也就是离差指数,离差指数商的查询对应的执行时间的变化较大,通常值得优化。
    Show profile 查询剖析工具 默认是禁用的,在会话级别动态修改:set profiling=1;
    Select * from tt1 ; show profiles; show profile for query 2; select state,duration from information_schema.profiling order by duration;

    Show status; 返回一些计数器包含:全局计数器、会员级另计数器。Show global status; 从服务器启动时开始计算的查询次数统计。
    慢查询日志中详细 记录的条目包含了show profile 和show status所有的输出。通过 pt-query-digest(用于分析mysql慢查询的一个工具) 发现 坏 查询后,在慢查询日志 中可以获得足够有用的信息
    Explain 显示了mysql如何使用索引来处理select语句以及连接表,在select 语句前加上explain就可以:
    Explain select * from a,b where a.id=b.id
    dns是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库。能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
    开启慢查询日志,可以让mysql记录下查询超过指定时间的语句
    Slow_query _log 慢查询开启状态
    Slow_query_log_file 慢查询日志存放的位置,这个目录需要mysql的运行账号的可写权限,一般设置为mysql的数据存放目录
    Long_query_time查询超过多少秒才记录
    Show variables like 'slow_query%'; show variables like 'long_query_time';
    将slow_query_log 全局变量设置为 on 状态:set global slow_query_log='ON';
    设置慢查询日志存放的位置:set global slow_query_log_file='/usr/local/mysql/data/slow.log';
    查询超过1秒就记录:set global long_query_time=1;
    配置文件设置:my.cnf 在[mysqld]下加入 slow_query_log=ON slow_query_log_file=/slow.log long_query_time=1
    重启mysql服务:
    测试:select sleep(2);

  • 相关阅读:
    Codeforces 451A Game With Sticks
    POJ 3624 Charm Bracelet
    POJ 2127 Greatest Common Increasing Subsequence
    POJ 1458 Common Subsequence
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1698
    HDU 1754
    POJ 1724
    POJ 1201
    CSUOJ 1256
  • 原文地址:https://www.cnblogs.com/caojuansh/p/11250124.html
Copyright © 2011-2022 走看看