博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA后台开发学习(5)
阅读量:7104 次
发布时间:2019-06-28

本文共 1481 字,大约阅读时间需要 4 分钟。

前几天遇到一个问题:就是mysql有一个表非常大,导致打开不了,前端页面无法显示表的相关信息。一开始这个接口不是我写的,我看了一下,以前的sql语句是这样子写的

ResultSet rs = stmt.executeQuery("select * from " + tableName);ResultSetMetaData data = rs.getMetaData();ResultSet primaryKeys = connection.getMetaData().getPrimaryKeys(dataSource.getSchema(), null, tableName);复制代码

得到每一个字段的相关信息,然后把每一个字段的信息set到column里:

for (int i = 1; i <= data.getColumnCount(); i++) {    Column column = new Column();    column.setColumnName(data.getColumnLabel(i));    column.setColumnType(data.getColumnTypeName(i));    if(primaryKeysList.contains(data.getColumnLabel(i))){        column.setPrimaryKey(true);    }    columns.add(column);    column.setSequence(i);}复制代码

这种方法,如果表是很小的话,查询花的时间确实不长。。但是遇到有几千条数据开始,就慢到极点。。。经受不起大考验。

为了找出打开表慢的原因,我在这个方法打断点,发现是卡在执行sql语句的时候,然后我们大佬给我们发了一个sql语句,说这样执行会很快

select column_name from information_schema.columns where table_name='xxx';复制代码

这个语句能查到每个字段的名字,还有一些相关信息还没查到,我就把改成column_name改成*看能查到字段什么相关信息。

关于字段的各种信息都有了。。

最后把代码改成:

ResultSet rs = stmt.executeQuery("select column_name , data_type , column_key from information_schema.columns where table_name='" + tableName + "'");int i=0;while (rs.next()) {    Column column = new Column();    column.setColumnName(rs.getString(1));    column.setColumnType(rs.getString(2));    if (rs.getString(3).equalsIgnoreCase("pri"))        column.setPrimaryKey(true);    columns.add(column);    column.setSequence(++i);}复制代码

用postman试了一下  速度确实是大大提高了呀,而且不需要把整张表都查出来!

转载于:https://juejin.im/post/5c47ff3451882523995e1a07

你可能感兴趣的文章
我的友情链接
查看>>
京东自建物流寓意电商进入蜕化阶段
查看>>
Kali Linux 2016.2发布提供虚拟机以及系统镜像下载
查看>>
关于配置
查看>>
2017年开工啦
查看>>
使用Python向MySQL数据库中存入json类型数据
查看>>
响应式微服务 in java 译 <十八> Deploying a Microservice in OpenShift
查看>>
RHEL5安装Oracle10gRAC on VMware Server1.0之三
查看>>
使用check_openmanage监控win主机的一些常见写法
查看>>
ALV中背景和字体颜色改变的做法
查看>>
new 运算符
查看>>
使用wsimport生成本地代码查看天气预报
查看>>
通过Puppet角色提取配置文件,推送到另一台服务器上
查看>>
bash变量子串的常用操作
查看>>
Kali 2.0安装之后需要做的事——使用SSH进行远程登录
查看>>
高阶函数、闭包、匿名函数
查看>>
我的友情链接
查看>>
使用Python调度Kubernetes
查看>>
Nginx配置实例
查看>>
mave 配置文件里面的setting 配置仓库
查看>>