![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql
文章平均质量分 53
185的阿平
集中起来的力量可以击穿顽石
展开
-
Oracle在navicat查看执行计划,order by时间索引优化
select * from TB_SS_INFORMATION_CN order by PUB_DATE desc ;该表目前10w数据,再不建立索引的情况下,执行此SQL时间为1min.可查看其执行计划:先执行 EXPLAIN PLAN FOR select * from TB_SS_INFORMATION_CN order by PUB_DATE desc ;再执行 select * from table(dbms_xplan.display); 主要看rows。如果都显示100k了那说明就原创 2022-03-07 16:38:22 · 2953 阅读 · 0 评论 -
MySQLIntegrityConstraintViolationException:Column cannot be null(Mysql约束检查异常)
这个错今天在项目出现的,刚开始很奇怪。因为我的数据库中这个字段设置了不为NULL,默认值0。就算前端传入的值是NULL时应该在mybatis中插入再到数据库会插入0。理论上一点都没错。但是Mysql在执行过程过有个预处理过程这个过程就是检查约束,基本的语法信息。所以这个异常发生在预处理过程。因为我传入的是NULL,而数据库中设置的字段约束为非空。所以报出次异常—》约束检查异常。解决方法的话可以在业务代码中加上默认值的设置。...原创 2021-05-25 16:09:09 · 3694 阅读 · 0 评论 -
arthas线上性能分析及mysql执行计划调优
今天线上遇到一个HTTP请求超时直接断开的情况,导致用户界面查询了N久没有查到结果。因为HTTP的请求时间超时在30S。先去review一遍代码,没发现明显的代码异常。此时就相当于要查看哪一段的代码执行占用时间较大。此时就想到之前看到的性能分析工具阿里的arthas。实践一下。比起传统AOP加响应时间日志的灵活很多。安装arthascurl -O https://arthas.aliyun.com/arthas-boot.jar然后可以大概看下arthas的帮助java -jar artha原创 2021-01-19 16:39:05 · 1454 阅读 · 1 评论 -
基于mysql大数据量limit查询优化
今天一个业务场景,定时任务同步全量的历史数据。Java中用一个list去接收sql查询返回的数据。想到list的存储及sql性能瓶颈,于是就需要对数据进行分页查询。使用得mysql数据,在查询数据库中40w数据时,发现耗时将近4min。其中230s是用在网络传输。那么此时就需要分页查询。分页查询逻辑也有效率高低,比较好的方法通过id进行between查询。这种局限于id为自增的表。并且它的每条数据内容都是固定的。如果中间有其实id不是连续的,那么中间这个基数就很难定义。比如我数据库最小的id原创 2020-12-21 22:38:01 · 545 阅读 · 0 评论 -
java将文本读取写入数据库
核心思想:1.找到要读取的文件。2.通过文件流按行读取,因为一行是一条记录,按照文件的分割字符方式进行拆分数组。3.遍历文本的行,每一行存数组。遍历数组,数据库字段对应数组下标进行插入。代码示例public class ShjkTest {public static void main(String[] args) {File file = new File("F:...原创 2019-09-12 16:11:27 · 5935 阅读 · 0 评论 -
java将数据库查询结果写入文本
核心思想:执行sql,list封装查询结果。 创建一个文件。指定好文件的路径和名称。 迭代遍历list,文件流写入文件。代码示例:public static void exportTxt() throws IOException{ Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE,-1); Date...原创 2019-09-12 15:42:40 · 2929 阅读 · 2 评论 -
oracle中 jdbcType = OTHER 当传入值为Null时,提示“无效的列类型”的解决办法
1.可以加上jdbcType2.可以在mybatis中配置默认属性3.以上方法对于我的都不管用,而是我的数据类型的问题。Mysql中通过mybatis逆向工程生成的jdbcType的问题。一般字段生成都不会有问题。但在今天的测试中发现了一个比较特殊的类型并造成了系统一定的问题。Mysql表结构 字段类型为text类型。在mybatis文件生成时对应的LONGVARCHAR...原创 2019-06-21 16:04:05 · 6345 阅读 · 0 评论 -
mybatis中mysql与oracle环境下的批量插入写法
Mysql中批量插入,mysql的mybatis文件批量插入oracle中用insert into xxx values (xxx,xxx),(xxx,xxx) 这种语法是通不过的。解决方法:(1)需要取掉values(2)separator属性值改为UNION ALL。因为在oracle中用insert into xxx values (xxx,xxx),(xxx,xxx) 这种语法...原创 2019-06-21 16:00:56 · 629 阅读 · 0 评论 -
invalid number of argument. oracle中使用concat函数报错。
模糊查询:Mysql中模糊查询 使用concat函数是不限拼接长度的。但在oralce中concat函数是限制两个参数拼接。如果多了参数就会报错 invalid number of argument.解决方法:使用||连接。如 name like ‘%’||${name}||‘%’Mysql写法Oracle写法...原创 2019-06-21 15:59:26 · 8533 阅读 · 2 评论 -
powerDesigner生成mysql语句列属性为关键字的问题
powerDesigner生成两套数据库环境,在oracle中 生成的语句会出现关键字,放到oracle环境下建表是不存在问题的,但在mysql环境下就会报错。解决方法在列属性加上图中引号,能创建表成功。...原创 2018-10-24 12:22:10 · 1381 阅读 · 1 评论 -
数据库自定义函数和存储过程写法
存储过程和用户定义函数都是“SQL语句组成的子程序,用以封装代码以便重复使用”。但区别也是显而易见的。简单说,存储过程功能强大,但调用不便,用户函数正相反。 自定义函数:数据库中函数包含四个部分:声明、返回值、函数体和异常处理。 无参数的函数Create or replace function user_list //声明函数Return varchar2Is v...翻译 2018-08-02 09:14:08 · 7271 阅读 · 0 评论