数据库技术

提供数据库技术学习,主要包括比较流行的MySQL、Oracle等关系型数据库,以及redis等非关系型数据库相关知识,让数据库学习更简单。

最新文章

Oracle和达梦等国内外主流数据库适用场景对比

Oracle和达梦等国内外主流数据库适用场景对比 24小时内最新

最近一直在做国外主流数据库(比如oracle、PostgreSQL)和国产主流数据库(如达梦DM、南大通用GBase)的对比,包括授权方式、适用系统和使用场景等方面。具体整理如下几个方面,可以供大家参考,希望对你选择数据库有所帮助。 一、数据库类型 数据库 类型 国别 是否开源 Oracle 关系型数据库 美国 否 mysql 关系型数据库 美国……

潘老师 3天前 17 ℃ (0) (0)

达梦数据库与oracle对比,性能上可否替代oracle?

达梦数据库与oracle对比,性能上可否替代oracle?

最近公司也打算采用国产数据库,一方面是数据涉及到保密因素,另一部分也由于oracle的费用实在是太贵了,因此调研了一下国产的达梦数据库,与oracle进行了对比,重点考虑性能上可否替代oracle数据库,经过潘老师结合网上的一些资料,整理如下信息,也可供大家进行参考。 一、国产数据库排行榜(2021年) 下图是一张取自于2021年的国产数据库排行榜图,排名比……

潘老师 1周前 (05-06) 38 ℃ (0) (0)

国产数据库排行榜及发展现状分析

国产数据库排行榜及发展现状分析

近些年,随着国产数据库的不断发展与崛起,现在国产数据库比较牛逼的都有哪些呢?我们来一起看看国产数据库排行榜,顺便分析下这些年来的发展现状。 一、国产数据库排行榜 说道国产数据库处于龙头地位,具有领先技术,也比较知名的可能就属“国产数据库四小龙”了,他们分别是:武汉达梦、人大金仓、神州通用和南大通用。当然他们排名并不是最靠前的,近几年一直初一领头羊的还数TiD……

潘老师 1周前 (05-06) 86 ℃ (0) (1)

MySQL批量update更新出现锁表

MySQL批量update更新出现锁表

mysql数据库在批量更新时偶尔会出现锁表的情况,有兴趣的可以先看下update更新时可能出现锁表的原因 问题描述 最近开发遇到一次锁表的情况,发现更新的语句where检索的字段,没有建索引,且是批量操作的,就出现了锁表的情况了。所以有两个问题: 案例模拟 首先来看第一个问题: 建索引和不建索引,对锁表的影响 我们对带索引 和不带索引 两种情况分别演示模拟,……

潘老师 2个月前 (03-16) 366 ℃ (0) (0)

mysql出现锁表的可能原因分析及解决方案

mysql出现锁表的可能原因分析及解决方案

在mysql数据库操作时,经常会碰到mysql锁表问题,如果处理不好,可能会导致数据库性能下降,严重的会出现死锁,那对程序而言是非常致命的。因此,我们要对mysql数据的锁表要有一定的了解,合理的设计表和合理的代码实现,对有业务的顺利实现更有帮助。 一、前置知识 mysql支持InnoDB和Myisam引擎,InnoDB支持事务,Myisam不支持事务;In……

潘老师 2个月前 (03-16) 240 ℃ (0) (0)

多线程更新/插入同一表出现数据库死锁(Dead Lock)问题解决

多线程更新/插入同一表出现数据库死锁(Dead Lock)问题解决

今天在使用多线程在同一个事务中往MySQL数据库的同一张表中批量插入(insert)和更新(update)数据,然后就出现了死锁报错,即提示出现Dead Lock,类似提示如下: 问题分析 产生数据库表死锁的原因比较多,建议看下MySQL数据库死锁的产生原因分析以及解决办法,我这里可能存在原因可能是这里提到的行级锁升级为表级锁的原因,但也不确定,也可能是在一……

潘老师 2个月前 (03-15) 332 ℃ (0) (0)

MySQL数据库死锁的产生原因分析以及解决办法

MySQL数据库死锁的产生原因分析以及解决办法

在多线程操作数据库同一种张表时代码控制不好就会产生数据库死锁问题,一般遇到死锁我们应该如何查找原因,可能是哪些原因导致的死锁,又该如何去解决呢? 数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现……

潘老师 2个月前 (03-15) 69 ℃ (0) (0)

如何使用好MySQL数据库的JSON类型

如何使用好MySQL数据库的JSON类型

大家都知道,数据库分为关系型数据库和非关系型数据库,各有各的优缺点,也都有自己的应用场景。但MySQL数据库支持JSON类型数据,或将打通两者的界限,那么,你知道如何用好MySQL数据库的JSON类型吗? 关系型的结构化存储存在一定的弊端,因为它需要预先定义好所有的列以及列对应的类型。但是业务在发展过程中,或许需要扩展单个列的描述功能,这时,如果能用好 JS……

潘老师 2个月前 (03-14) 80 ℃ (0) (0)

查询条件where 1=1 有意义吗?走不走索引?

查询条件where 1=1 有意义吗?走不走索引?

前言 SQL查询条件语句where 1=1是一个恒成立的语句,在数据库条件查询时,尤其在使用mybatis写SQL时,我们经常会用到,有个新来的同事问我where 1=1 是什么意思,完全没有意义啊,我笑了。今天来说明下:查询条件where 1=1 有意义吗?走不走索引? 案例 我们先来看一段代码: <select id="queryBo……

潘老师 2个月前 (03-10) 52 ℃ (0) (0)

数据库查询某条记录是否存在别再用count(*)了

数据库查询某条记录是否存在别再用count(*)了

相信很多同学在查询数据库是某条记录是否存在时,经常会使用count(*)去查询,如果结果大于等于1就存在,小于1就不存在,虽然可以,但是以后遇到这种需求,千万别这么用了,可以采取一种更高性能的实现方式。 前言 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*)呢? 无论是刚入道的程序员新……

潘老师 2个月前 (03-04) 57 ℃ (0) (0)

MySQL字段类型int(1) 和 int(10) 有什么区别?零填充?

MySQL字段类型int(1) 和 int(10) 有什么区别?零填充?

很多同学在创建mysql表时,针对int类型字段的长度设定会纠结,认为一般最好用int(10)可以保障当数值很大时也能满足需求,而int(1)却不能满足必要的取值范围,真的是这样吗?int类型的长度真的会决定该字段的取值范围吗?这是很多同学的一个潜意识带来的误区,甚至很多资深开发人员也没搞明白它们的区别到底是什么。 起因 最近遇到个问题,有个表的要加个use……

潘老师 2个月前 (03-04) 37 ℃ (0) (0)