数据库杂录

  1. 数据库表除主键列外当需要保证单列值或多列组合值插入的数据是唯一参数时最好给其加上唯一索引,以保证数据的唯一性
  2. 使用联表查询时在用到 order by 要注意如果被排序的字段没有索引,那么此语句的执行时间将可能超时,可以用主键排序或者为排序列添加索引等
  3. limit 1 可以用来优化条件查询结果确定只有一个的SQL,这样当查询到有一条数据匹配时就不会继续往下执行了
  4. 自定义排序函数,order by field(value,str1,str2,str3,str4,strn),其中value后面的参数自定义,不限制参数个数,含义是将获取出来的数据根据str1,str2,str3,str4等的顺序排序
  5. 在 mybatis 的 xml 文件中编写 sql 通用片段时,查找的列如果由片段拼接起来的最好写在同一行不然可能会查询超时。
    例如:<include refid="baseQueryColumn" />,(不要换行)s.name, s.age, c.grade, cr.item_name
  6. 如果达不到原生jdbc插入15%的损耗, 就说明这样插入是低效率的. 但是以开发的经验, 系统批量操作少, 是可以用简单的方法。如果你想用更好的效率, 请使用jdbc事务批量操作法, 与 mybitis事务批量操作法,尽量用mybitis,而不用jdbc, 原因是mybitits简化操作, 另外性能影响不大。 经测试, 9G数据在服务器版半时就可以完成. 在本地也是1小时内, 但是用 foreach需要6-7个小时. 原因在于1.数据库需要编译语句,大量拼接未使用预编译消耗时间, 2.批量提交 1000-10000一提交(网上看到,待求证!!!)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值