Quantcast
Channel: MySQL优化 – iMySQL | 老叶茶馆
Browsing latest articles
Browse All 18 View Live

[MySQL优化案例]系列 — RAND()优化

众所周知,在MySQL中,如果直接 ORDER BY RAND() 的话,效率非常差,因为会多次执行。事实上,如果等值查询也是用 RAND() 的话也如此,我们先来看看下面这几个SQL的不同执行计划和执行耗时。 首先,看下建表DDL,这是一个没有显式自增主键的InnoDB表: [yejr@imysql]> show create table t_innodb_random\G...

View Article


[MySQL优化案例]系列 — 分页优化

通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询。例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10; 或者像下面这个不带任何条件的分页SQL: SELECT * FROM `t1` ORDER BY id DESC LIMIT 100, 10;...

View Article


个人PPT分享

个人最近几年内整理过的PPT,都放在百度文库上了,大家可以看看 :) M​y​S​Q​L​ ​t​p​c​h​测​试​工​具​简​要​手​册 高​效​L​i​n​u​x​ ​S​A​ P​C​服​务​器​阵​列​卡​管​理​简​易​手​册​ 服​务​器​基​准​测​试 M​y​S​Q​L​数​据​库​设​计​、​优​化  M​y​S​Q​L​之​设​计​、​优​化​、​运​维...

View Article

MySQL 5.6 查询优化器新特性的“BUG”

最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下。 SQL本身不复杂,表结构、索引也比较简单,不过个别字段存在于多个索引中。 CREATE TABLE `pre_forum_post` ( `pid` int(10) unsigned NOT NULL, `fid` mediumint(8) unsigned NOT NULL DEFAULT '0', `tid` mediumint(8)...

View Article

[MySQL FAQ]系列 — 线上环境到底要不要开启query cache

Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。QC有可能会从InnoDB Buffer Pool或者MyISAM key buffer里读取结果。...

View Article


Image may be NSFW.
Clik here to view.

[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键

我们先了解下InnoDB引擎表的一些关键特征: InnoDB引擎表是基于B+树的索引组织表(IOT); 每个表都需要有一个聚集索引(clustered index); 所有的行记录都存储在B+树的叶子节点(leaf pages of the tree); 基于聚集索引的增、删、改、查的效率相对是最高的; 如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择其作为聚集索引;...

View Article

[MySQL FAQ]系列 — MySQL联合索引是否支持不同排序规则

篇首语: 截止到目前的5.7.4版本为止,MySQL的联合索引仍无法支持联合索引使用不同排序规则,例如:ALTER TABLE t ADD INDEX idx(col1, col2 DESC)。 先来了解下MySQL关于索引的一些基础知识要点: • a、EXPLAIN结果中的key_len只显示了条件检索子句需要的索引长度,但 ORDER BY、GROUP BY 子句用到的索引则不计入...

View Article

Image may be NSFW.
Clik here to view.

[MySQL优化案例]系列 — discuz!热帖翻页优化

备注:插图来自discuz!官方LOGO,如果觉得不当还请及时告知 :)...

View Article


Image may be NSFW.
Clik here to view.

[MySQL优化案例]系列 — slave延迟很大优化方法

备注:插图来自网络搜索,如果觉得不当还请及时告知 :) 一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的apply,所以难怪slave在高并发时会远落后master。 ORACLE MySQL...

View Article


比较全面的MySQL优化参考(上篇)

本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。 1、硬件层相关优化 1.1、CPU相关...

View Article

比较全面的MySQL优化参考(下篇)

本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是下篇。 3、MySQL层相关优化 3.1、关于版本选择 官方版本我们称为ORACLE...

View Article

老叶观点:MySQL开发规范之我见

大多数MySQL规范在网上也都能找得到相关的分享,在这里要分享的是老叶个人认为比较重要的,或者容易被忽视的,以及容易被混淆的一些地方。 1、默认使用InnoDB引擎 【老叶观点】已多次呼吁过了,InnoDB适用于几乎99%的MySQL应用场景,而且在MySQL 5.7的系统表都改成InnoDB了,还有什么理由再死守MyISAM呢。...

View Article

Image may be NSFW.
Clik here to view.

优化系列 | DELETE子查询改写优化

0、导读 有个采用子查询的DELETE执行得非常慢,改写成SELECT后执行却很快,最后把这个子查询DELETE改写成JOIN优化过程 1、问题描述 朋友遇到一个怪事,一个用子查询的DELETE,执行效率非常低。把DELETE改成SELECT后执行起来却很快,百思不得其解。 下面就是这个用了子查询的DELETE了: [yejr@imysql.com]mydb > EXPLAIN delete...

View Article


Image may be NSFW.
Clik here to view.

重装上阵 |最方便可靠的MySQL my.cnf生成工具

关注我网站(http://imysql.com)的亲们应该都知道,有个my.cnf配置文件生成器功能,2008年8月20日开始上线提供服务至今,历经了5.1到5.7多个版本。 当初上线时,本着简单了事、能用就行的原则,只提供了基本的功能,但界面那个丑啊,我有无数次想改版,但也一直懒得动工。老的界面是像下面这样的 … (ノへ ̄、)捂脸...

View Article

从MySQL开发规范处看创业

作者:唐勇,深圳市环球易购,MySQL DBA。个人爱好:看书、跑步、看电影、旅行、倒腾文字、NBA 导读...

View Article


Image may be NSFW.
Clik here to view.

优化案例 |分区表场景下的SQL优化

导读 有个表做了分区,每天一个分区。 该表上有个查询,经常只查询表中某一天数据,但每次都几乎要扫描整个分区的所有数据,有什么办法进行优化吗? 待优化场景 有一个大表,每天产生的数据量约100万,所以就采用表分区方案,每天一个分区。 下面是该表的DDL: CREATE TABLE `t1` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `date` date...

View Article

Image may be NSFW.
Clik here to view.

优化案例 | CASE WHEN进行SQL改写优化

导读 今天给大家分享一个通过SQL改写而独辟蹊径的SQL优化案例 待优化场景 发现SLOW QUERY LOG中有下面这样一条记录: ... # Query_time: 59.503827  Lock_time: 0.000198  Rows_sent: 641227  Rows_examined: 13442472  Rows_affected: 0 ... select...

View Article


Image may be NSFW.
Clik here to view.

GROUP BY另类优化技巧

分享嘉宾:知数堂〖SQL开发优化班〗讲师郑松华,韩国Infobridge的SQL优化专家&7年SQL开发和调优经验&资深数据库工程师。 本次主题《GROUP BY另类优化技巧》,主要内容是从 GROUP BY、ORDER BY的基础语法到内部算法,最后到实际应用,对需要开发含有复杂的排序功能的同学们更是提供了思路。 内容干货满满,实用性强,小伙伴们快来围观吧!...

View Article
Browsing latest articles
Browse All 18 View Live