总结MySQL建表、查询优化的一些实用小技巧

MySQL建表阶段是非常重要的一个环节,表结构的好坏、优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表、MySQL查询优化积累的一些实用小技巧。

技巧一、数据表冗余记录添加时间与更新时间我们用到的很多数据表大多情况下都会有表记录的“添加时间(add_time)”,我建议大家再新增一个记录“更新时间(update_time)”字段,在我的工作里需要为市场部、运营部等建立各种报表,而很多报表里的数据都是需要到大记录表里去查询的,如果直接查询大表的话,查询速度相当慢。那么,我们的解决办法就是建立各种数据快照,数据快照都是通过脚本定时跑的。假如,哪一天原始数据表出现了问题,那么快照数据也会有问题,这个时候我们的快照脚本就得重新跑一份修复好了的数据,这样有了update_time更新时间这个字段,我们就能很快定位记录更新的时间。

技巧二、不要抛弃insert ignore into与replace into大家肯定写过一些脚本循环将记录插入到数据表,例如使用PHP脚本。如果期间的一条SQL插入失败,那么后续的插入将终止,你可以在脚本里绕过这个插入错误,一个好的办法是使用ignore关键字来屏蔽插入错误。如果,你的数据表里已经存在有将要插入的相同记录,那么这个时候就会产生插入报错,使用 insert ignore into将绕开这个错误,继续下一条记录的插入。

如果你的表结构设计了唯一索引的话,那么使用replace into来更新你的数据表记录再好不过了,尤其是你在写一个脚本的时候,你就不需要在脚本里先查询数据表是否存在该条记录,如果存在,则更新;如果不存在则插入。你可以直接使用replace into,它会自动到数据表检测,如果在唯一索引字段存在该值,则会先删除该条记录,然后再插入新记录;如果唯一索引字段不存在该值,则直接插入数据表,简单且非常实用。

技巧三、给你的表建立唯一索引很多情况下建立表唯一索引,能给我们省下很多麻烦事,想上面说的replace into就必须是有唯一索引,当然,很多人喜欢用到的自增主键ID尽管也是唯一索引,我建议是能在其他经常出现在where条件屁股后面的字段,并且值是唯一的话可以加个索引甚至唯一索引,查询速度将会提高很多。

说在最后:当然,insert ignore into与replace into大家要根据自己的需求来确定,不一定就适合你现在的需求;我只是提示大家还有这么些个实用的小知识大家可以灵活运用到项目里边。相关阅读:

win7系统准备安装LOL英雄联盟时提示不能打开要写入的文件夹的原因及解决方法

XMLHttpRequest Level 2 使用指南

jquery实现滑动图片自己测试的例子

.NET Web开发之.NET MVC框架介绍

Win10 10080手机预览版更新内容汇总一览

win7禁止开机启动项、怎样禁止软件开机启动、禁止程序开机启动的方法

Win10 TH2正式版引入更安全的新BitLocker加密算法

解决VC++编译报错error C2248的方案

jQuery实现鼠标滚轮动态改变样式或效果

Android 初识 Helloworld 详解

SSH框架网上商城项目第13战之Struts2文件上传功能

JavaScript常用的弹出广告及背投广告实现方法

使用node.js半年来总结的 10 条经验

JavaScript iframe数据共享接口实现方法

phpstudy mysql建表_MySQL_总结MySQL建表、查询优化的一些实用小技巧,MySQL建表阶段是非常重要的一 - phpStudy...相关推荐

  1. 总结MySQL建表、查询优化实用小技巧

    MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与 ...

  2. mysql建表测试_总结MySQL建表、查询优化实用小技巧

    MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与 ...

  3. MySQl求奇数和函数_收集的48个Shell脚本小技巧

    0. shell 调试 复制代码 代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x 1. 用 && || 简化if else ...

  4. 实用小技巧,mysql中文字段转拼音(首字母/全拼)

    在项目中需要用到拼音首字母查询,新增了一个字段,把原中文字段的首字母存储到另一个字段 update 表名 set  拼音字段 = fun_pinyin(原字段,true/false) 调用该存储函数, ...

  5. mysql数据表字段繁体转简体_【WORD】阿拉伯数字变大写数字、简繁体转换等实用小技巧...

    WORD 01 阿拉伯数字秒变大写 有时候我们在做制订合同文档时,经常需要输入大写数字金额,Word中有什么快捷方法输入呢?一起来看一看! 技巧一:利用"编号" 输入阿拉伯数字,如 ...

  6. Excel数据透视表只能求和运算?快来学习求差运算小技巧

    点赞再看,养成习惯:天下兴亡,匹夫有责. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Ex ...

  7. excel小技巧-转置(表的横向纵向倒过来)

    转置 (表的横向纵向倒过来): 1.选择表,复制:2.选择性粘贴->粘贴内容转置:3.完成 转载于:https://www.cnblogs.com/jaci/p/11406385.html

  8. Mysql 给你100万条数据的一张表,你将如何分页查询优化?

    1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...

  9. Unity实用小工具或脚本—以对象方式访问MySql数据库

    一.前言         以对象方式处理MySql数据库顾名思义就是可以将每个数据库表作为一个类,没一条数据作为一个对象来进行操作,大致思路和我上一篇文章类似,这里不再赘述.文章后有资源下载地址,所使 ...

最新文章

  1. NVIDIA RTX技术是否会改变2019年的CG业务?
  2. OSGi-入门篇之服务层(03)
  3. 功能Java示例 第4部分–首选不变性
  4. 华为手机短息没有声音解决方案
  5. ❤️稀疏数组的建立与还原(建议收藏)❤️
  6. 大数据的核心价值表现在哪里
  7. 使用Struts2框架开发租房系统(8)
  8. QQ音乐(15.9.0)去广告绿色版
  9. 【libyuv】windows构建
  10. Matlab中xtickformat函数
  11. 使用Java读写dbf文件【附源代码】
  12. 在文档类中控制舞台上影片剪辑
  13. 解决Win 10桌面 IE 图标消失问题的注册表代码
  14. 关于正月十六工作室更换新LOGO的通知
  15. html关于布局的说法错误的是,关于可迁移技能以下说法错误的是
  16. Servlet注解和可插拔性(第八篇)
  17. 非本小伙花了两年从小公司到蚂蚁金服,面试经验分享
  18. RocketMQ-Retry
  19. Spark 入门简介
  20. php 事件,php的事件处理机制(回调函数)

热门文章

  1. 十八、绘制游戏背景图片
  2. SVN:修改文件名后无法提交
  3. 解决word无法回退及修改内容不保存问题
  4. Docker Desktop 已经支持 Apple M1 了
  5. CSS让行内元素撑满整个视口
  6. 盘点阿里巴巴 15 款开发者工具 侵删
  7. 摄氏度转华氏度,并且输出的结果保留两位小数
  8. ubuntu16.04下安装dnw和fastboot工具,解决开发板只有uboot系统,没有网络的情况下,通过dnw和fastboot传送文件到开发板
  9. 微信大会有哪些看点?
  10. JVM---垃圾回收概述及相关概念