返回顶部
首页 > 资讯 > 数据库 >分库数据如何查询统计
  • 284
分享到

分库数据如何查询统计

分库数据如何查询统计 2017-06-06 18:06:47 284人浏览 无得
摘要

分库后的计算不能直接使用sql;异构库 SQL 函数不尽相同;JAVA 硬编码实施难度大;即使借助透明网关访问远程数据库,分库性能优化也是头疼问题。 一般常规办法: 方法1:java硬编码 简单的跨库count运算,Java部分代码大

分库数据如何查询统计

分库后的计算不能直接使用sql;异构库 SQL 函数不尽相同;JAVA 硬编码实施难度大;即使借助透明网关访问远程数据库,分库性能优化也是头疼问题。

一般常规办法:

方法1java硬编码

简单的跨库count运算,Java部分代码大概要写成这样

public Connection   getConnection(String drivername,String url, String username, String passWord)   {

                  try   {

                                    Class.forName(drivername);

                                    conn   = DriverManager.getConnection(url, username, password);

                  }   catch (Exception e) {

                                    System.out.println("DBUtils.getConnection_FaiLED!");

                                    e.printStackTrace();

                  }

                  return   conn;

}

Connection conn1 = DBUtils.getConnection(URL1,   USER1, PASSWORD1);

Connection conn2 = DBUtils.getConnection(URL2,   USER2, PASSWORD2);

String sql = "select count(*) c from   sales";

 

PreparedStatement ptmt1 = conn1.prepareStatement(sql);

PreparedStatement ptmt2 = conn1.prepareStatement(sql);

ResultSet rs1 = ptmt1.executeQuery();

ResultSet rs2 = ptmt2.executeQuery();

return rs1.getInt("c")   + rs2.getInt("c");

 

方法2:透明网关

例如oracledblink

 

带有DBLINKSQL优化起来很复杂。可以通过分析执行计划,利用collocated inline viewdriving_site hint 等手段,来优化这些带有DBLINKSQL。但这即使对于一名经验丰富的DBA来说,也是件很头疼、很费劲的事。

 

这种情况下,如果有集算器就简单很多,看下面这个例子:

n个库的count运算。该运算需要在各分库中分别进行 count,对各分库的结果,在汇总阶段要用sum求和,集算器(SPL)仅4行就可以搞定了。

  A B
1 =n.(connect("Mysql"+string(~))) //获取n个分库的连接
2 =SQL="select   count(*) c from sales" //需要在分库中执行的SQL
3 =A1.(~.cursor(SQL)) //n个分库中执行 SQL
4 =A3.conjx().total(sum(c)) //将各分库算出的count值进行汇总

即使分库数据库为异构的情况,集算器也可以通过SQL翻译功能方便地进行SQL转化,为不同数据库提供可执行的SQL

利用集算器还可根据数据特征,轻松写出具有针对性的高性能代码,无需大量硬编码,即可实现高效的算法 。诸如排序top、分组、去重、连接等各类分库运算,都可以轻松实现,感兴趣可以参考:分库后的查询统计

 

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

您可能感兴趣的文档:

--结束END--

本文标题: 分库数据如何查询统计

本文链接: https://lsjlt.com/news/6755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 分库数据如何查询统计
    分库后的计算不能直接使用SQL;异构库 SQL 函数不尽相同;JAVA 硬编码实施难度大;即使借助透明网关访问远程数据库,分库性能优化也是头疼问题。 一般常规办法: 方法1:java硬编码 简单的跨库count运算,Java部分代码大...
    99+
    2017-06-06
    分库数据如何查询统计
  • 分库数据怎么查询统计
    本篇文章给大家分享的是有关分库数据怎么查询统计,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。分库后的计算不能直接使用SQL;异构库 SQL 函数不尽相同;JAVA 硬编码实施难...
    99+
    2023-06-03
  • 如何用数据库分页查询语句进行数据库查询
    这篇文章主要介绍“如何用数据库分页查询语句进行数据库查询”,在日常操作中,相信很多人在如何用数据库分页查询语句进行数据库查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何...
    99+
    2024-04-02
  • mysql数据库如何实现连续日期的统计查询
    我们经常会用到按日期汇总某些数据,一般我们使用group by + 统计函数来进行查询,得到的结果如下图所示: 在实际应用场景中,并不是每个时间段都有数据,所以我们汇总出来的结果中,日期是不连续的。...
    99+
    2023-09-03
    mysql
  • YII2数据库如何查询
    小编给大家分享一下YII2数据库如何查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据库配置。/config/db.php ...
    99+
    2024-04-02
  • LINQ如何查询数据库
    这篇文章给大家分享的是有关LINQ如何查询数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。您可以通过LINQ来编写针对各种数据源的查询访问信息。您不必在使用SQL语法,因为LINQ提供了c#语言来处理,并提供...
    99+
    2023-06-17
  • 数据库中如何查看统计信息
    小编给大家分享一下数据库中如何查看统计信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! set echo ...
    99+
    2024-04-02
  • mysql如何查询并统计数量
    这篇文章主要介绍mysql如何查询并统计数量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在mysql中,可以使用SELECT语句查询数据,并利...
    99+
    2024-04-02
  • mybatis数据库分页查询
    数据库分页查询 分页查询的优点PageHelper实现分页查询原理PageHelper的基本使用编写持久层编写业务逻辑层编写控制层 使用JsonPage返回结果 分页查询的优点 P...
    99+
    2023-10-07
    mybatis 数据库 java
  • sqlserver如何查询数据库数据量
    要查询数据库中的数据量,可以使用以下SQL语句: SELECT COUNT(*) AS TotalRows FROM You...
    99+
    2024-04-12
    sqlserver
  • PHP中如何查询数据库
    小编给大家分享一下PHP中如何查询数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查询方法应该如何实现:我们根据以前所讲的原...
    99+
    2024-04-02
  • 如何查询mysql的数据库
    本篇内容介绍了“如何查询mysql的数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 数据拆分妙计:垂直分割,让数据库查询更流畅
    垂直分割的优势 提高查询性能:对于需要频繁访问不同列组合的查询,垂直分割可以显著提高查询性能。原始表中包含的所有列都将被加载到内存中,而垂直分割后的表只需要加载相关列,从而减少了 I/O 操作和内存消耗。 优化存储空间:垂直分割可以优化...
    99+
    2024-03-10
    垂直分割是一种数据库设计技术 将单个表中的列拆分成多个表 每个表包含一组相关的列。与水平分割(将表中的行拆分成多个表)不同 垂直分割不会影响数据的完整性或一致性。
  • php如何查询数据库输出查询结果
    这篇文章主要讲解了“php如何查询数据库输出查询结果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何查询数据库输出查询结果”吧!连接数据库在开始查询数据库之前,需要先连接到数据库。在...
    99+
    2023-07-05
  • 如何查询SQLite数据库中的数据
    要查询SQLite数据库中的数据,可以使用SQL语句来执行查询操作。以下是一个示例: SELECT * FROM table...
    99+
    2024-04-09
    SQLite
  • oracle数据库查询数据如何导出
    oracle数据库提供以下导出数据的方法:sql*plus:使用spool命令导出到文本文件。oracle data pump:使用expdp命令导出到转储文件。oracle sql d...
    99+
    2024-04-19
    oracle
  • 查询数据(数据库)——简单查询
    目录 1.最简单的查询 (1)查询指定列 (2)查询所有列 (3)查询计算列 (4)为列起别名 (5)使用DISTINCT关键字消除重复元组 2.查询满足条件的元组 (1) 比较大小 (2) 确定范围 (3) 确定集合 (4) 字符匹配 (...
    99+
    2023-10-11
    数据库 sql mysql
  • mysql如何查询所有数据库
    这篇文章主要介绍了mysql如何查询所有数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 mysql查询所有...
    99+
    2024-04-02
  • mysql如何查询数据库版本
    这篇文章主要讲解了“mysql如何查询数据库版本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql如何查询数据库版本”吧! ...
    99+
    2024-04-02
  • java如何实现数据库查询
    Java可以使用JDBC(Java Database Connectivity)来实现数据库查询。具体步骤如下:1. 加载数据库驱动...
    99+
    2023-09-22
    java 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作