• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 总结MySQL建表、查询优化的一些实用小技巧

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql使用技巧,mysql技巧,mysql查询技巧,mysql建表语句,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大家要根据自己的需求来确定,不一定就适合你现在的需求;我只是提示大家还有这么些个实用的小知识大家可以灵活运用到项目里边。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 有关mysql的一些小技巧
  • mysql 服务完全卸载技巧
  • 12个优化MySQL的技巧小整理
  • mysql技巧:提高插入数据(添加记录)的速度
  • 101个MySQL优化技巧和提示
  • 总结MySQL建表、查询优化的一些实用小技巧

相关文章

  • 2018-12-05Mysql GTID Mha配置方法的示例代码分享
  • 2018-12-05ORACLE数据库空间整理心得
  • 2018-12-05关于mysql表数据行列转换方法的讲解
  • 2018-12-05mysql复制表字段到另外一个表的字段
  • 2018-12-05【原】超简单类型转换(DataTable
  • 2018-12-05Access一个宏的实例检验口令
  • 2018-12-05MAC下MySQL初始密码忘记生物解决办法分享(图)
  • 2018-12-05MYSQL速度慢的问题 记录数据库语句
  • 2018-12-05ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解
  • 2018-12-05Mysql-索引数据排序

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Mysql 5.7.18 解压版安装及启动实例方法
    • sqlserver中更改数据库所属为dbo的方法
    • MySQL的23个需要注意的地方
    • mysql 日期和时间函数
    • SQL Server连接失败错误及解决第1/5页
    • Linux下实现MySQL数据库自动备份的实例详解
    • Mysql-索引数据排序
    • 详解插入记录的用法实例教程
    • 详解mysql基于正则实现模糊替换字符串的方法
    • MySQL学习笔记4:完整性约束限制字段

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有