Welcome 微信登录

首页 / 数据库 / MySQL

浅谈MySQL中的子查询优化技巧

浅谈MySQL中的子查询优化技巧

mysql的子查询的优化一直不是很友好,一直有受业界批评比较多,也是我在sql优化中遇到过最多的问题之一,你可以点击这里 ,这里来获得一些信息,mysql在处理子查询的时候,会将子查询改写,通常情况下,我们希望由内到外,也就是先完成子查询的结果,然后在用子查询来驱动外查询的表,完成查询,但是恰恰相反,子查询不会先被执行;今天希望通过介绍一些实际的案例来加深对mysql子查询的理解:案例:用户反馈数据库响应较慢,许多业务动更新被卡住;登录到数据库中观察,发现...
MySQL索引优化的实际案例分析

MySQL索引优化的实际案例分析

Order by desc/asc limit M是我在mysql sql优化中经常遇到的一种场景,其优化原理也非常的简单,就是利用索引的有序性,优化器沿着索引的顺序扫描,在扫描到符合条件的M行数据后,停止扫描;看起来非常的简单,但是我经常看到很多性能较差的sql没有利用这个优化规律,下面将结合一些实际的案例来分析说明:案例一:一条sql执行非常的慢,执行时间为:root@test 02:00:44 SELECT * FROM test_order_des...
MySQL在关联复杂情况下所能做出的一些优化

MySQL在关联复杂情况下所能做出的一些优化

昨天处理了一则复杂关联SQL的优化,这类SQL的优化往往考虑以下四点: 第一.查询所返回的结果集,通常查询返回的结果集很少,是有信心进行优化的; 第二.驱动表的选择至关重要,通过查看执行计划,可以看到优化器选择的驱动表,从执行计划中的rows可以大致反映出问题的所在; 第三.理清各表之间的关联关系,注意关联字段上是否有合适的索引; 第四.使用straight_join关键词来强制表之间的关联顺序,可以方便我们验证某些猜想;SQL:执行时间:mysql>...
对MySQL子查询的简单改写优化

对MySQL子查询的简单改写优化

使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动表执行,然后在把该经验移植到mysql数据库上,但是不幸的是,mysql在子查询的处理上有可能会让你大失所望,在我们的生产系统上就由于碰到了这个问题:select i_id, sum(i_sell) as i_sellfrom table_datawhere i_id in (select i_id from table_data ...
Suse Linux 10中MySql安装与配置步骤

Suse Linux 10中MySql安装与配置步骤

安装环境:操作系统:suse Linux 10数据库:MySQL 5.0.22希望能认识更多高手,互相学习讨论技术!首先发泄一下再这,网上看了N多安装mysql的文章,大多大同小异,都不能很好的安装mysql;多多少少都有问题;以个人之见大多为一份原文,拷贝到各自的博客或一些网上,纯属盗窃啊!上周末开始筹划安装suse以及mysql,一直到今天下午才终于到了show databases;太晕了!现在我将我安装mysql的每一步骤都放在这,以共需者查看,也以...
使用sysbench来测试MySQL性能的详细教程

使用sysbench来测试MySQL性能的详细教程

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。目前sysbench代码托管在launchpad上,项目地址:https://launchpad.net/sysbench(原来的官网 http://sysbench.sourceforge.net 已经不可用),源码采用bazaar管理。一、 下载源码包安装epel包后以便安装bzr客户端:rpm -Uvh http://dl.fedorapr...
提高MySQL中InnoDB表BLOB列的存储效率的教程

提高MySQL中InnoDB表BLOB列的存储效率的教程

首先,介绍下关于InnoDB引擎存储格式的几个要点:1、InnoDB可以选择使用共享表空间或者是独立表空间方式,建议使用独立表空间,便于管理、维护。启用 innodb_file_per_table 选项,5.5以后可以在线动态修改生效,并且执行 ALTER TABLE xx ENGINE = InnoDB 将现有表转成独立表空间,早于5.5的版本,修改完这个选项后,需要重启才能生效;2、InnoDB的data page默认16KB,5.6版本以后,新增选项...
探究MySQL中索引和提交频率对InnoDB表写入速度的影响

探究MySQL中索引和提交频率对InnoDB表写入速度的影响

本次,我们来看看索引、提交频率对InnoDB表写入速度的影响,了解有哪些需要注意的。先直接说几个结论吧:1、关于索引对写入速度的影响:a、如果有自增列做主键,相对完全没索引的情况,写入速度约提升 3.11%;b、如果有自增列做主键,并且二级索引,相对完全没索引的情况,写入速度约降低 27.37%;因此,InnoDB表最好总是有一个自增列做主键。2、关于提交频率对写入速度的影响(以表中只有自增列做主键的场景,一次写入数据30万行数据为例):a、等待全部数据写...
<< 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 >>