要想让一个较慢的select ... where语句执行效率更快,我们应首先检查是否能增加一个索引。不同表之间的引用通常通过索引来完成。你可以使用explain语句(上一篇已介绍)来确定select语句是否使用索引,使用了哪些索引。 索引 索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针 ...
分类:
数据库 时间:
2018-10-27 17:39:51
阅读次数:
161
[原则一:选择需要优化的SQL] [原则二:从Explain和Profile入手] [原则三:永远用小结果集驱动大的结果集] [原则四:在索引中完成排序] [原则五:使用最小Columns] [原则六:使用最有效的过滤条件] [原则七:避免复杂的JOIN和子查询] ...
分类:
数据库 时间:
2018-10-27 16:16:23
阅读次数:
248
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 ...
分类:
数据库 时间:
2018-10-25 15:43:21
阅读次数:
202
如下SQL的优化: select count(*) from ( select id,name,col1,col2 from t1 where name='xxxx' union select id,name ,null as col1,'' as col2 from t2 where id!=1 ...
分类:
数据库 时间:
2018-10-23 20:48:14
阅读次数:
172
https://www.oschina.net/p/soar-xiaomi https://www.oschina.net/news/101034/xiaomi-opensource-soar SOAR SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能优化与改 ...
分类:
数据库 时间:
2018-10-22 20:10:45
阅读次数:
145
一、 MySQL数据库 - SQL优化 MySQL DBMS - MySQL Database Management System。数据库管理系统。 一)结构图 初始化模块: 安装数据库的时候会自动生成多个数据库模块,但是主要使用的是mysql 二) MySQL数据库引擎简介 1.1 ISAM(In ...
分类:
数据库 时间:
2018-10-19 16:43:24
阅读次数:
172
首先简单一幅图描述一下MySQL的各组件之间如何协同工作的架构图: 第一层:客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。 第二层:MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎 ...
分类:
数据库 时间:
2018-10-18 22:10:10
阅读次数:
222
在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情。这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行计划走索引扫描或全表扫描的问题。最近在优化SQL语句的时候,遇到了一个很有意思的问题。某些使用LIKE ... ...
分类:
数据库 时间:
2018-10-17 14:59:52
阅读次数:
335
实际上,前面的数据类型和表结构设计优化不能算优化,只能算规范,也就是说在设计表的时候,应该且必须做到这些 索引是sql优化的核心部分,在《高性能Mysql》中单独抽出一章讲,也印证了其重要性。这一篇也会讲的很细致。 以下所讲,除少数的如全文索引之外,均以Innodb存储引擎为基本 一、索引是什么 索 ...
分类:
数据库 时间:
2018-10-16 01:41:21
阅读次数:
185
一、sql 查询主要耗时阶段 1、where 子句筛选数据 2、数据库 I/O 3、返回数据 注:返回的数据量与I/O其实是同一个问题 二、sql 优化之索引 1、索引的种类 1、B-tree 索引(实际就是二叉树) 特点:1、指针定义了子节点页中值的上限和下限。 2、该索引按顺序组织存储,很适合范 ...
分类:
数据库 时间:
2018-10-16 01:34:58
阅读次数:
234