![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 91
dragonpeng2008
这个作者很懒,什么都没留下…
展开
-
Redisson实现分布式锁的实战案例-锁单key-锁多key-看门狗
Redisson实现分布式锁的实战案例-锁单key-锁多key-看门狗原创 2022-06-26 11:50:17 · 795 阅读 · 0 评论 -
redis可靠消息队列
前一篇文章《Redis消息队列》介绍了一种简单的FIFO队列的实现。FIFO队列中的消息一经发送出去,便从队列里删除。如果由于网络原因消费者没有收到消息,或者消费者在处理这条消息的过程中崩溃了,就再也无法还原出这条消息。也就是说,FIFO队列不能保证消息会传递成功。究其原因,在于FIFO队列缺乏消息确认机制,即消费者向队列报告消息已收到或已处理的机制。可靠队列便是加入了这一机制的消息队列。...转载 2019-05-06 10:57:28 · 1026 阅读 · 0 评论 -
阿里云Redis开发规范
一、键值设计1. key名设计(1)【建议】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idugc:video:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid}简化为u:{uid}:fr:m:{mi...转载 2019-05-06 10:39:10 · 137 阅读 · 0 评论 -
十分钟看懂时序数据库(V)- 分布式计算
物联网领域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网领域数据存储的首选,时序数据库也越来越多进入人们的视野,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标志性事件。前文提到数据查询特别是大数据量的聚合分析查询是时序数据库需要解决的...转载 2019-04-19 15:22:12 · 936 阅读 · 0 评论 -
十分钟看懂时序数据库(IV)- 分级存储
物联网领域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网领域数据存储的首选,时序数据库也越来越多进入人们的视野,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标志性事件。前文提到低成本的存储是时序数据库需要解决的一个主要问题,而上一篇文...转载 2019-04-19 15:20:15 · 545 阅读 · 0 评论 -
十分钟看懂时序数据库(III)- 压缩
物联网邻域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网邻域数据存储的首选时序数据库也越来越多进入人们的视野,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标志性事件。压缩对于时序数据库是至关重要的。因为时序数据库面对的物联网场景每天都...转载 2019-04-19 15:15:38 · 839 阅读 · 0 评论 -
十分钟看懂时序数据库(II)- 预处理
物联网领域近期如火如荼,互联网和传统公司争相布局物联网。作为物联网领域数据存储的首选时序数据库也越来越多进入人们的视野,早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB。前文提到时序数据是一个写多读少的场景,对时序数据库以及数据存储方面做了论述,数据查询和聚合运算同样是时序数据库必不可少的功能之一。如何支持在秒级对上亿数据的查询分组聚合运算成为了时序...转载 2019-04-19 15:14:55 · 760 阅读 · 0 评论 -
十分钟看懂时序数据库(I)-存储
2017年时序数据库忽然火了起来。开年2月Facebook开源了beringei时序数据库;到了4月基于PostgreSQL打造的时序数据库TimeScaleDB也开源了,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB,成为支持其发展制造,交通,能源,智慧城市等产业领域的核心产品,同时也成为百度战略发展产业物联网的标志性事件。时序数据库作为物联网...转载 2019-04-19 15:10:14 · 1887 阅读 · 0 评论 -
MySQL常用Json函数
来源:http://www.cnblogs.com/waterystone/p/5626098.html;1. 概述MySQL里的json分为json array和json object。 $表示整个json对象,在索引数据时用下标(对于json array,从0开始)或键值(对于json object,含有特殊字符的key要用"括起来,比如$."my name")。例如:[3,...转载 2019-04-23 19:51:26 · 31298 阅读 · 2 评论 -
数据库迁移工具Flyway对比Liquibase
很多应用的运行是需要数据库支持的,而随着快速迭代,产品更替的节奏加快,除了产品本身需要不断更新以外,数据库也需要做出合适的管理了。为什么需要数据库迁移管理比如第一个版本的产品只包含了最基本的功能,而第二版本就需要增加评论功能,这就涉及到数据结构的修改(包括创建新表,修改旧表的列,增加已有表的列等等)。直接进入产品数据库修改数据库并不适合快速的开发节奏,不仅仅不安全,更多的情况下数据库可能并...转载 2019-04-23 09:34:52 · 1946 阅读 · 0 评论 -
以嵌套集合模型实现树状结构的一点深入探讨
以关系型数据库实现树状结构,除了大家熟悉和容易理解的“邻接表模型”,还有另一种“嵌套集合模型”,其基本理论在网上都可找到,比如:Mike Hillyer 的原作http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/陈建平对上文的译作http://www.cnblogs.com/chinaontolog...转载 2019-04-23 09:23:02 · 1119 阅读 · 0 评论 -
在Redis集群中使用pipeline批量插入
由于项目中需要使用批量插入功能, 所以在网上查找到了Redis 批量插入可以使用pipeline来高效的插入, 示例代码如下:String key = "key";Jedis jedis = new Jedis("xx.xx.xx.xx");Pipeline p = jedis.pipelined();List<String> myData = .... //要插...转载 2019-05-06 11:22:41 · 1772 阅读 · 0 评论 -
MongoDB 4.0 事务实现解析
上个月底 MongoDB Wolrd 宣布发布 MongoDB 4.0, 支持复制集多文档事务,阿里云数据库团队研发工程师第一时间对事务功能的时间进行了源码分析,解析事务实现机制。MongoDB 4.0 引入的事务功能,支持多文档ACID特性,例如使用mongo shell进行事务操作> s = db.getMongo().startSession()session { ...转载 2019-05-14 09:51:00 · 9718 阅读 · 0 评论 -
otter自定义数据同步踩坑实录
otter自定义数据同步otter支持数据处理自定义过程。Extract模块:EventProcessor : 自定义数据处理,可以改变一条变更数据的任意内容FileResolver : 解决数据和文件的关联关系目前两者都只支持java语言编写,但都支持运行时动态编译&lib包载入的功能。通过Otter Manager直接发布source文件代码,然后推送到node...原创 2019-09-09 17:31:56 · 3951 阅读 · 0 评论 -
Java中文件上传下载 --使用Minio
Minio模板类:@RequiredArgsConstructorpublic class MinioTemplate implements InitializingBean { private final String endpoint; private final String accessKey; private final String secretKey; ...转载 2019-07-10 15:28:27 · 6165 阅读 · 1 评论 -
Minio 整合springboot 开发 实现文件上传
Minio 作为对象存储,灵活方便,结合java 实现minio 文件上传1.搭建maven环境,添加依赖包<properties> <minio.version>4.0.0</minio.version></properties><dependency> <groupId>io.minio<...转载 2019-07-10 15:25:51 · 8603 阅读 · 5 评论 -
springboot学习笔记-3 整合redis&mongodb
一.整合redis1.1 建立实体类@Entity@Table(name="user")public class User implements Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; private String name;...转载 2019-06-27 18:50:41 · 565 阅读 · 0 评论 -
mysql 100万条数据的一张表,如何查询优化?
1.两种查询引擎查询速度(myIsam 引擎)InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上w...转载 2019-05-13 17:04:07 · 17139 阅读 · 1 评论 -
Spring Boot 中使用 MongoDB 增删改查
本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查1、什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,...转载 2019-05-13 16:35:23 · 821 阅读 · 0 评论 -
spring-data-mongodb之批量更新操作
用过mongodb的同学想必都知道,以java驱动的语法举例,插入式有insert方法的,支持插入集合,也就是批量插入。@Override public void insertAllDemo(List<DemoEntity> list) { mongoTemplate.insertAll(list); }但是update方法却只能执行一个更新条件,参数不...转载 2019-05-13 16:31:45 · 6619 阅读 · 0 评论 -
数据库视图概念,优缺点及作用
视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义。具有普通表的结构,但是不实现数据存储。对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不会改变基本表的数据。作用:①简化了操作,把经常使用的数据定义为视图。我们在使用查询时,在很多时候我们要使用聚合函数,同时还要 显示其它字段的信息,可能还会需要关联到其它表,这时写的...转载 2019-05-10 14:47:02 · 12844 阅读 · 0 评论 -
oracle临时表与物化视图
1. 临时表1) 概念a) 临时表跟永久表最大的区别就是表中的数据不会永远的存在b) Oracle临时表分为会话级临时表和事务级临时表。c) 会话临时表,结束或中断会话时清空数据。create global temporary table XXX()on commit preserve rows;d) 事务临时表,commit之后清空数据。on commit delete ...转载 2019-05-10 14:35:44 · 1053 阅读 · 0 评论 -
使用工具 SQL Tuning Expert for Oracle 优化SQL语句
自动SQL优化工具Tosska SQL Tuning Expert for Oracle,帮助SQL开发人员解决SQL性能问题。 官网下载https://tosska.com/tosska-sql-tuning-expert-tse-oracle-free-download/产品介绍https://tosska.com/tosska-sql-tuning-expert-t...转载 2019-05-07 15:12:41 · 2675 阅读 · 0 评论 -
SQLServer新建用户只能访问某个表
一、需求在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限,比如只需要给这个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限。写这篇文章就是说明下这个操作过程。其实这只是SQL Server权限管理很简单的一小块,有些地方并没有深入理解和讲述,只是希望对一些刚入门的童鞋有帮助,其它大侠就当是:我当堂吓一跳,然后得啖笑。(赌圣)二、操作...转载 2019-04-10 17:02:16 · 18872 阅读 · 0 评论 -
Leveldb实现原理
转自:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.htmlLevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,...转载 2019-03-26 11:08:10 · 300 阅读 · 0 评论 -
以MySQL为例,带你理解那些数据库军规
数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向扩展,分库分表都会遇到困难。 对于互联网公司来讲,一般都会使用MySQL数据库。一、数据库的总体架构我们首先来看MySQL数据的总体架构如下:这是一张非常经典的MySQL的系统架构图,通过这个图可以看出MySQL各个部分的功能。当客户端连接...转载 2018-07-18 14:41:43 · 277 阅读 · 0 评论 -
MYSQL开发性能研究——批量插入的优化措施
一、我们遇到了什么问题在标准SQL里面,我们通常会写下如下的SQL insert语句。1INSERT INTO TBL_TEST (id) VALUES(1); 很显然,在MYSQL中,这样的方式也是可行的。但是当我们需要批量插入数据的时候,这样的语句却会出现性能问题。例如说,如果有需要插入100000条数据,转载 2017-03-03 10:28:30 · 437 阅读 · 0 评论 -
根据查询结果插入数据库
1、写法1insert into SYS_ROLE_PERMISSION (ID, ROLE_ID, PERMISSION, ROLECD, ROLENAME)VALUES ( (SELECT MAX(ID)+1 FROM SYS_ROLE_PERMISSION), 212, 'remoteReview:view', null, null) ;2、原创 2016-08-24 11:07:36 · 2809 阅读 · 0 评论 -
powerdesigner16.5逆向工程,从远程oracle11g数据库导出PDM
本文使用工具:1、远程数据库Oracle11g2、powerdesigner16.5第一步:首先打开powerdesigner16.5,点击新建模型输入模型名称并选择数据库Oracle11g第二步:选中当前模型 . 然后在菜单栏database->configure Connections在弹出窗口,点击Add Data Source按钮原创 2016-08-11 13:10:17 · 23834 阅读 · 3 评论 -
sqlite判断表或者字段是否存在
如何判断sqlite中的数据库表或者字段是否存在,方法是通过sqlite_master表。sqlite_master表结构如下:CREATE TABLE sqlite_master ( type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT ); type --类型,如:tablename--原创 2016-08-02 15:16:10 · 14854 阅读 · 0 评论 -
讨论SQLite数据库损坏与修复
昨晚,朋友和我反馈SQLite数据库发生损坏有没有办法恢复。大致的情况是这样的,当数据库在使用时不小心用了新的文件覆盖数据库,导致了SQLite数据库出现了损坏,打开的时候出现要输入密码,而且不能把SQL语句dump下来。所以,文章这里整理SQLite数据库出现损坏的所有情况,以及如何修复损坏的SQLite数据库文件。SQLite算是非常稳定的数据库,不容易出现损坏,就算应用程序崩溃,转载 2016-08-02 15:04:54 · 1376 阅读 · 0 评论 -
sql中update语句的几个特殊处理
语法:[sql] view plain copy update table_name t set t.row_name=replace(t.row_name,'old_value','new_value') 说明:table_name 表名;row_name 被更新的列名;old_value 要被更新的值;new_value 更原创 2016-08-04 10:30:55 · 4204 阅读 · 0 评论 -
Oracle修改已有数据的字段类型
有一个表名为tb,字段段名为name,数据类型number(10,2)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar2(20));2、假设字段有数据,则改为number可以直接执行:alter table tb modify (name number);3、假设字段有数据,则改为原创 2016-07-08 09:29:53 · 12810 阅读 · 1 评论 -
java使用JNDI 获取weblogic配置的数据源 连接数据库
1、引入jars 在C:\Program Files1\bea\weblogic92\server\lib下面(我只选择weblogic.jar IDE给我加一堆)代码中webdev是我配置的数据源[java] view plain copy print?import java.sql.Connection; import java.util.Proper转载 2016-07-04 14:54:56 · 6997 阅读 · 0 评论 -
WebLogic配置JNDI数据源
一、在WebLogic新建针对Oracle数据库的JNDI数据源 进入weblogic管理控制台,此处是远程访问:http://192.168.1.144:7001/console 点击左侧【 域结构】→【base domain】→【服务】→【数据源】然后点击右侧【新建】→【般数据源】,如下图所示: 填写JDBC数据源的【名称】、【jndi名称】,选择数据库类型,如选转载 2016-06-17 09:51:44 · 1085 阅读 · 0 评论 -
简单的PL/SQl链接远程ORACLE数据库方法
首先到oracle安装目录下找到D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN 中是否有tnsnames.ora 文件打开tnsnames.ora 添加你要链接的数据库示例226 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP转载 2016-06-15 15:19:12 · 688 阅读 · 0 评论 -
SQL重复记录查询的几种方法
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断复制代码 代码如下:select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,转载 2017-03-17 16:12:43 · 23866 阅读 · 0 评论 -
关于数据库的水平切分和垂直切分的一些概念(转)
垂直拆分 垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出来的需求。其实,相对于垂直切分更进一步的是服务化改造,说得简单就是要把原来强耦合的系统拆分成多个弱耦合的服务,转载 2017-03-23 08:43:09 · 518 阅读 · 0 评论 -
oracle建表并设置ID为自动增长
CREATE TABLESPACE shoppingDATAFILE 'D:\oracle\mypc\oradata\orcl\shopping.dbf' SIZE 20M AUTOEXTEND ON ;create user shopping --创建 用户 用户名identified by shopping --密码 密码字符default tablespace shopping ...转载 2018-03-09 19:00:56 · 13945 阅读 · 0 评论 -
powerdesigner向MySQL导入数据
之前每次都是直接上来就开始建表,建完之后发现逻辑上一大堆错误的,而且也不能很好地表示表与表之间的联系。虽然之前也用过powerdesigner,但是跟数据库的使用分开了,也就是初学时用过pd,后来就再也没用过。今天由于要做一个比较大的项目,我考虑了很久还是先用了visio和pd来理清数据之间的联系,就在我使用pd的过程中,我猛然想起pd貌似是可以直接向MySQL转化的,然后我百度了一下,最后用了一转载 2017-12-19 09:53:03 · 611 阅读 · 0 评论