MySQL基础之第18章 性能优化】的更多相关文章

18.1.优化简介 SHOW STATUS LIKE ‘value’;connections                 连接数uptime                          启动时间slow_queries                慢查询次数com_select                   查询操作次数com_insert                    插入操作次数com_update                 更新操作次数com_delete …
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签: mysql性能优化order by 2013-10-12 00:04 3054人阅读 评论(3) 收藏 举报  分类: Web(331)  MySQL(16)  architecture(18)  作者同类文章X •计算机编程模型简介 •Node.js日志框架选型比较:Bunyan •两款高性能…
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:…
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 一.为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MyS…
1.  基准测试(benchmark)   不管是新手还是专家都要熟悉基准测试,benchmark测试是对系统的一种压力测试,目标是为了掌握在特定压力下系统的行为.也有其他原因:如重现系统状态,或者是为新硬件的可靠性测试.     1.1 为什么需要基准测试     benchmark测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要变化,创造一些虚构的场景来观察系统如何处理不同的数据. 验证基于系统的y 一些假设,确认这些假设是否符合实际情况. 重现系统中的某些异常行为,以解决…
网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询缓存等,也知道用EXPLAIN来查看执行计划. 但对MySQL复杂查询语句执行过程和内部机制,MySQL Optimizer本身所做优化以及查询语句调整对性能所产生的影响及其原因知之甚少. 本文试图对其中的一些关键概念如执行过程.索引使用等做比较深入的探讨,知其然,知其所以然, 这样可以避免在原本通…
关于SQL中select性能优化有以下建议,仅当笔记记录. 1.检查索引:where.join部分字段都该加上索引 2.限制工作数据集的大小:利用where字句过滤 3.只选择需要的字段:减少IO开销 4.移除不必要的表 5.移除外部连接查询 outer joins .更新null值占位符 6.删除join和where字句中的计算字段:在原表新增一列,如果有权限的话.例如: SELECT * FROM sales a ) + MONTH(a.sale_date)) = b.budget_year…
my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like '%innodb%'; # 查看innodb相关的运行时参数(比如当前正在打开的表的数量,当前已经打开的表的数量) show global status like 'open%tab…
当向MySQL 发送一个请求的时候MySQL 到底做了什么? 1.客户端发送一条查询给服务器 2.服务器先检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段 3.服务器端进行SQL解析.预处理,再由优化器生成对应的执行计划 4.MySQL 根据优化器生成的执行计划,调用存储引擎的API 来执行查询 5.将结果返回给客户端 注意:MySQL客户端和服务器之间的通信协议是“半双工”,这意味着,在任何时刻,要么有服务器向客户端发送数据,要么由客户端向服务器发送数据,这两个动作…
17.1.日志简介 二进制日志错误日志通用查询日志慢查询日志 17.2.二进制日志 二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况.通过二进制日志可以查询MySQL数据库中进行了哪些改变. 17.2.1.启动和设置二进制日志 默认关闭# my.cnf(Linux操作系统下)或者my.ini(Windows操作系统下)[mysqld]log-bin [=DIR \ [filename] ]DIR和filename可以不指定,默认为hostname-bin.numbe…
第7章 索引 MySQL中,所有的数据类型都可以被索引,包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等. 7.1.索引简介 7.1.1.索引的含义和特点 BTREE索引,HASH索引 优点:提高查询,联合查询,分级和排序的时间 缺点:索引占空间,维护(创建,更新,维护)索引时需要耗费时间 7.1.2.索引的分类 1.普通索引 不加任何限制条件 2.唯一性索引 使用UNIQUE参数 3.全文索引 使用FULLTEXT参数,只能创建在CHAR,VARCHAR,TEXT类型的字段上…
1.1.数据存储方式 1.人工管理阶段2.文件系统阶段3.数据库系统阶段 1.2.数据库泛型 数据库泛型就是数据库应该遵循的规则.数据库泛型也称为范式.目前关系数据库最常用的四种范式分别是:第一范式(1NF).第二范式(2NF).第三范式(3NF)和BCN范式(BCNF) 1.3.SQL语言 SQL(StructuredQuery Language)语言的全称是结构化查询语言.数据库管理系统通过SQL语言来管理数据库中的数据.SQL语言分为三个部分:数据定义语言(Data Definition…
16.1.数据备份 16.1.1.使用 mysqldump 命令备份 mysqldump [OPTIONS] database [tables]mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2DB3...]mysqldump [OPTIONS] --all-databases [OPTIONS]mysqldump –u root –p test student >c:/student.sqlmysqldump –u root –p test m…
15.2.账户管理 15.2.1.登录和退出MySQL服务器 mysql –hhostname|hostIP –P port –u username –p[password] databaseName –e “SQL语句” -h               主机名或ip-P               port[3306]-u               username-p               -p[password]                注意,之间没有空格-e       …
避免编写重复的语句 安全性可控 执行效率高 14.1.创建存储过程和函数 14.1.1.创建存储过程 CREATE PROCEDUREsp_name ([proc_parameter[,...]]) [characteristic...] routine_body procedure 发音 [prə'si:dʒə] proc_parameter           IN|OUT|INOUT param_name type characteristic               n. 特征:特性…
13.1.数学函数 随机数可能会用到,其他基本无视. 13.2.字符串函数 重点CONCAT(S1,S2….) 13.3.日期和时间函数 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ :: | +---------------------+ 除了 now() 函数能获得当前的日…
11.1.插入数据 11.1.1.为表的所有字段插入数据 1.INSERT语句中不指定具体的字段名         insert into 表名 values (值1,值2…值n)2.INSERT语句中列出所有字段   insert into 表名 (属性1,属性2…属性n) values (值1,值2…值n) 11.1.2.为表的指定字段插入数据 insert into 表名 (属性1,属性2,属性3) values (值1,值2,值3) 11.1.3.同时插入多条数据 insert into…
触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT语句.UPDATE语句和DELETE语句.当数据库系统执行这些事件时,就会激活触发器执行相应的操作.MySQL从5.0.2版本开始支持触发器 9.1.创建触发器 9.1.1.创建只有一个执行语句的触发器 CREATE  TRIGGER 触发器名  BEFORE | AFTER  触发事件ON  表名 FOR  EACH  ROW  执行语句 9.1.2.创建有多个执行语句的触发器 DELIMITER&&CREATE …
8.1.视图简介 视图由数据库中的一个表,视图或多个表,视图导出的虚拟表.其作用是方便用户对数据的操作. 8.2.创建视图必须要有CREATE VIEW 和 SELECT 权限SELECT select_priv, create_view_priv from mysql.user WHERE user='root'; CREATE   [ ALGORITHM = { UNDEFINED | MERGE |TEMPTABLE } ]VIEW  视图名  [ ( 属性清单 ) ]AS SELECT语…
假设已经登录 mysql-h localhost -uroot -proot 5.1.显示.创建.删除数据库 show databases;     显示所有的数据库 create database xxx;  创建数据库 drop database xxx;   删除数据库 5.2.数据库存储引擎 show engines \G     mysql支持的所有的engine show variables like '%engine%';     查看当前库的engine innodb 最常用,支…
2.1.msi安装包 2.1.1.安装 特别要注意的是,安装前要删除原来的my.ini和原来的data目录,改名也行,不然在最后一步会“apply security settings”报个1045错误,原因1,防火墙,原因2,数据文件未清除. 一路next,选custom安装 可以指定data的位置,不要指定到系统盘 顺便配置,选择"detailed configuration" 服务器类型和用途视开发还是生产环境 "bestsupport for multilinguali…
前提条件: 1.表的唯一索引 2.百万级数据 SQL语句: select c.* FROM ( SELECT a.logid FROM tableA a where 1 = 1 <#if phone?exists&& phone!=""> AND a.phone like "%":phone"%" </#if> ORDER BY a.create_time DESC limit :startIndex,:m…
10.1.基本查询语句 SELECT 属性列表 FROM 表名和视图列表[WHERE条件表达式1][GROUPBY 属性名1 [HAVING条件表达式2]][ORDERBY 属性名2[ASC|DESC]] 10.2.单表查询 列出所有字段*指定字段指定记录 WHERE 条件表达式         =,<,>,!及其组合         [NOT]BETWEEN AND         [NOT]IN         [NOT]LIKE % _         IS[NOT] NULL     …
6.1.创建表 6.1.1.创建表的语法形式 CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],...... 属性名 数据类型); 完整性约束条件表:PRIMARYKEY                 主键FOREIGNKEY                 外键NOTNULL                     不能为空UNIQUE                        唯一索引AUTO_INCREMENT     …
4.1.整数类型 tinyint(4)smallint(6)mediumint(9)int(11)bigint(20) 注意:后面的是默认显示宽度,以int为例,占用的存储字节数是4个,即4*8=32位,2的32次方,无符号的最大能达到4亿多.tinyint(4)相当于bool型 4.2.浮点数 floatdoubledecimal(m,d)decimal(6,2)定义的数字形如1234.56,指总长6位,小数点后精确到2位 4.3.日期和时间 year    年date    日期time  …
前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下: MySQL查询性能优化七种武器之索引潜水 MySQL查询性能优化七种武器之链路追踪 今天要讲的是MySQL的另一种查询性能优化方式 - 索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本增加的特性. 1. 索引下推的作用 主要作用有两个: 减少回表查询的次数 减少存储引擎和MySQL Server层的数据传输量 总之就是了提升MySQL查询性能. 2. 案例实践 创建一张用户表,造…
这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相比,无论是技术层次还是更高的理论都有较大差距.但是这不影响,快速花点时间简单过一遍. 然后在对<Systems Performance>进行详细的学习. 由于Ubuntu测试验证更合适,所以在Ubuntu(16.04)+Kernel(4.10.0)环境下做了下面的实验. 全书共9章:1~4章着重于内存的使用,尽量降低进程的内存使用量,定位和发现内存泄露…
引言: 以前在面试的过程中,总有面试官问道:你做过sql性能优化吗?对此,我的答复是没有.一次没有不是自己的错误,两次也不是,但如果是多次呢?今天痛下决心,把有关sql性能优化的相关知识总结一下,以便在不久的将来,我的回答不是“没有”,总能多多少少说一些东西.算是长进吧.说到性能优化,本人感觉到有必要先了解sql语句的执行顺序,因为对优化或多或少的会有些帮助. sql语句执行顺序: sql语句和其他相关的编程语言最大不同的地方应该是执行顺序.对于大多数编程语言来说都是按照顺序进行执行,但对于sq…
近期在处理HBase的业务方面常常遇到各种瓶颈,一天大概一亿条数据,在HBase性能调优方面进行相关配置和调优后取得了一定的成效,于是,特此在这里总结了一下关于HBase全面的配置,主要参考我的另外两篇文章: (1)http://blog.csdn.net/u014297175/article/details/47975875 (2)http://blog.csdn.net/u014297175/article/details/47976909 在其基础上总结出来的性能优化方法. 1.垃圾回收优…
前言: 本章主要通过针对MySQL Server(mysqld)相关实现机制的分析,得到一些相应的优化建议.主要涉及MySQL的安装以及相关参数设置的优化,但不包括mysqld之外的比如存储引擎相关的参数优化,存储引擎的相关参数设置建议将主要在下一章“常用存储引擎的优化”中进行说明. 10.1 MySQL 安装优化 选择合适的发行版本 二进制发行版(包括RPM等包装好的特定二进制版本) 由于MySQL开源的特性,不仅仅MySQL AB提供了多个平台上面的多种二进制发行版本可以供大家选择,还有不少…