- 博客(5)
- 收藏
- 关注
原创 数据库几种查询方式总结
数据库查询有sql语句,HQL,QBC,OID对象标识符,对象导航查询,JPA查询1.分析sql查询和hql查询查询一列:返回的是:List,查询多列:返回的是List<object[]>数组集合。解析:何时查询出来是List<Object[]>,何时是javabean对象。1).select * from person:使用createSQLQuery查询出来时List<Object[]>的形式。试想:如果每次查询出来都是数组,每次我们都去操作数组,那将会非常
2020-07-27 19:21:07 5328
原创 并发编程面试题绝命30问
一.请谈一下你对volatile的理解?这个主要是往3个方面来谈;1.1 谈一谈volatile 的特性volatile 主要是实现了 可见性,禁止指令重排序,和单原子性。1.2 它是怎么实现可见性的?首先得知道 什么是可见性。打个比方,就拿买车票这件事来说吧 。有一个代表车票数量的变量 int count=20 由 售票员来代表共享内存 , 有小红 和小明 分别代表两个线程。小红先到的 先把知道还有20张票, 买了一张 20-1 。这时候小明也来了 他也要买车票 。而他俩是线程不安全的 ,小明不
2020-07-10 18:02:00 995
原创 Insert into select语句的错误原因和解决办法
前言Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。事故发生的经过。由于数据数据库中order_today数据量过大,当时好像有700W了
2020-07-10 17:18:32 10247
原创 SELECT * 效率低
一、效率低的原因先看一下最新《阿里java开发手册(泰山版)》中 MySQL 部分描述:4 - 1. 【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。说明:增加查询分析器解析成本。增减字段容易与 resultMap 配置不一致。无用字段增加网络 消耗,尤其是 text 类型的字段。开发手册中比较概括的提到了几点原因,让我们深入一些看看:1. 不需要的列会增加数据传输时间和网络开销用“SELECT * ”数据库需要解析更多的对象、字段、权限、属性等相关内容
2020-07-09 15:05:45 193
原创 Redis开发规范
1.冷热数据分离,不要将所有数据全部都放到Redis中虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高!2.不同的业务数据要分开存储不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少
2020-07-09 11:59:01 186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人