jooq 执行sql

欢迎来到jOOQ Tuesdays系列。 在本系列文章中,我们每隔一个月的第三个星期二发布一篇文章,从jOOQ的角度采访我们发现该行业令人兴奋的人。 这包括从事SQL,Java,开放源代码以及各种其他相关主题的人员。

我们很高兴在第六版中与Markus Winand交谈。 Markus是受欢迎的《 SQL Performance Explained》一书的作者,更受欢迎的网站Use The Index卢克(Luke)的作者 ,我们很高兴看到他正在实现另一项特技:

这个网站的目标是什么?

对于modern-sql.com,我的目标是创建一本教科书,并提供有关您在学校或大学中未学过SQL知识的参考。 有趣的是,有关这些功能的在线手册很少。 它们以两种方式出现:博客文章和供应商文档。 博客文章通常是一次性事件,涉及特定功能或用例。 那里有很多很棒的博客-jOOQ博客就是其中之一 -但是我没有推荐我学习所有有关最新SQL功能的文章。 另一方面,供应商文档主要是关于语法的参考-甚至常常是一个不好的参考:他们通常根本没有提及标准合规性,并且倾向于遵循“专有功能优先”的方法。

结果是SQL市场非常分散:除了SQL-92外,没有明显的基础可用于所有数据库。 在工作市场上,这一点尤其明显:工作机会要么只需要SQL(意味着良好的旧关系SQL),要么需要具有特定产品的经验。 如今,这几乎是一种规范,没有人质疑它。 但是,您如何看待这个职位空缺:“ Google Chrome Web Developer”。 Web开发人员无法选择客户端的浏览器。 许多尝试,但失败了。 还记得“针对XYZ优化”吗? 这就是为什么在过去的几十年中,Web开发人员要求浏览器具有标准一致性的原因。 刚启动一个新网站,我可以说CSS一致性在过去五年中得到了极大的改善。 最终,我希望对SQL发生同样的事情。 我希望modern-sql.com引起人们对标准符合SQL的兴趣,以便开发人员也开始要求数据库供应商提供标准符合性。 雄心勃勃的目标。

是否想阐明该运动的背景?

OFFSET最引人注目的问题是它通常用于无效的用例:分页。 在这种情况下,OFFSET用于跳过许多行,以查找先前选择的行之后的行。 但是,按定义,OFFSET不会返回之前选择的行之后的行,而只是丢弃结果的前N行。 巧合的是,如果同时未更改数据,则OFFSET会产生预期的结果-这种情况在开发过程中非常普遍。 但是,一旦添加或删除行,丢弃固定数量的行就无法给出正确的结果。 正确的方法是记住提取的最后一行,并在WHERE子句中使用此数据来选择后面的行。 有关此方法的详细信息,请参见http://use-the-index-luke.com/no-offset 。

除了不能使用OFFSET来实现正确的分页之外,OFFSET还不利于性能。 偏移量错误且缓慢。 你还需要什么? 事实上,我知道OFFSET的唯一有效用例是在SQL中实现SLEEP,而我从来不需要。 不幸的是,OFFSET于2011年成为SQL标准。我认为这是最近SQL历史上最严重的错误,因为它无法纠正。 唯一的好处是它是一项可选功能-供应商无需实现标准一致性。 尽管如此,Oracle和Microsoft最近才在其SQL数据库中添加了OFFSET。

它与其他SQL书籍相比如何?为什么读者应该购买?

我将从第二个问题开始。 首先,您必须知道SQL Performance Explained的全部内容可从http://use-the-index-luke.com/免费获得。 我问的大多数人为什么要买这本书,是因为喜欢该网站。 他们购买了这本书,以支持我对Luke的使用索引工作(非常感谢!),或者更重要的是,最终从头到尾阅读了这本书。 我得到的典型答案是:“我认识卢克(Luke)已有多年,并且在那里读过很多文章,但是我最终还是想从头到尾阅读所有内容。”

现在要问的第一个问题是,为什么世界需要另一个SQL性能指标:事实并非如此。 因此,我写了一本很小的书,可以在不到一天的时间内阅读。 我专注于基本概念,这些概念在大多数数据库中都是相同的,并且大胆地跳过了不太常见的特殊情况。 评论中也最赞赏它的短处。 另一方面,这本书有时被批评为不完整,这可能是因为副标题为“开发人员需要了解SQL性能的所有内容”。 就我个人而言,我认为这些批评以某种方式证明了我的观点:显然,Java,PHP或.NET开发人员不需要像数据库性能顾问那样了解SQL性能。 为此类读者写作时,您必须跳过很多。

从现在开始的十年后,您将在哪里看到SQL?

我希望SQL:2011的时态功能( 请参阅此处 )在公共开源数据库中也可以普遍使用。 目前,它们仅在商业数据库中可用-即使完整性和标准一致性也有所不同。 我也希望SQL标准找到一种方法来应对当前的趋势,即每个数据库供应商都添加自己的专有JSON函数集。 不幸的是,这可能已经为时已晚。

但是,我最大的希望是开发人员意识到SQL不会在1992年陷入困境。自那时以来,该标准已添加了许多有用的功能。 大多数数据库都提供了这些功能的很大一部分。 实际上,我们对SQL的看法在1992年陷入困境。

了解有关Markus工作的更多信息

…Markus在会议上发表了他的Modern SQL演讲。 点击此处了解详情:

来自Markus Winand的 PostgreSQL中的现代SQL

翻译自: https://www.javacodegeeks.com/2015/10/jooq-tuesdays-markus-winand-is-on-a-modern-sql-mission.html

jooq 执行sql

jooq 执行sql_jOOQ星期二:Markus Winand执行现代SQL任务相关推荐

  1. jOOQ星期二:Markus Winand执行现代SQL任务

    欢迎来到jOOQ Tuesdays系列. 在本系列中,我们每隔一个月的第三个星期二发布一篇文章,从jOOQ的角度采访我们发现该行业令人兴奋的人. 这包括从事SQL,Java,开放源代码以及其他各种相关 ...

  2. php 命令执行crud_使用活动记录执行CRUD

    php 命令执行crud 本文是我们学院课程" jOOQ –类型安全数据库查询"的一部分 . 在SQL和特定关系数据库很重要的Java应用程序中,jOOQ是一个不错的选择. 当JP ...

  3. js 等待某个函数执行完_JS 函数的执行时机

    JS函数在不同的时候运行,会有不同的运行结果,本文将分别举例分析 案例一 let a = 1 function fn(){ console.log(a) } 注意:这里不会打印任何东西,因为函数只是声 ...

  4. Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执行...

    Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执行 Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执 ...

  5. mysql 存储过程无效_用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法...

    用VC通过DLL包连接mysql,执行存储过程后,再执行其他查询无效? MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mys ...

  6. python源程序执行的方式是什么执行-python调用可执行文件的方法

    最近要用到python调用C程序,因此,看了一下python调用别的程序的方法.大致来说,python调用C/C++有两种方式,一种是调用C编译的动态链接库,即so文件,一种是调用C生成的可执行文件. ...

  7. linux定时执行python脚本_linux定时执行python脚本的方法以及失败不执行的处理方法...

    首页,linux定时任务用到的是crontab,我们来看一下crontab如何使用 crontab-1[user]-列出用户目前的crontab. crontab-e[user]-编辑用户目前的cro ...

  8. 后退到的页面为什么没有执行js_为什么中层没有执行力?

    很多公司里都存在这么一种现象. 中层管理者说:"这几年感觉特别累,老板交办一些事,因为他时间有限,只说了个大概.我下去做了几天,向老板一汇报,发现和老板想要的不一样,又要重新弄.挨一顿训不说 ...

  9. 查看真实的执行计划 绑定变量对执行计划的影响--“绑定变量窥探”

    --##################################################### --####     AWR执行计划                           ...

最新文章

  1. 黄聪:php实现上传图片和等比例缩略图压缩图片
  2. boost::type_erasure模块实现了支持多个签名的 Boost.Function 扩展
  3. freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法
  4. 函数形参传递概念及问题分析
  5. cookie和session 以及Django中应用
  6. 清华北大大动作上热搜了,怎么回事?
  7. 存储池与存储卷,使用virt-install创建虚拟机
  8. 全国政协常委胡晓炼:要重视数字货币与数字鸿沟问题
  9. python项目依赖库的导出和安装
  10. vb 获取设备音量_自制 Windows 10X 启动盘,提前体验微软折叠设备新系统
  11. 手输Unicode字符的方法
  12. 搞深度学习框架的那帮人,不是疯子,就是骗子
  13. QQ空间相册批量下载【原图】
  14. 安装hustoj的一些心得及html的笔记
  15. 从东南大学906被刷到调剂过程(内含个人感想)
  16. 联想E43升级bios激活windows 7
  17. 万达商管再次递表港交所:上半年净利润40亿元,外部股东阵容强大
  18. 英语知识点整理day14-谚语学习(F字母开头)
  19. Matlab 常见错误(1)——提示“数组索引必须为正整数或逻辑值”或者“索引超出数组元素的数目”
  20. 自定义实现一个RPC框架(三)

热门文章

  1. MM采购定价条件记录表
  2. 网易中国创业家大赛倒计时,2017年8月报名结束
  3. pinyin4j:拼音与汉字的转换实例
  4. AI人工智能—数据标注的主要类型和标注注意事项
  5. 东软睿驰 bms车载测试工程师
  6. 树莓派使用排线摄像头和远程视频监控
  7. 精品基于Uniapp+SSM实现的作业管理app
  8. 机器学习【吴恩达|周志华|李宏毅|算法】清单
  9. python中怎么统计英文字符的个数_python怎样实现字符串中字符分类及个数统计
  10. 互联网让中国零售业弯道超车:近创新比黑科技重要