三分钟入门 InnoDB 存储引擎中的表锁和行锁
各位对 ”锁“ 这个概念应该都不是很陌生吧,Java 语言中就提供了两种锁:内置的 synchronized 锁和 Lock 接口,使用锁的目的就是管理对共享资源的并发访问,保证数据的完整性和一致性,数据库中的锁也不例外。
“锁" 是数据库系统区别于文件系统的一个关键特性,其对象是事务,用来锁定的是数据库中的对象,如表、 ...
InfluxDB,TimescaleDB和QuestDB三种时序数据库的比较
【51CTO.com快译】在过去的十年间,我们亲历了关系型、非关系型、在线分析处理(OLAP)型、以及在线事务处理(OLTP)型数据库的市场之争,也注意到了诸如:Snowflake、MongoDB、Cockroach Labs、以及Neo4j等新型数据库的产生和发展。而根据DB-Engines的一项针对数据库管理系统调查的统计(如下图所示),时序型数据库(time s ...
为什么你的数据库需要单元测试
与工作端代码一起创建的数据集定期包含业务基本原理的战略部分。SQL是代码。你应该尽早批准它,而且要彻底批准。
测试金字塔是有助于描述编程测试特征的一种显著表示形式。当您逐步实现更值得注意的段协调时,您将继续从许多确定的、快速的和非接触的测试,转向总体上批准框架的越来越慢的全球测试。这在基本层面上是个 ...
从零实现一个时序数据库
时序数据库(TSDB: Time Series Database)大多数时候都是为了满足监控场景的需求,这里先介绍两个概念:
数据点(Point): 时序数据的数据点是一个包含 (Timestamp:int64, Value:float64) 的二元组。
时间线(Series): 不同标签(Label)的组合称为不同的时间线,如
series1: {"__name__": "netspeed", "hos ...
书写高质量SQL的建议
1、避免混乱的逻辑
反例:(统计用户数量)
List<User> users = userMapper.selectAll();
return users.size();
正例:
int count = userMapper.countUser("select count(*) from user");
return count;
2、select one 如果已知结果只有一条, 使用limit 1
反例:(查找 ...
可维护、可阅读的SQL代码的十个优秀实践
没有正确的指导,它很容易混淆SQL。由于团队中的每个人都可能有自己的写作SQL习惯,因此您可以快速结束一个没有人理解的令人困惑的代码。
您可能意识到遵循一套良好实践的重要性..这篇文章为您提供了您正在寻找的指导!
1. 使用大写的关键字
让我们从一个基本开始:使用大写的SQL关键字,以及小写的表和列。使用S ...
数据分析师的SQL功底该学到什么程度?
常有朋友问,数据分析师的SQL功底该学到什么程度。今天就先谈谈 T-SQL 中的 Window Function.
Window Function 包含了 4 个大类。分别是:
1 - Rank Function
2 - Aggregate Function
3 - Offset Function
4 - Distribution Function.
1 - Rank Function 平常用到最多
1.1 Rank() Over()
...
如何使用 SQL 对数据进行分析
前言
我们通过 OLTP(联机事务处理)系统实时处理用户数据,还需要在 OLAP(联机分析处理)系统中对它们进行分析,今天我们来看下如何使用 SQL 分析数据。
使用 SQL 进行数据分析的几种方式
在 DBMS(数据库管理系统) 中,有些数据库很好地集成了 BI 工具,可以方便我们对收集的数据进行商业分析。 比如在SQL Server ...
聊聊Innodb是如何存数据的?
目录
1.磁盘or内存?
1.1 磁盘
1.2 内存
2.数据
3.用户记录
3.1 额外信息
3.1.1 变长字段列表
3.1.2 null值列表
3.1.3 记录头信息
3.2 隐藏列
3.3 真正数据列
3.4 用户记录是如何相连的?
4.最大和最小记录
5.页目录
6.文件头部和尾部
6.1 文件头部
6.2 文件尾部
7.页头部
总结
前言
如果你使用过my ...
云数据库选型必读:如何梳理需求?
目录
你需要集群数据库吗?
你需要分布式数据库吗?
你的数据库预算是多少?
附:CAP 定理
你需要集群数据库吗?
集群数据库与单节点数据库相比有多个优点,但费用和复杂性更高。除此之外,集群数据库还有更高的可用性、更高的吞吐量,在一些情况下还有更低的延迟。
对于每个节点都有整个数据库副本的集群而言,你 ...
云数据库选型也绕不开“CAP定理”?
与80年代初期相比,今天的数据库技术,可以说是取得了长足猛进的发展。不仅在硬件的选择上,不再视大型机为唯一,还可以根据具体的业务需求,选择更贴近业务场景需求的数据库产品。
如今,软、硬件技术在不断进步,使得数据库的种类发生了翻天覆地的变化。除了过去常用的关系型数据库,我们还可以选择时序数据库、 ...
Innodb RR隔离级别下到底能否避免幻读
目录
背景
怎么定义幻读?
RR级别如何解决幻读?
最后
背景
这个事情要回溯到曾经背八股文的时候了,想必大家在背八股文的时候对于事务隔离级别都已经背得滚瓜烂熟了,一般在说隔离级别的时候,都顺带会提到mysql的innodb的RR隔离级别,由于他与众不同的实现方式,通常会有下面的一些描述:
在我的脑海里面一直 ...
什么是NoSQL的江湖称霸之路[图解]
目录
1迷茫的小黑
2大器晚成NoSQL
3给NoSQL一首歌的时间
4MySQL vs NoSQL
5NoSQL明星项目
5.1 谷歌出品LevelDB
5.2 脸书出品RocksDB
5.3 ideawu的SSDB
5.4 360出品Pika
5.5 其他NoSQL
6本文小结
1迷茫的小黑
小黑最近有点郁闷。
手头的工作不是特别喜欢,技术退步有点严重,于是想出去看看机会。
小 ...
SQL中代替Like语句的另一种写法
比如查找用户名包含有"c"的所有用户, 可以用
use mydatabase
select * from table1 where username like'%c%"
下面是完成上面功能的另一种写法:
use mydatabase
select * from table1 where charindex('c',username)>0
这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, ...
使用SQL Mail收发和自动处理邮件中的扩展存储过程简介
使用SQL Mail收发和自动处理邮件中的扩展存储过程简介
SQL SERVER提供了通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程,下面将这几个过程简单的介绍一下。
一、启动SQL Mail
xp_startmail @user,@password
@user和@password都是可选的
也可打开Enterprise Manager中的Support Services,在SQL Mail上单击右键打 ...
关于ADOX的相关知识
一、ADOX 概述
Microsoft? ActiveX? Data Objects Extensions for Data Definition Language and Security (ADOX) 是对 ADO 对象和编程模型的扩展。ADOX 包括用于模式创建和修改的对象,以及安全性。由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中 ...
ACCESS转SQLSERVER数据库的注意事项
比如下面这些...
1,对于日期字段字段
access表示为:#1981-28-12#
SQLSERVER2000表示为:'1981-02-12'
2,SQL语句区别,select ,update 在对单表操作时都差不多,
但多表操作时update语句的区别ACCESS与SQLSERVER中的Update语句对比:
SQLSERVER中更新多表的Update语句:
Update Tab1
SET a.Name = b. ...
iwms access与sql版的安装与转换
iwms4.5版后第一次运行时自动sql建表。下边为转换access版数据到sql数据库方法。
注意:从access转换为sql要求两个版本的版本号相同
如果你的数据库账号不是系统账号请用记事本打开dvnews.sql替换里边的[dbo]为[你的sql账号]
最后需要修改Web.config中的sql数据库 ...
数据库设计技巧[转]
1. 原始单据与实体之间的关系
可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设 ...
Access数据库升级为SQL数据库的注意事项和方法
很多Access和SQL Server开发人员都经常面临着将一个Access数据库升级到SQL Server数据库的问题。由于存在现有的Access升级向导,这一转变的过程就会变得相当简单,尤其是当你建立一个与SQL Server数据相联系的ADP的时候。然而,向导并不是十全十美的,需要解决的问题还是大有存在。
首先,有些对象并不是简单的升级,所 ...