4.根据业务规则描述需要使用操纵数据的SQL语句

EXPLAINSELECT*FROMgoods_orderWHERE`order_id`=40918986;

SELECT*FROMgoods_orderWHERE`order_id`IN(40918986,40717328,30923040...)ORDERBYgmt_modifyDESC;

UPDATEgoods_orderSETgmt_modify=NOW(),....WHERE`order_id`=40717328ANDgoods_id=4248;

SELECTCOUNT(*)FROMgoods_orderWHEREdepot_id=0ORDERBYgmt_modifyDESCLIMIT 0,50;

SELECT*FROMgoods_orderWHEREdepot_id=6ANDpacket_id=0ORDERBYgmt_modifyDESCLIMIT 0,50;

SELECTCOUNT(*)FROMgoods_orderWHEREgoods_id=4248ANDorder_status=0ANDorder_type=1

SELECT*FROMgoods_orderWHEREgoods_id=4248ANDorder_status=0ANDorder_type=1ORDERBYgmt_modifyDESCLIMIT 0,50;

SELECT*FROMgoods_orderWHEREgmt_modify>=’ 2011-04-06’;

8条SQL语句按触发其执行的用户分类:

● 前台用户点击触发的操作而会执行的SQL语句为:(1)、(2)、(3);

● 后台内部用户点击触发的操作而会执行的SQL语句为:(1)、(2)、(3)、(4)、(5)、(6)、(7);

● 后台系统自动定期执行:(4)、(5)、(6)、(7),工作时间正常情况每隔15分钟执行一次,以检查是否有已付款而没有准备货物的订单、是否有收款而未发货的订单等;

● 统计分析系统定期导出数据而执行的SQL语句为:(8),频率为每24小时一次;

我们再分析上述列出来的SQL,分为2类,一类是读操作的SQL(备注:SELECT操作),另外一类为修改性操作(备注:UPDATE、DELETE操作),分别如下:

SELECT 的WHERE子句、GROUP BY子、ORDER BY 子句和HAVING 子句中,出现的字段:

(1). order_id

(2). order_id+gmt_modify

(3). depot_id+gmt_modify

(4). depot_id+packet_id+gmt_modify

(5). goods_id+order_status+order_type

(6). goods_id+order_status+order_type+gmt_modify

(7). gmt_modify

修改性操作的WHERE子句中出现的条件字段:

(8). order_id+ goods_id

我们已经存在主键索引:PRIMARY KEY(order_id,`goods_id`),另外考虑到此表数据的操作以SELECT和INSERT为主,UPDATE的SQL量其次,再根据上述SQL语句,为此我们可以初步确定需要创建的索引:

ALTERTABLEgoods_order

ADDINDEXidx_goodsID_orderType_orderStatus_gmtmodify(goods_id,order_type,order_status,gmt_modify),

ADDINDEXidx_depotID_packetID_gmtmodify(depot_id,packet_id,gmt_modify);

mysql索引组织结构_MySQL中创建及优化索引组织结构的思路(3)相关推荐

  1. mysql第五章项目二_高性能MySQL笔记 第5章 创建高性能的索引

    索引(index),在MySQL中也被叫做键(key),是存储引擎用于快速找到记录的一种数据结构.索引优化是对查询性能优化最有效的手段. 5.1 索引基础 索引的类型 索引是在存储引擎层而不是服务器层 ...

  2. mysql vpformysql引擎_MySQL InnoDB引擎B+树索引简单整理说明

    本文出处:http://www.cnblogs.com/wy123/p/7211742.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  3. 无法对表创建多个聚集索引。请在创建新聚集索引前删除现有的聚集索引的问题

     前言 最近在一次面试中,讨论了一个这样的问题:主键和索引有什么区别?当时我的回答是这样的:"主键就是加了唯一性约束的聚集索引." "你确定你所说的是对的?" ...

  4. 表 62623266 的索引 ID 1 中找不到索引条目。指示的索引已损坏,或当前的更新计划有问题。。

    解决表 "62623266 的索引 ID 1 中找不到索引条目.指示的索引已损坏,或当前的更新计划有问题.请运行 DBCC CHECKDB 或 DBCC CHECKTABLE.如果该问题仍然 ...

  5. mysql按升序创建索引_Mysql中的降序索引底层实现

    什么是降序索引 大家可能对索引比较熟悉,而对降序索引比较陌生,事实上降序索引是索引的子集. 我们通常使用下面的语句来创建一个索引: 上面sql的意思是在t1表中,针对b,c,d三个字段创建一个联合索引 ...

  6. mysql中distinct走索引吗_MySQL中索引优化distinct语句及distinct的多字段操作

    MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用 ...

  7. mysql中创建唯一索引的关键字_MySQL中创建唯一索引的关键字是_______ 。

    [判断题]判断零件键槽的尺寸标注是否正确.[图片] [单选题][图片] [单选题]读零件图,回答问题:1. C3表示倒角为( )度?2. C2表示倒角锥台高度为( )?[图片] [单选题]如图为套筒零 ...

  8. mysql 如何添加索引_MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】...

    MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...

  9. MySQL 项目中常用的优化索引方案

    声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单 ...

最新文章

  1. java连接oracle增删改查,java连接oracle数据库实现增删改查
  2. 题目1470:调整方阵
  3. 发现了一个好用的在线勾图的站点
  4. python通过指定网卡发包_Python 使用指定的网卡发送HTTP请求的实例
  5. mysql 下载地址及安装教程
  6. java工具配置_Java™ 教程(配置实用工具)
  7. MapInfo之格式说明(转载)
  8. jvm最大内存限制多少?
  9. VTK:PolyData之ConvexHullShrinkWrap
  10. java fileupload 文件_java用Commons fileupload 文件的上传
  11. ES group分组聚合的坑
  12. Java读取文本文件中文乱码问题
  13. java url链接超时_Java HttpURLConnection超时和IO异常处理
  14. leetcode 合并两个有序数组
  15. iOS popViewController 失败
  16. C语言实现洛谷题库中的 P1125 [NOIP2008 提高组] 笨小猴
  17. 开放报名 | “2021 年全国人工智能大赛”正式开赛
  18. 用putty连接虚拟机下ubuntu ssh
  19. ThinkAdmin漏洞(CVE-2020-25540 )复现
  20. 2-二、安装CUDA

热门文章

  1. owasp十大漏洞_OWASP十大网络应用安全漏洞
  2. python函数必背知识点_必背函数——python学习第四次总结
  3. vue项目npm run build后如何在本地查看效果
  4. 【Windows 10 应用开发】使用快捷访问键
  5. Object类—复写equals方法,hashCode方法,toString方法
  6. Exynos4412裸机开发 —— 看门狗定时器
  7. 一种c#深拷贝方式完胜java深拷贝(实现上的对比)
  8. 删除文件夹右键下的部分目录
  9. 用户控件中使用相对路径问题
  10. 女人 不要让身边的男人太累