mysql查询优化之四:优化特定类型的查询
摘要:本文将介绍如何优化特定类型的查询。 1.优化count()查询count()聚合函数,以及如何优化使用了该函数的查询,很可能是mysql中最容易被误解的前10个话题之一 count() 是一个特殊的函数,有两种非常不同的作用。它可以统计某个列值的数量,也可以统计行数。统计列值 要求列值是非空的。(不
阅读全文
posted @
2017-08-31 15:31
duanxz
阅读(823)
推荐(1) 编辑
mysql查询优化之三:查询优化器提示(hint)
摘要:目录: 《MySQL中的两种临时表》--强制使用临时表 SQL_BUFFER_RESULT 《MySQL 多表关联更新及删除》 《mysql查询优化之三:查询优化器提示(hint)》 《MySQL锁之三:MySQL的共享锁与排它锁编码演示》 --for update 和 lock in share
阅读全文
posted @
2017-08-31 15:21
duanxz
阅读(5861)
推荐(0) 编辑
mysql查询优化之二:查询优化器的局限性
摘要:在《mysql查询优化之一:mysql查询优化常用方式》一文中列出了一些优化器常用的优化手段。查询优化器在提供这些特性的同时,也存在一定的局限性,这些局限性往往会随着MySQL版本的升级而得到改善,所以本文会列出一些常见的局限性,且不包含所有的。 MySQL的万能"嵌套循环"并不是对每种查询都是最优
阅读全文
posted @
2017-08-31 14:47
duanxz
阅读(1475)
推荐(0) 编辑
mysql查询优化之一:mysql查询优化常用方式
摘要:一、为什么查询速度会慢? 一个查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中在“执行”阶段包含了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组。 查询速度慢的原因在于:某些不必要的额外操作,某些操作被
阅读全文
posted @
2017-08-30 18:25
duanxz
阅读(4231)
推荐(2) 编辑
MySQL优化技巧之四:mysql数据库开发常见问题及优化[转]
摘要:mysql 数据库是被广泛应用的关系型数据库,其体积小、支持多处理器、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。在使用 mysql 的过程中不规范的 SQL 编写、非最优的策略选择都可能导致系统性能甚至功能上的缺陷。 恰巧就在前几天,本人所在公司的云事业部举办了一场关于
阅读全文
posted @
2017-01-11 20:53
duanxz
阅读(592)
推荐(0) 编辑
MySQL 高性能存储引擎:TokuDB初探
摘要:在安装MariaDB的时候了解到代替InnoDB的TokuDB,看简介非常的棒,这里对ToduDB做一个初步的整理,使用后再做更多的分享。 什么是TokuDB? 在MySQL最流行的支持全事务的引擎为INNODB。其特点是数据本身是用B-TREE来组织,数据本身即是庞大的根据主键聚簇的B-TREE索
阅读全文
posted @
2016-11-01 22:48
duanxz
阅读(13804)
推荐(2) 编辑
mysql实战优化之一:sql优化
摘要:1、选取最适用的字段属性 MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要
阅读全文
posted @
2016-01-24 00:21
duanxz
阅读(1162)
推荐(0) 编辑
mysql实战优化之二:limit优化(大表翻页查询时) sql优化
摘要:mysql的表test中有20105119行数据。建立索引:data_status,place_cargo_status 场景1: 结果:查询时间为:7.360s 场景1: 结果:查询时间为:7.111s 场景三: 结果:查询时间为0.141s 场景四: 查询时间为0.140s 查看执行计划: 场景
阅读全文
posted @
2016-01-24 00:06
duanxz
阅读(719)
推荐(0) 编辑
mysql实战优化之三:表优化
摘要:对于大多数的数据库引擎来说,硬盘操作可能是最重大的瓶颈。所以,把你的数据变得紧凑会对这种情况非常有帮助,因为这减少了对硬盘的访问。 如果一个表只会有几列罢了(比如说字典表,配置表),那么,我们就没有理由使用 INT 来做主键,使用 MEDIUMINT, SMALLINT 或是更小的 TINYINT
阅读全文
posted @
2016-01-22 13:46
duanxz
阅读(516)
推荐(0) 编辑
mysql实战优化之四:mysql索引优化
摘要:0、 使用SQL提示 用户可以使用use index、ignore index、force index等SQL提示来进行选择SQL的执行计划。 1、支持多种过滤条件 2、避免多个范围条件 应尽量避免在 where 子句中使用!=或<>操作符,可以用in、between and代替,否则将引擎放弃使用
阅读全文
posted @
2016-01-20 17:00
duanxz
阅读(1072)
推荐(0) 编辑
mysql实战优化之五: 更新/插入优化 sql优化
摘要:通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作)。当读取者完成对表的操作的时候,锁就会被解除。如果写入者正在等待的时候,另一个读取操作到达了,该读取操作也会被阻塞(block),因为默认
阅读全文
posted @
2016-01-20 14:29
duanxz
阅读(1761)
推荐(0) 编辑
mysql实战优化之六:Order by优化 sql优化、索引优化
摘要:在MySQL中的ORDER BY有两种排序实现方式: 1、利用有序索引获取有序数据 2、文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。 1.利用有序索引获取有序数据 取出满足过滤条件作为排序条件的字段,以
阅读全文
posted @
2016-01-20 14:28
duanxz
阅读(1673)
推荐(0) 编辑
mysql实战优化之七:数据库侧配置优化
摘要:对于功能,我们可能知道必须改进什么;但对于性能问题,有时我们可能无从下手。其实,任何计算机应用系统最终队可以归结为: cpu消耗 内存使用 对磁盘,网络或其他I/O设备的输入/输出(I/O)操作。 但我们遇到性能问题时,要判断的第一点就是“在这三种资源中,是否有哪一种资源达到了有问题的程度”,因为这
阅读全文
posted @
2016-01-11 13:53
duanxz
阅读(967)
推荐(0) 编辑
mysql实战优化之八:关联查询优化
摘要:1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JOIN table2; SELECT * FROM table1 JOIN table2; SELECT
阅读全文
posted @
2016-01-06 19:24
duanxz
阅读(720)
推荐(0) 编辑
mysql update不支持子查询更新
摘要:先看示例: 结果: 表中的create_user_uin_tree标识该条记录由谁创建。 创建新用户时,根据当前登录用户的uin及新创建的用户uin,有如下SQL: 结果: 那么修改的create_user_uin_tree的标识SQL为: 报错信息: Error Code: 1093. You c
阅读全文
posted @
2016-01-04 15:18
duanxz
阅读(12460)
推荐(0) 编辑
show engine innodb status 详解
摘要:找个mysql客户端,执行show engine innodb status得到如下结果: 详细信息如下: ************************************** 2016-09-20 16:39:40 0x7f8040116700 INNODB MONITOR OUTPUT
阅读全文
posted @
2015-08-04 18:17
duanxz
阅读(5338)
推荐(0) 编辑
explain之二:Explain 结果解读与实践,分析诊断工具之二
摘要:一、Explain 示例 二、结果列详细说明 2.1、id 列 2.2、select_type 列 2.3、table 列 2.4、type 列(从最好到最差依次是:null > system > const > eq_ref > ref > range > index > All ) 2.4.0、
阅读全文
posted @
2015-05-01 13:11
duanxz
阅读(10112)
推荐(0) 编辑
mysql 查看死锁和去除死锁
摘要:1、查询进程 show processlist 2、 查询到相对应的进程,然后 kill id 验证(kill后再看是否还有锁) 2、查询是否锁表 示例: 新建一个会话执行如下的显示锁示例 另开启一个会话检查锁表情况: 3、在5.5中,information_schema 库中增加了三个关于锁的表(
阅读全文
posted @
2015-04-05 19:55
duanxz
阅读(35744)
推荐(1) 编辑
mysql实战优化之九:MySQL查询缓存总结
摘要:mysql Query Cache 默认为打开。从某种程度可以提高查询的效果,但是未必是最优的解决方案,如果有的大量的修改和查询时,由于修改造成的cache失效,会给服务器造成很大的开销。 mysql Query Cache 和 Oracle Query Cache 是不同的, oracle Que
阅读全文
posted @
2015-04-01 23:53
duanxz
阅读(3172)
推荐(1) 编辑