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大家要根据自己的需求来确定,不一定就适合你现在的需求;我只是提示大家还有这么些个实用的小知识大家可以灵活运用到项目里边。文章原创自分享电脑编程图书PDF资料推书吧 ,原文地址:http://www.codejia.net/view/757.html

总结MySQL建表、查询优化实用小技巧相关推荐

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

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

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

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

  3. D530实用小技巧、使用中的问题、app2sd后的问题

    [个人心得和D530实用小技巧]: 用WIFI上网不稳定: 我家刚开始也很不稳定.能正常连接,信号显示很好,但就是上不了网(有时又能上,不过90%的时候都上不了). WIFI显示连上但上不了网,是路由 ...

  4. VC的若干实用小技巧

    Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意.作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助. 1:使用vc开发项目时,常会遇到这种 ...

  5. VC的若干实用小技巧 (如何干净的删除一个类)

    Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意.作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助. 1:使用vc开发项目时,常会遇到这种 ...

  6. mysql建表auto_increment_mysql create table auto_increment

    当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值 把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样.但不建议这样做,还是以插入NULL值为好. 如果 ...

  7. 分享几个微信实用小技巧(二)

    苏生不惑第298 篇原创文章,将本公众号设为星标,第一时间看最新文章. 之前分享过分享几个微信实用小技巧 ,最近微信又更新到8.0.16版本,这里再整理几个微信实用小技巧. 检测是否被好友删除 上周分 ...

  8. excel for mac实用小技巧之两列姓名核对

    如何快速核对表二中的姓名在表一中有没有出现?Excel 2019 for Mac是一款简单实用的电子表格制作软件,一直深受广大Mac用户好评,如果要核对表二中的姓名在表一中有没有出现,一个公式马上搞定 ...

  9. mysql建表时主键_mysql建表时设置主键的方法

    mysql建表时设置主键的方法 发布时间:2020-10-10 15:17:28 来源:亿速云 阅读:119 作者:小新 mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的.希 ...

最新文章

  1. Unity应用架构设计(11)——一个网络层的构建
  2. 全链路监控方案概述与比较
  3. EJS学习(三)之语法规则中
  4. 不允许使用不完整的类型_河南:限速标志不达标,坚决不允许通车!
  5. html 数据库 编写学生表,用sql语句创建学生表如何做
  6. qmediaplayer获取流类型_Java 流API
  7. 在基于图论的Java程序中基于DSL的输入图数据的方法
  8. Java常用命令及参数
  9. c++11中的for简化用法
  10. 变性、衰老、染发后长啥样?简易版StarGAN全知道 | 代码
  11. C#解决“Emgu.CV.CvInvoke”的类型初始值设定项引发异常 的其中一个办法
  12. 数据结构-03-队列
  13. WinAPI 字符及字符串函数(13): lstrcmp、lstrcmpi - 对比串
  14. 微博云原生运维如何快速应对热点流量峰值?
  15. python实现外挂自动学习网络课程实例
  16. 中科院SCI期刊分区(又称JCR期刊分区)知多少
  17. android自定义秒表(精确到0.1秒,带计次功能)
  18. 评价类(观点)题和理解类题目的辨析 区别一:审题干信息和题目要求。
  19. python安装gensim_安装gensim
  20. ant-select组件页面下滑时下拉框漂浮

热门文章

  1. C++-string常用函数整理(建议收藏)
  2. 编写php代码老出错,SQL出错原因比较(php代码)
  3. 自动化测试——接口测试——pandas——CSV文件参数化——数据驱动
  4. 接口测试——测试用例执行
  5. Excel在表格框中插入对勾✅
  6. HEVC---CompressCU 函数解析
  7. ubuntu16.04配置opencv2、python2、cuda8.0、cudnn以及caffe
  8. 剑指offer面试题[14]-调整数组顺序使奇数位于偶数前面
  9. 面试官的几句话,差点让我挂在HTTPS上
  10. matlab虚拟现实之V-Realm Builder2中viewpoint节点的使用