数据库
文章平均质量分 76
Neo Yang
长期从事电信增值服务软件的开发和设计工作。熟悉电信网络(固网,无线,数通)的规划、设计、评估业务及其IT系统的架构设计和实现方案。熟悉Java、C++语言及其开发框架。
展开
-
Postgres数据库使用any和all判断数组解决IN和NOT IN条件参数超限的问题
因mysql被oracle收购以及我们和A国的关系,越来越多的商业项目开始使用postgres数据。postgres号称最先进的关系型数据库,本身的能力支持绝大多数项目是没有问题的。特别是在处理空间几何坐标数据上能力很强。刚接触postgres,因不熟悉,也可能会遇到一些“坑”。参数个数超过限制导致SQL执行失败就是其中之一。原创 2022-09-03 19:31:38 · 2611 阅读 · 0 评论 -
Mybatis批量插入数据的两种方式
用mybatis有两种批量插入数据的方式可选:1. 拼接批量插入多条数据的SQL. 2. 使用Batch Insert技术。原创 2022-08-30 00:26:54 · 50014 阅读 · 6 评论 -
通过Mybatis执行拼接的SQL批量插入数据并返回数据库自增ID
背景开发项目引入元数据管理,表和字段都允许用户自定义管理。操作数据库的SQL就不能在mybatis 的xml配置文件里面写具体的表名和子段名。解决这个问题有两种思路,一种是用PreparedStatement组装SQL语句通过JDBC连接执行;另一种是将表名,字段名称作为参数传递到mybatis执行。这里描述第二中方案,以比较复杂的批量插入数据为例。在MySQL中创建一个简单的t_user验证。其DDL如下所示:CREATE TABLE `t_user` ( `id` int NOT NULL原创 2022-02-19 16:20:43 · 2191 阅读 · 1 评论 -
关系型数据库工作原理-查询优化器(9)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库的查询优化器: Query optimizer–查询优化器 ...原创 2018-02-23 11:18:52 · 373 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之索引(10)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库的查询优化器索引: Indexes–索引我们已在介绍B+树的章节讲过索引(译者:...原创 2018-02-23 17:07:07 · 392 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之数据访问方式(11)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器的数据访问方式: Access Path–数据访问方法在执行联表操作...原创 2018-02-24 10:11:28 · 475 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之最优的连接算法(15)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器的如何选择最优的连接算法: 哪一种算法最优-Which one is t...原创 2018-04-09 20:22:00 · 712 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之连接算法的简单实例(16)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器的实现表连接的一个简单实例: 简单实例–Simplified exampl...原创 2018-04-09 20:47:49 · 296 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之动态规划,贪婪算法和启发式算法(17)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器中寻找最优联表方案动态规划,贪婪算法和启发式算法: 动态规划、贪婪算法和启...原创 2018-04-09 21:12:54 · 3007 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之真实优化器是如何工作的(18)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍真实的数据库系统的查询优化器是如何工作的: 真实的数据库优化器–Real optimiz...原创 2018-04-09 21:27:34 · 395 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之循环嵌套连接(12)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器的循环嵌套连接的实现原理:连接操作-Join operators通过...原创 2018-04-06 07:45:34 · 771 阅读 · 1 评论 -
关系型数据库工作原理-查询优化器之哈希连接(13)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器的哈希连接的实现原理: 哈希连接-Hash join哈希连接算法更复杂...原创 2018-04-07 07:12:36 · 537 阅读 · 0 评论 -
关系型数据库工作原理-查询优化器之归并连接(14)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节, 介绍数据库查询优化器的归并连接的实现原理: 归并连接-Merge join本章的内容与...原创 2018-04-07 08:09:04 · 1158 阅读 · 0 评论 -
编写可重复执行的mysql数据库升级脚本
实际项目中经常需要编写数据库升级脚本来做一些基本的表操作:如添加表、添加字段,修改字段等。由于环境部署会经常执行升级脚本,编写可重复执行的升级脚本就很重要。基本思路是对表做操作前先判断表是否存在,对字段做操作前同样需要判断字段是否已经存在,避免脚本执行过程报错退出。下面基于脚本可重复执行的要求,给了一些常用的数据库升级脚本编写样例:创建表DROP TABLE IF EXISTS...原创 2018-05-03 00:23:01 · 4643 阅读 · 0 评论 -
通过自定义函数实现postgres主键ID自增
一、背景考虑业务连续性,新项目使用postgres数据库。从mysql数据库换到postgres很多地方不熟悉,之前常用的在表中增加一个自增 id 做主键,在mysql中建表时可以直接设置自增,postgres没有这种功能。postgres中可以设置序列,但发现序列自增时不会绕过已有的 id,如果谁手动在数据库插入了一条数据,设置了一个大一些的id,后面再插入数据使用序列自增的话,会报主键id重...原创 2019-07-20 08:18:51 · 1573 阅读 · 0 评论 -
使用mybatis批量插入数据时回填主键自增ID的值
一、定义插入数据库的对象模型package com.postgres.model;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;/** * 用户模型定义。 */@ApiModel(value = "用户模型")@D...原创 2019-07-21 09:43:43 · 4122 阅读 · 0 评论 -
关系型数据库工作原理-数据特征统计分析(8)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文翻译了如下章节, 介绍数据库的统计分析: Statistics–数据特征统计分析在了解数据库如何...原创 2018-02-22 17:57:40 · 445 阅读 · 0 评论 -
关系型数据库工作原理-SQL重写(7)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文...原创 2018-02-14 15:28:23 · 697 阅读 · 0 评论 -
关系型数据库工作原理-SQL解析(6)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本本...原创 2017-11-29 16:07:58 · 755 阅读 · 0 评论 -
关系型数据库工作原理-数据库整体框架(4)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文翻译了如下章节, 介绍数据库整体框架: Global overview所谓的数据库是指一组易于访问和修...原创 2017-03-04 21:03:16 · 2334 阅读 · 0 评论 -
关系型数据库工作原理-数据结构(3)
本文翻译自Coding-Geek文章:《 How does a relational database work》。 原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文翻译了如下章节: 一、Array、Tree and Hash table通过前面的章节, 我们已经理解...原创 2016-04-29 07:07:15 · 18037 阅读 · 2 评论 -
关系型数据库工作原理-归并排序(2)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节: 一、Merge Sort – 归并排序当你需要对集合排序时,你怎么做? 什么? 你直...原创 2016-04-22 06:58:42 · 3699 阅读 · 1 评论 -
关系型数据库工作原理-时间复杂度(1)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies本文翻译了如下章节: 一、 前言谈到关系型数据库,我想不到有什么东西能缺少它,可以说关系型数据已经无处不在...原创 2016-04-21 07:19:41 · 13385 阅读 · 2 评论 -
关系型数据库工作原理-事务管理(二)(22)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies紧接上一篇文章,本文翻译了如下章节:<一、 Log manager(日志管理)通过前面的章节,我们已经知...原创 2016-04-07 06:53:57 · 6698 阅读 · 0 评论 -
关系型数据库工作原理-事务管理(一)(21)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies紧接上一篇文章,本文翻译了如下章节: Transaction manager(事务管理器)一、关于ACID...原创 2016-04-03 16:33:02 · 10398 阅读 · 1 评论 -
关系型数据库工作原理-高速缓存(20)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies先翻译高速缓存章节,后续有时间再翻译其它章节。翻译内容在原文的目录: 一、数据管理器 数据查询器执行查询操...原创 2016-03-27 07:54:28 · 4518 阅读 · 0 评论 -
关系型数据库工作原理-客户端连接管理器(5)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文翻译了如下章节, 介绍数据库的客户端管理器组件: Client manager客户端管理器是一个处理与数...原创 2017-11-24 13:11:12 · 547 阅读 · 0 评论 -
通过Navicat连接MySQL数据库
步骤一、从Navicat官网下载Navicat11版本安装包安装下载连接:http://www.formysql.com/xiazai_mysql.html步骤二、下载补丁破解程序PatchNavicat.exe到Navicat安装目录下运行破解详细的破解步骤可以参考这位仁兄的博客。亲测可行。 https://www.cnblogs.com/da19951208/p/6403607.html原创 2018-01-03 11:15:00 · 988 阅读 · 0 评论 -
使用批处理将备份的sql文件导入到数据库
一、背景承接上一篇文章《如何使用mysqldump备份数据库》,数据库备份后将用于恢复或者在多个测试环境上迁移。下面描述如何通过批处理文件实现数据加载恢复。二、环境准备跟上一篇一样,在back_up文件夹下增加loaddata.bat文件。三、开发脚本在loaddata.bat中增加如下内容:::将备份的数据加载到数据库@echo off::1、初始化待加载数原创 2018-01-22 23:00:11 · 2111 阅读 · 0 评论 -
如何使用mysqldump备份数据库
一、背景在开发项目中,数据库是核心资产。除了做主备冗余增加可靠性外,定期备份数据也是必须的。使用mysqldump备份数据具有操作简单,备份和恢复时间短的优点(mysqldump备份数据生成的是批量insert语句,恢复数据时间比navcat导出的逐条插入方式快不只一个数量级)。总之、如果你使用的是mysql数据库,需要备份数据,使用mysqldump就没错了。二、解决方案原创 2018-01-18 12:38:22 · 1122 阅读 · 0 评论 -
【经验随笔】MYSQL表加锁升级导致数据库访问失败
背景:有一次定位问题发现,在同一个session连接中对MYSQL部分表加锁,导致其它未加锁的表不能访问。用Spring管理MYSQL数据连接,在多线程访问数据库的情况下容易出问题。一个线程中对部分表加锁了,尚未释放。其它线程访问同一数据库中其它未加锁的表,也会访问失败。测试了一把:步骤一、使用Navicat连接MYSQL数据库。编写如下4句SQL。LOCK TABLES原创 2017-07-08 09:27:29 · 1290 阅读 · 0 评论 -
Spring Boot初探之数据库访问
一、背景Spring boot是集服务发布、数据库管理、日志管理等于一身的服务开发框架;是微服务开发的全能小帮手。这章讲述一下如何使用spring boot访问MySQL数据库。二、搭建基础环境1、安装maven(指导文档 网上一搜一大堆)。 2、在eclipse中创建maven项目。 3、在pom.xml配置连接spring boot的仓库。依赖部分的配置如下:par原创 2018-01-29 07:06:47 · 356 阅读 · 0 评论 -
用注解的方式实现Mybatis插入数据时返回自增的主键Id
一、背景我们在数据库表设计的时候,一般都会在表中设计一个自增的id作为表的主键。这个id也会关联到其它表的外键。这就要求往表中插入数据时能返回表的自增id,用这个ID去给关联表的字段赋值。下面讲一下如何通过注解的方式实现插入数据时返回自增Id。二、设计数据库表CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCRE原创 2018-01-29 07:24:14 · 40664 阅读 · 2 评论 -
如何在Win10下安装MySQL 5.7绿色版
一、背景系统升级到Win10后准备在本地搭建一个MySQL环境,用于研究学习。在网上找了很多其他人写的经验总结,Step by step的做,不断的遇到问题,没有成功。最后老老实实的去读Mysql英文版本的手册,总算把环境搞好了。看来成长没有捷径!下面总结一下安装过程。二、安装步骤步骤1、下载MySQL 5.7版本的ZIP包进入页面:https://dev.mysql.co...原创 2018-01-02 14:17:22 · 2986 阅读 · 0 评论 -
关系型数据库工作原理-数据库查询器(19)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文翻译了如下章节, 介绍数据库的客户端管理器组件:Query manager-数据库查询器本章描述的查询器...原创 2017-11-29 15:40:48 · 464 阅读 · 0 评论