derby mysql 性能_derby的三大缺陷

2023-11-20

derby数据库的嵌入式特性让人很流口水。但是,我刚打算将其用进我的项目中,却发现它没有好的分页查询方式,每次都返回所有符合条件的记录。oracle有rownum,mysql有limit,sqlserver好歹也有个top,汗啊汗,看来不爽的人还不止我一人。

derby的好处就不用我多说了吧,正因为如此,某个项目使用了derby,并从中发现了3个很让人无奈的缺陷。

最傻的缺陷:没有boolean数据类型

这个让人很无语,derby是我发现的第一个不支持boolean的数据库,在这个年代,很难想象还有数据库需要让人建立其他类型来顶替boolean,对应JDBC的boolean,derby使用的是SMALLINT,虽然这不是数据库致命的缺点,但这让数据库设计者产生很不爽的感觉。前些天Sun Tech Days上,SUN的Miss Lu告诉我,事实上derby的小组老早就已经完成了boolean类型,只是IBM到现在仍不让boolean出现在derby上,其中原因我只能说~!@#$%^&*…

最痛苦的缺陷:没有LIMIT和OFFSET子句(或相同功能的子句)

同样让人很无奈,derby测试小组声称derby的性能已经达到能容纳700G的数据,并向TB级别进发,但是这么大的数据量却没有办法让人实现数据库这一层的查询限制,每次查询的结果必定返回你的查询语句的所有结果。而且结果集也只能统统接收这些数据,然后由我们的代码在业务层实现对数据的分页。

不过值得庆幸的是,Miss Lu说他们已经在开发该功能,预计下一版本会实现,还有两个月时间,到时候大家准备数据大搬迁吧,for performance!

最搞不懂的缺陷:外键关联 ON UPDATE 只支持 NO ACTION 和 REDIRECT

三个之中这个缺陷最能让人接受,幸好 ON DELETE 还支持CASCADE,不然真的要 jump 了。但这始终还是对derby的功能上造成了影响,触发器,存储结构和业务层逻辑都能搞定,所以问题不是很大。

最后,希望其他derby用户有什么看法或见解也能告诉我,大家多多交流下。

---------------------------------------

感谢网友 的通知:

Derby db 在10.5版本后有重要更新

含分页的排序语句如:

select * FROM (select ROW_NUMBER() OVER() AS R, customer_id, zip from CUSTOMER) AS T where R>0 and R<5 order by customer_id desc;

分页查询是比较有用的特性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

derby mysql 性能_derby的三大缺陷 的相关文章

  • Unity与Android的Back键冲突解决

    Unity与Android的Back键冲突解决 上一篇的最后留下了两个问题 Unity视图下横屏闪退 Unity视图下Android无法响应back返回上一activity 对于第一个问题 应该是Unity横屏下视图的某些设置跟Androi
  • 0227:zotero文献管理/小绿鲸英文/CSDN做笔记

    搜索 下载 白嫖 翻译 文章 如何精准找到和方向相关的文献 谷歌学术 国内无法正常进入 两个镜像网站 https xueshu dailyheadlines cc https scholar lanfanshu cn 搜索技巧 关键词套双引
  • OS——文件管理系统磁盘的结构之搞清盘面和柱面

    如上图 每个柱面有三个盘面 即就是3个磁道 柱面可以抽象的理解成是一个套一个的立体的同心圆柱体 例 2019年408真题 磁盘有300个柱面 每个柱面有10个磁道 每个磁道有200个扇区 扇区大小为512B 则磁盘容量 分析 每个柱面有10
  • 【排错】error: error parsing recommended.yaml: error converting YAML to JSON: yaml: line 14:的解决方式

    在部署k8s的时候 编写k8s的dashboard文件 遇到以下错误 error error parsing recommended yaml error converting YAML to JSON yaml line 14 could
  • PLINQ并行查询效率的简单分析

    PLINQ并行查询效率的简单分析 假设执行一次查询需要花费的时间比较大 那我们可以采用PLINQ并行查询来进行提速 并行查询 就是利用多核计算机并行执行查询语句来进行提速 这很好理解 一个工人工作慢 那就多叫几个工人同时进行工作 这样工作的
  • php 实现微信消息时间,在微信小程序中如何实现时间功能

    这篇文章主要介绍了微信小程序使用picker实现时间和日期选择框功能 结合实例形式分析了微信小程序picker组件进行日期与时间选择的相关操作技巧 并附带源码供读者下载参考 需要的朋友可以参考下 本文实例讲述了微信小程序使用picker实现
  • 选择结构程序设计和循环控制(if语句,switch语句,条件运算符,for循环,while及do while语句,break,continue,goto语句)折半查找法及猜数字游戏带你巩固理解

    本章我们来迅速学习一下选择语句和循环语句 首先我们来了解何为语句 C语言中语句可以分为以下五类 1 表达式语句 2 函数调用语句 3 控制语句 4 复合语句 5 空语句 这篇文章我们主要讲的是控制语句 控制语句 控制语句主要用于控制程序的运
  • IDEA 三种注释生成方式

    三种注释方式 行注释 块注释 方法或类说明注释 一 快捷键 Ctrl 使用Ctrl 添加行注释 再次使用 去掉行注释 二 演示代码 if hallSites null hallSites size gt 0 行注释 最大行号 int max
  • 【Python】基于Python利用熵权法计算数据权重——一个简单的图形用户界面编程

    目录 1 简介 2 技术流程 3 数据 4 代码 4 1 代码 极差标准化 4 2 代码 熵权法赋权 5 实验操作与流程 6 关于数据获取 1 简介 师弟又催我给他公众号写文了 这次还点名要这个题目 所以我就先到自己的博客里写写练练手 下面
  • ​Java 输入一个字符串,统计其中字符 A 的数量并输出。

    题目描述 输入一个字符串 统计其中字符 AA 的数量并输出 输入 输入一个不带空格的字符串 字符串长度不超过 100 输出 输出字符串中字符 A 的数量 样例输入 AabdkeaoektA 样例输出 2 import java util S
  • sublime text 3上使用Git连接Github

    首先下载的sublime text 3我是在PHP中文网下载的 是汉化版 一进去就有git插件 之前很久下过的好像不能使用插件 所以我就下了最新的汉化版 进去就有git插件 再者就是git要自己下载一下安装 配置好path环境变量 也就是c
  • 点击按钮复制链接

    做点击按钮复制链接 网上找的方法是用原生js document execCommand Copy window clipboardData setData Text url value 发现微信上存在不兼容 在安卓和PC段都可以 但是在苹果
  • 2023问题汇总

    问题汇总 Linux相关 1 vim 修改挂载文件时 报错 read only filesystem 2 root 用户密码无法更改 3 linux 用户被锁定 4 linux 查看登录日志 其他小问题 1 linux 的dns 修改配置
  • 企微报错60020

    errcode 60020 errmsg not allow to access from your ip hint 1655882753557010848204971 from ip more info at https open wor
  • wazuh安装手册

    一 wazhu部署架构 1 服务器上运行的Agent端会将采集到的各种信息通过加密信道传输到管理端 2 管理端负责分析从代理接收的数据 并在事件与告警规则匹配时触发警报 3 LogStash会将告警日志或者监控日志发送到Elasticsea
  • 第九章 细分着色器

    第九章 细分着色器 细分面片 细分着色器只能处理面片 patch 类型的图元 如果启用细分着色器 将其他类型图元传递给它会产生GL INVALID OPERATION错误 如果没有启用细分着色器 那么渲染面片数据也会得到GL INVALID
  • 【JFinal最省代码的框架】JFinal+Bootstrap实现后台管理系统主页

    原文 JFinal最省代码的框架 JFinal Bootstrap实现后台管理系统主页 源代码下载地址 http www zuidaima com share 1893049233067008 htm
  • 爱情和婚姻的区别

    有一天 柏拉图问老师苏格拉底什么是爱情 老师就让他先到到麦田里去 摘一棵全麦田里最大最金黄的麦穗来 期间只能摘一次 并且只可向前走 不能回头 柏拉图于是按照老师说的去做了 结果他两手空空的走出了田地 老师问他为什么摘不到 他说 因为只能摘一
  • 【DevOps视频笔记】6 - 7. Jenkins 介绍 和 安装

    一 Integrate 工具 二 Jenkins 介绍 1 Jenkins 最主要的工作 2 CI CD 可以理解为 2 1 CI 过程 2 2 CD 过程 三 Jenkins 安装 1 安装准备工作 2 安装 Jenkins Stage

随机推荐

  • 环境配置--解决torch.cuda.is_available()返回:False

    在网上很多都说是因为pytorch版本和CUDA不匹配造成的 但对于我的情况并不是 而是因为在官网默认下载到了的pytorch是cpu版本 真坑 另外在pycharm默认下载到的pytorch 1 9 0也是cpu版本 用不了cuda 1
  • 计算机设计大赛答辩提问,电子设计大赛答辩常见问题合集

    电子设计大赛答辩常见问题合集 由会员分享 可在线阅读 更多相关 电子设计大赛答辩常见问题合集 2页珍藏版 请在人人文库网上搜索 1 答辩常见问题合集1 本课题的选课背景 意义等等 这个论文中有的 也都是一些套话 我就不答了 我整理的都是技术
  • PLSQL创建新用户并导入导出.dmp文件

    一 登录管理员账号 用户名 密码 登录身份 说明 system manager SYSDBA 或 NORMAL 不能以 SYSOPER 登录 可作为默认的系统管理员 sys change on install SYSDBA 或 SYSOPE
  • 电路设计相关

    本人才疏学浅 孤陋寡闻 下文若有不当之处 还请赐教 1 一些概念 施密特触发器 施密特触发器采用电位触发方式 其状态由输入信号电位维持 对于负向递减和正向递增两种不同变化方向的输入信号 施密特触发器有不同的阈值电压 对于标准施密特触发器 当
  • 天眼使用指南--分析平台

    天眼分析平台 提供全面的溯源分析能力 涵盖图中模块 负责存储日志 分为三类 告警日志 告警日志 来自探针和沙箱的告警 探针的告警可以记录双向完整对话 如果网络流量中没有恶意信息 就会储存一些关键信息 如http请求部分状态码 tcp上下前一
  • 用python批量插入clickhouse

    用python批量插入clickhouse 以下是一个示例代码 演示了如何使用clickhouse driver模块实现批量插入和分布式查询 import clickhouse driver import random connect to
  • C语言函数调用过程

    文 读书笔记 C语言函数调用过程 c legendmohe 2015年07月12日发布 推荐 0 推荐 收藏 0 收藏 392 浏览 本文是 老码识途 第一章的读书笔记 函数调用 例子代码如下所示 int Add int x int y i
  • 什么是参数模型(LR)与非参数模型(SVM)

    什么是参数模型 LR 与非参数模型 SVM 在统计学中 参数模型通常假设总体 随机变量 服从某一个分布 该分布由一些参数确定 比如正太分布由均值和方差确定 在此基础上构建的模型称为参数模型 非参数模型对于总体的分布不做任何假设 只是知道总体
  • jQuery Validate验证框架详解

    jQuery校验官网地址 http bassistance de jquery plugins jquery plugin validation 一 导入js库 注 返回web项目的根路径 二 默认校验规则 1 required true
  • 测试大姐趁我下班点又提了个bug!前端你咋多个options请求?

    测试大姐提了个bug 为什么你多了个options请求 1 下班前的寂静 刚准备下班呢 测试大姐又给我提个bug 你看我这就操作了一次 network里咋有两个请求 我心一惊 不可能啊 我代码明明就调用一次后端接口 咋可能两个请求 打开她的
  • floor(),ceil()函数

    地板 天花板函数 均包含在math h中 意思分别为 返回不大于形参的最小整数和不小于形参的最大整数 include
  • Git冲突导致的Please commit your changes or stash them before you merge

    Git冲突导致的Please commit your changes or stash them before you merge 用git pull来更新代码的时候 遇到了下面的问题 error Your local changes to
  • js检查数据类型的方法

    1 typeof 这是最常用的基本数据类型检测的方法 console log typeof string console log typeof 1 number console log typeof true boolean console
  • spring boot最新教程(五):404错误500错误统一处理

    Spring Boot默认使用嵌入式Tomcat 默认没有页面来处理404等常见错误 因此 为了给用户最佳的使用体验 404 500等常见错误需要我们自定义页面来处理 我们需要用org springframework boot contex
  • 威动服务器如何添加文件夹,威动服务器如何设置

    威动服务器如何设置 内容精选 换一换 华为云提供两种连接方式通过SQL Server客户端连接实例 非SSL连接和SSL连接 其中 SSL连接实现了数据加密功能 具有更高的安全性 安装SQL Server客户端请参见如何安装SQL Serv
  • 如何使用 Docker 部署 Caddy Web 服务器

    Caddy是一种流行的现代 Web 服务器 专为高性能和内存安全而设计 它是用 Go 编写的 运行时没有依赖关系 内置支持使用 Markdown 进行静态站点渲染 并提供自动 HTTPS Caddy 专注于提供简单的服务器管理体验 默认情况
  • Vue + Element UI 前端篇(十一):第三方图标库

    Vue Element UI 实现权限管理系统 前端篇 十一 第三方图标库 使用第三方图标库 用过Elment的同鞋都知道 Element UI提供的字体图符少之又少 实在是不够用啊 幸好现在有不少丰富的第三方图标库可用 引入也不会很麻烦
  • HDFS常用命令

    1 hdfs dfs与hadoop fs 命令的形式 hdfs dfs linux命令 这与linux中命令操作是一样的 hadoop fs等同于hdfs dfs 2 Hadoop命令 hadoop classpath 打印当前hadoop
  • 程序员的自我修养(九)虚拟内存空间

    进程的虚拟地址 每个程序被运行起来以后 它将拥有自己独立的虚拟地址空间 这个虚拟地址空间的大小由计算机的硬件平台决定 具体的说是由CPU的位数决定 对于Linux系统来说 它的进程虚拟空间的划分 1GB 操作系统 3GB 进程 对于Wind
  • derby mysql 性能_derby的三大缺陷

    derby数据库的嵌入式特性让人很流口水 但是 我刚打算将其用进我的项目中 却发现它没有好的分页查询方式 每次都返回所有符合条件的记录 oracle有rownum mysql有limit sqlserver好歹也有个top 汗啊汗 看来不爽