8.1 Optimization Overview
8.1 Optimization Overview 8.1 Optimization Overview
8.2 Optimizing SQL Statements
8.3 Optimization and Indexes
8.4 Optimizing Database Structure
8.5 Optimizing for InnoDB Tables
8.6 Optimizing for MyISAM Tables
8.7 Optimizing for MEMORY Tables
8.8 Understanding the Query Execution Plan
8.9 Controlling the Query Optimizer
8.10 Buffering and Caching
8.11 Optimizing Locking Operations
8.12 Optimizing the MySQL Server
8.13 Measuring Performance (Benchmarking)
8.14 Examining Thread Information 本章节介绍如何优化MySQL 性能和提供例子,优化涉及配置,调优和性能测量, 在几个层次。这取决于你的工作角色(开发,DBA或者两者的结合), 你可以优化在单个SQL层面, 整个应用,或者一个单独的数据库服务器,或者多个网络数据库服务器。 有时候你可以主动和规划性能,当其他时间你可能处理一个配置或者代码执行在一个问题发生后, 优化CPU 和内存使用可以改善可扩展性,允许数据库处理更多负载没有缓慢的情况下 8.1 Optimization Overview 优化概述: 数据库性能 取决于数据库层面的几个因素,比如表,查询和配置设置。 那些软件构造引起CPU和I/O 操作在硬件层面,你必须最小化和尽可能的有效。 当你从事数据库性能,你通过学习高层面规则和准则用于软件一侧, 和维护性能使用墙上时间。当你变为一个专家,你了解很多关于内部发生的, 开始测量东西比如CPU 周期和I/O 操作。 典型的用户目标是得到更好的数据库性能 在现有的软件和硬件配置. 高级用户寻找机会提高MySQL 软件本身,或者开发它们自己的存储引擎和硬件应用来扩展MySQL 生态系统 数据库层面优化: 最重要的因素在让一个数据库应用快是它的基本设计: 1. 表结构正确吗?特别是,确定columns有正确的数据类型, 确保每个表有合适的列对于工作的类型?比如, 应用执行频繁更新经常是很多表的少量列, 当应用 分析大量的数据经常是几个表的很多列 是否有正确的索引让查询更有效 是否使用合适的存储引擎对于每个表,并利用每个存储引擎的优势和功能 特别的,你选择一个事务存储引擎比如InnoDB 或者一个非事务存储引擎 比如MyISAM 是非常重要的 对于性能和扩展。 注意; 在MySQL 5.5和更高的版本,InnoDB 是默认的存储引擎对于新的表。 实际上, InnoDB 性能优势意味着InnoDB 表可以比MyISAM表性能好,尤其对于繁忙的数据库 每个表 使用一个合适的行格式?这个选择也取决于表使用的存储引擎。特别的, 压缩表使用更少的磁盘和需要更少的io 来读和写。压缩是可用的对于所有类型的负载使用InnoDB, 和对于只读的MyISAM表。 应用程序使用一个合适的锁策略? 比如,通过允许共享访问,数据库操作可以并发运行, 请求独占访问当适当的 这样特定的操作可以得到优先级。 再次, 存储引擎的选择是重要的。 InnoDB 存储引擎处理很多锁问题不需要你参与,允许更好的并发在数据库和降低实验和优化你的代码 所有的内存区域用于正确的cache ?也就是说, 足够大来容纳你经常访问的数据, 但是不能太大 会是内存负载太大出现paging. 主要的内存区域是配置用于InnoDB buffer pool,MyISAM key cache,和其他Mysql 查询cache. 硬件层面优化: 任何数据库应用最后达到硬件限制 当数据库变的越来越繁忙。 一个DBA必须评估是否它是可能调整应用或者重新评估server来避免那些瓶颈, 或者 是否需要更多的硬件资源,系统瓶颈通常来自这些来源: 磁盘寻道,它消耗时间对于disk来找到一个数据的部分。 随着现代磁盘的发展, 平均时间用于这个是通常小于10毫秒,因此我们可以理论上 1秒钟做100次寻址。 这时间改善使用新的磁盘是很难优化的对于单个表。 优化寻址时间是分布数据到一个或者多个磁盘。 磁盘读取和写入, 当磁盘是在正确的位置,我们需要读或者写数据。在现代磁盘,一个磁盘至少10-20M/s吞吐量。 这是容易优化相比寻到 因为你可以读从多个磁盘并行读取 内存带宽,当处理器需要更多的数据来填满cpu cache, 主要的内存带宽成为一个瓶颈。 这是一个不常见的瓶颈 可移植性和性能:
8.1 Optimization Overview的更多相关文章
- Mysql Optimization Overview
The information below i get from http://dev.mysql.com/doc/refman/8.0/en/optimize-overview.html Optim ...
- 凸优化简介 Convex Optimization Overview
最近的看的一些内容好多涉及到凸优化,没时间系统看了,简单的了解一下,凸优化的两个基本元素分别是凸函数与凸包 凸集 凸集定义如下: 也就是说在凸集内任取两点,其连线上的所有点仍在凸集之内. 凸函数 凸函 ...
- 凸优化(Convex Optimization)浅析
本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 在机器学习中, 很多情况下我们都需要求得一个 问题的全局最优值(global optimum) ...
- MySQL文档翻译(八)附英文原文---性能优化概览
优化概述 数据库性能表现依赖于数据库级别的几个因素,比如表,查询和配置设置.这些软件在硬件级别通过CPU和IO操作构筑结果,你需要尽可能的使用最少的资源达到最大的效果.当你专注于数据库的性能表现时,你 ...
- 【mysql 优化 1】优化概述
原文地址:Optimization Overview 数据库性能取决于几个数据库层面的因素,比如:表设计,查询语句,配置. 这些软件结构导致你必须在CPU和I/O 操作的硬件层面做到尽可能的最小化和高 ...
- 统计学习方法6—logistic回归和最大熵模型
目录 logistic回归和最大熵模型 1. logistic回归模型 1.1 logistic分布 1.2 二项logistic回归模型 1.3 模型参数估计 2. 最大熵模型 2.1 最大熵原理 ...
- (转载) AutoML 与轻量模型大列表
作者:guan-yuan 项目地址:awesome-AutoML-and-Lightweight-Models 博客地址:http://www.lib4dev.in/info/guan-yuan/aw ...
- (转)AutoML 与轻量模型大列表: awesome-AutoML-and-Lightweight-Models
Awesome-AutoML-and-Lightweight-Models 原文:http://bbs.cvmart.net/articles/414/zi-yuan-automl-yu-qing-l ...
- SQL optimizer -Query Optimizer Deep Dive
refer: http://sqlblog.com/blogs/paul_white/archive/2012/04/28/query-optimizer-deep-dive-part-1.aspx ...
随机推荐
- 使用python程序监控云服务器的带宽
将一些不重要的服务迁移到云服务上,有些下载什么的,为了防止带宽超了,python做了一个监控程序.用python3写的,由于和python2有些区别,特记录下来备查. 代码如下: #this is f ...
- 【转】 基于TFTP协议的远程升级设计
版权声明:本文为博主原创文章,未经博主允许不得转载.联系邮箱:zhzhchang@126.com 说明:由于CSDN博客编辑器对word格式近乎不支持,因此对表格使用了图片方式(最后一个表格未使用图片 ...
- 【转】被误解的MVC和被神化的MVVM
被误解的MVC和被神化的MVVM 作者 唐巧 发布于 2015年11月2日 | ArchSummit全球架构师峰会(北京站)2016年12月02-03日举办 被误解的 MVC MVC 的历史 MV ...
- tomcat端口占用后的解决办法
学 习网页设计的同学都会用到tomcat这个软件,在安装的时候我们一般都会选择端口为8080端口,这个端口一般情况下是不会有程序占用的,所以我们运行 tomcat不会出现什么问题,但是如果一旦别占用, ...
- [Angular 2] Refactoring mutations to enforce immutable data in Angular 2
When a Todo property updates, you still must create a new Array of Todos and assign a new reference. ...
- Spring学习笔记——Spring中的BeanFactory与FactoryBean
BeanFactory BeanFactory是Spring的org.springframework.beans.factory下的一个接口,是Spring IOC所遵守的基本编程规范.他的实现类有D ...
- 用GDB调试多进程程序
在子进程中sleep.然后attach上去. gdb --pid=123456 ps出子进程的id,gdb attach 进程号. http://www.ibm.com/developerworks/ ...
- 福昕阅读器drm加密解密总结
drm是数字版权保护的一种方式,前一段时间在做四川文轩数字图书馆项目的时候用到了相关的知识,感觉这东西对于一些在线阅读和视频播放还是有很大用处的. 对于其工作原理我也很好奇,先摘抄度娘的内容如下,当然 ...
- 【socket.io研究】1.官网的一些相关说明,概述
socket.io是什么? 官网的解释是一个实时的,基于事件的通讯框架,可以再各个平台上运行,关注于效率和速度. 在javascript,ios,android,java中都实现了,可以很好的实现实时 ...
- C# \\u8888类型的unicode转换为字符串方法
1.双斜杠\\ 处理: 2.将编码分组,将编码转换为int,再转换为char. string sss = "\\u6c88\\u9633"; '; string[] arr = a ...