前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库MySQL-SQL优化

数据库MySQL-SQL优化

作者头像
cwl_java
发布2022-11-28 08:59:57
1.2K0
发布2022-11-28 08:59:57
举报
文章被收录于专栏:cwl_Javacwl_Java
1.SQL优化
  • 1.1 sql只取所需字段不要 *
  • 1.2 非业务需求无法解决情况下,不在SQL当中使用函数
  • 1.3 删除时,务必记得删除相关表数据
  • 1.4 尽量不要使用FULLTEXT全文索引作为MySQL索引类型的创建
  • 1.5 做同一个记录修改时,尽量不要删掉再插入一个
  • 1.6 对于大数据量的表(超过1000万),坚决不跨库,不联表
  • 1.7 where语句后字段区分度高的放在前,字段区分度低的放在后

正例:WHERE id = 10086 AND gender = ‘男’

反例:WHERE gender = ‘男’ AND id = 10086

  • 1.8 精准查询创建索引时使用hash方法,范围查询创建索引时使用b_tree方法
2.代码优化
  • 2.1 多个增,删,改时,一定要放到service中去
  • 2.2 for循环
    • for循环下不要定义不必要的变量
    • for循环下不要做任何数据库操作
    • for循环下不要new一个类,可在循环外先new一个备用后在克隆一个。
    • 尽量不要使用嵌套for循环,可以使用map或者set记录后分开查询
  • 2.4 只要涉及到页面传值,必须做非空判断
  • 2.5 service方法在操作完数据库后尽可能的少做业务处理
  • 2.6 一个对象在get值时,最好先判断对象是否为空,也可以减少很多情况的空指针,但是需要自己设置好对应的日志信息,避免异常找不到
  • 2.7 需要自己手写的非空判断,需要将null写在equals前,建议使用谷歌提供的common.lang3当中的工具类
3.接口调用
  • 3.1 使用HTTP协议调用其他接口的服务,不论是调用方还是被调用方都记得要做值得非空判断
  • 3.2 调用方在定义接口返回数据的时候尽量要排除不需要的字段,只取所需,当查询数据涉及多个类的时候,可以考虑用一个新的VO来进行传递
  • 3.3 配置双数据源会比HHTP接口更加稳定,但是未必会比HTTP更快,因网速而论
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.SQL优化
  • 2.代码优化
  • 3.接口调用
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档