MySQL 优化策略
1.索引列不能使用表达式或者函数
错误示例:
select ...... from product where to_days(out_date)-to_days(current_date)<=30;
-- to_days:函数
-- out_date:索引列
正确示例:
select ...... from product where out_date<=date_add(current_date,interval 30 day)
-- out_date:索引列
2.使用left join替代not in
错误示例:
select customer_id,first_name,last_name,email
from customer
where customer_id
not in (select customer_id from payment)
正确示例:
select customer_id,first_name,last_name,email
from customer a
left join payment b on a.customer_id=b.customer_id
where b.customer_id is null
3.使用汇总表优化count()查询
例如统计查询:select count(*) from product_comnent where product_id = 999 ,如果评论中存在上亿条数据,那么该sql执行起来就非常的慢。并且如果有大量的并发访问,则会给数据库带来很大的压力,那么在这种情况下我们通常使用汇总表就行优化。汇总表:就是提前把要统计的数据进行汇总并记录到表中以备后续的查询使用。那么针对这个查询,我们可以使用下面的汇总表来进行查询优化:
-- 汇总表
create table product_comment_cnt(product_id int,cnt int);
对于这个表我们可以每天凌晨进行一次更新维护,统计出截至到前一天的每个商品的评论数据的汇总。当然如果我们的评论是没有删除的情况下,我们可以进行每天的一个累计的更新,否则就需要进行全量更新。接下来我们在页面中显示每个商品的评论数就可以采用下面的方式
select sum(cnt) from(
select cnt from product_comment_cnt where product_id=999
union all
select count(*) from product_comment where product_id=999
and timestr>DATE(NOW())
) a
4.如果where条件中是or关系,索引不起任何作用
MySQL 优化策略相关推荐
- mysql编程_PHP数据库编程之一MySQL优化策略概述
本文简单讲述了PHP数据库编程之MySQL优化策略.分享给大家供大家参考,具体如下: 前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库.我们都知道,PHP开发中,数据的增删改查 ...
- 数据库设计与优化 - MySQL优化策略
MySQL服务器操作层架构 MySQL语句的优化就发生MySQL Server服务器架构的操作层,这层具体的执行流程是: 这层主要的功能是: SQL 语句的解析.优化,缓存的查询,MySQL 内置函数 ...
- mysql 优化策略(如何利用好索引)
博客园 首页 联系 管理 随笔- 3282 文章- 0 评论- 157 mysql联合索引 命名规则:表名_字段名 1.需要加索引的字段,要在where条件中 2.数据量少的字段不需要加索引 3 ...
- MySQL 内部执行优化策略总结
MySQL 内部执行优化策略总结 前言 一.查询优化策略 1. ICP 索引条件下推 2. MRR 多范围读取优化(批量回表) 3. 索引合并 (1) Intersection 合并 (2) Unio ...
- mysql btree检索策略_MySQL之Btree索引和HASH索引的区别以及索引优化策略
索引是帮助mysql获取数据的数据结构.最常见的索引是Btree索引和Hash索引. 不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引:而Mermory默认的索引是 ...
- mysql获取查询策略语句_MySQL数据库查询性能优化策略
优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行 ...
- mysql 分页优化策略(一)
前言 这里分享下最近学习到的mysql分页策略的一种方式,之后有新的优化方案会继续更新,欢迎讨论. 环境 系统 内存 MySQL版本 引擎 CentOS release 6.3 8G 5.6.34 i ...
- mysql存储引擎 索引优化_MySQL存储引擎,索引及基本优化策略
存储引擎 与Oracle, SQL Server这些数据库不同,MySQL提供了多种存储引擎.什么是存储引擎?存储引擎其实就是一套对于数据如何存储,查询,更新,建立索引等接口的实现.不同存储引擎特性有 ...
- 多维度Mysql数据库优化策略 (建议收藏)!!
Part1前言 BATJTMD等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察.一提到数据库,先"说一说你对SQL优化的见解吧?". ...
最新文章
- LVS Nginx HAProxy 优缺点
- PAT甲级1104 Sum of Number Segments:[C++题解]数段之和,测试点2爆double,请用long double!!!
- 浅析State-Thread
- python转弯轨迹_使点沿着曲线轨迹移动
- Python高级特性: 12步轻松搞定Python装饰器
- java jai create 方法_使用JAI扩展Java Image的功能
- 不止代码 洛谷P1006 传纸条(dp)
- 浅谈关于java中的深浅拷贝
- Linux实验室阿里云证书,开发者云体验实验室
- 对于计算机专业英语的问题,计算机专业英语的问题
- 51nod3109 看电影
- PC微信逆向之发送消息
- 用python在大麦网抢票_大麦网自动抢票工具
- postman常用断言
- 如何查找期刊是否被SCI收录
- 仙人掌真的会防辐射吗
- 从4G到5G,从物联网到云计算 通信的下一个引爆点在哪里?
- 六大原则之“里氏替代原则(LSP)“笔记
- 重装系统 linux u盘启动不了怎么办,用U盘启动盘重装系统启动时黑屏
- android按钮背景颜色函数,Android按钮背景颜色(Android button background color)
热门文章
- 使用 PDBDownloader 解决 IDA 加载 ntoskrnl.exe 时符号不完全问题
- springboot mybatis常见异常及处理方法
- Deformable Shape Completion with Graph Convolutional Autoencoders
- 【广告技术】下个月会有多少用户看到洗发水广告?最先进的张量分解模型给你最好的答案
- 推荐系统技术演进趋势:排序篇
- 两台主机经过路由器传送数据的网络原理
- 吴恩达|机器学习作业7.0.k-means聚类
- 计网学习第一章:概述
- Mac安装prometheus+grafana监控
- left join 大表放前面_带娃时,走在孩子前面与跟在孩子身后区别很大,很多父母都做错了...