数据库
文章平均质量分 64
水的精神
一件事,要么不做,要么做到极致。
展开
-
深入解析什么是LSM-Tree
LSM-Tree 是一种设计思想。在此思想下,可以带来极高的写入速度。但是稍微牺牲了读取的速度。另外要知道,在此设计下,无法对事务有很好的支持。 还要知道,这种方式的写入方式,它是近实时的,在实时性上略有牺牲。 在此设计下,背后要进行merge,要花费很多的资源。 十多年前,谷歌发布了大名鼎鼎的"三驾马车"的论文,分别是GFS(2003年),MapReduce(2004 年),BigTable(2006年),为开源界在大数据领域带来了无数的灵感,其中在 “BigTable” 的论文中很...原创 2021-09-19 22:09:40 · 9086 阅读 · 1 评论 -
clickHouse 与mysql等关系型数据库对比
关于clickHouse数据库,它也是一种关系型数据库。但是区别于传统关系型数据库mysql以及Oracle。其中最大的区别就是传统的关系型数据库是行式存储,而clickHouse是列式存储。请记住这个列式存储方式。这种结构存储方式,具备了一种天然的优势,就是做统计分析,聚类分析。 本身数据库没有绝对的优劣之分。关于clickHouse和mysql的对比,但空间唯独上可以抽象为行(横轴)列(纵轴)。作为数据库的使用者,我们要尽可能的了解它们各自的优势,然后物尽其用,解决我们遇到的场景问题。...原创 2021-09-19 12:58:50 · 21902 阅读 · 0 评论 -
Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/
# # 原因在于:DruidDataSourceAutoConfigure在DynamciDataSourceAutoConfiguration之前,其会注入一个DataSourceWrapper,会在原生的spring.datasource下找url,username,password等。而我们动态数据源的配置路径是变化的。# #解决方案当你的springboot项目使用dr...原创 2020-03-24 18:31:14 · 5762 阅读 · 1 评论 -
计算机的计量单位以及常见的数据类型
为什么会写这篇文章,面试官问数据类型占字节大小干什么。实际开发中,你肯定计算预估过一些数据具体要占多少磁盘,或者是内存。如果你没有不去在意这些东西,很多服务器资源,都会被无形的浪费掉。我们知道计算机的世界其实就是0和1,计算机的最终运算都是0和1来完成的。计算机最小的计量单位是bit,叫做比特,也叫做位。一个字节 = 8比特# #常见的转换我们所...原创 2020-03-05 19:09:11 · 1919 阅读 · 0 评论 -
使用sharding 做分库分表以后,插入报错 Executing an update/delete query
这个问题倘若没有sharding ,那就是在service层缺少了事务注解 @Transaction这个问题具体看这里:https://blog.csdn.net/moshowgame/article/details/80090453我是跑测试类跑出来的问题,好像做分库分表,不能用测试类来测,只能通过controller来测,我没明白为设么,目前只知道用controller来测就...原创 2020-03-04 20:49:24 · 1004 阅读 · 0 评论 -
整理一下 几个 MySQL 1000W 级别的问题
# #首先要关注占用的多大的内存MYSQL - 算一算1000万条数据大概占了多大磁盘空间原创 2020-03-02 09:14:35 · 701 阅读 · 0 评论 -
sharding 的遇到的相关坑
org.springframework.dao.InvalidDataAccessApiUsageException: Can't find index: AggregationSelectItem 这个问题是用sharding ,要对聚合函数起一个别名。看官网给的解释:第二个问题:io.shardingsphere.core.parsing.parser...原创 2020-02-23 10:11:25 · 6174 阅读 · 1 评论 -
sharding 目前支持和不支持的 sql
描述:使用sharding中间件,不支持一些sql具体看官网:https://shardingsphere.apache.org/document/current/cn/features/sharding/use-norms/sql/原创 2020-02-21 15:39:40 · 3908 阅读 · 0 评论 -
sharding jdbc 配置文件详解
想学习shadring配置文件都代表什么,以及怎么写。遗憾没有找到任何一篇文章,能对配置文件进行一个全面的讲解。于是找到了官网,可是官网加载很慢,还是加载出来了,我在这里贴一份,方便自己查看。 下边是官网地址 https://shardingsphere.apache.org/document/current/cn/manual/sharding-jdbc/config...原创 2020-02-20 16:57:36 · 7833 阅读 · 2 评论 -
分库分表中间件 sharding
任何一个技术的出现,都不是为了秀肌肉而产生的。 shardingjdbc 这个分库分表技术要解决的问题就是,随着数据量级的提升,物理硬件达到瓶颈,单表的性能优化也带来了瓶颈。而数据量仍然要突破的难题。 这个问题的解决方案,其实就是一种分治的思想。用一句白话来解释,就是大事化小,举个简答的例子,就是让你查一斤大米确切的有几个,如果让你一个人来查花费时间太多,假如需要花费三个...原创 2020-02-19 10:44:27 · 1504 阅读 · 0 评论 -
分库分表
这篇文章主要介绍分库分表,以及分库分表带来的问题、# #分库分表的几种形式水平分库,本质是把相同的表放在不同的机器上。垂直分库:本质是将多个表拆分到不同的机器上。水平分表,本质是分表数据。垂直分表:本质是将不同的字段分成成多个表。# # 垂直分表(按照字段分,分的内容是字段)带来的好处:# #垂直分库(分的内容是表)...原创 2020-02-18 16:47:48 · 370 阅读 · 0 评论 -
读写分离怎么做,怎么实现
实现方案:# #第一种是在应用层做 方案就是根据我们的不同的sql语句来选择不同的数据源来操作,优点是对性能的损耗比较小,缺点是强依赖程序员。如果是是新开发程序还好。如果是改造原有的系统,就会变的及其糟糕。 可以选择的技术有: 从上边的四个方案中选,我们要选的是红色的。原因是无侵入,原有代码不需要做任何改变。 来看一下工作原理:在dao层之后,数...原创 2019-12-13 00:07:34 · 3462 阅读 · 1 评论 -
MyISAM 和 InnoDB 索引实现
MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图:这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任...原创 2019-12-05 23:20:34 · 199 阅读 · 0 评论 -
B-Tree 和 B+Tree 实现原理,底层设计原理
平衡多路搜索树B树(B-tree) 二叉树,它的搜索时间复杂度为O(log2N),所以它的搜索效率和树的深度有关,如果要提高查询速度,那么就要降低树的深度。要降低树的深度,很自然的方法就是采用多叉树,再结合平衡二叉树的思想,我们可以构建一个平衡多叉树结构,然后就可以在上面构建平衡多路查找算法,提高大数据量下的搜索效率。B树(Balance Tree)又叫做B- 树(其实B-是由B-...原创 2019-12-05 23:16:32 · 1971 阅读 · 0 评论 -
MySql数据库索引原理
MySql数据库索引原理写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为1...原创 2019-12-05 22:06:47 · 195 阅读 · 0 评论 -
mysql 知识点 最完整的 思维导图
下边的文章是我遇到的总结sql知识点,并且做成了思维导图做的非常全的。推荐大家点击看。https://blog.csdn.net/Dream_Weave/article/details/83590808 还有一篇是mysql基础的sql语句的思维导图,也很不错。https://blog.csdn.net/slh2016/article/details/5314880...原创 2019-07-23 10:07:54 · 5454 阅读 · 0 评论 -
ORA-28547:连接服务器失败,可能是Oracle Net管理错误
网上有很多很杂的文章,我找到一个比较可以解决这个问题的方案,分享出来,真的这个Oracle的安装,plsql的安装,虚拟机的链接,数据库的连接这两天真的能把我搞的生不能,求死不能。差点就放弃当程序员了。不过还好的是,我的一直足够坚定,其实昨晚弄到11点半才回去,差点就放弃使用PLSQL直接用命令行来使用Oracle了。不过想想弄了两三天,不弄出来是在有点浪费,我有点执着。今天到现在,已经能够连接到...原创 2018-10-13 09:01:33 · 6207 阅读 · 0 评论 -
监听程序当跟前无法识别连接描述中的请求服务的错误
找到oracle的安装目录,我的是装在虚拟机里边的,其实装在虚拟机里边来访问,就和远程访问数据库是一个道理。可以看上边的一个框的路径,根据这个路径找到listener文件,然后需要先改一下文件的属性,给它能比较大一点的权限。然后参能够编辑修改保存。 进入属性界面,点击上方【安全】 进入安全界面,选择当前登录用户,点击【编辑】 在下方的权限处,勾选【...原创 2018-10-13 09:15:33 · 219 阅读 · 0 评论 -
永久的PLsql注册码
注册码:Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769password:xs374ca原创 2018-10-10 20:33:31 · 3408 阅读 · 0 评论 -
再学·Oracle-数据库-04
PLSQL编程:procedureLanguage过程语言 PLSQL编程是Oracle对sql的一个扩展,让我们可以像在java中写ifelse elseif ,还可以写相应的循环逻辑。 语法: declare --声明变量 变量名变量类型 vsalemp.sal%type;声明和emp表里边的sal字段...原创 2018-10-16 22:13:43 · 162 阅读 · 0 评论 -
再学·Oracle-数据库-03
创建表空间: 语法: createtablespace 表空间的名称 datafile '文件的路径' size大小 autoextendson 自动扩展 next 每次扩展的大小 例子:createt...原创 2018-10-15 22:18:49 · 209 阅读 · 0 评论 -
再学·Oracle-数据库-02
多表查询: 笛卡尔积:实际上就是两张表的乘积 格式:select *from表1,表2 得到的查询结果是两张表数据的乘积,然后拼接起来的表。在实际开发中没有太大的意义。 真正的开发中,这样的才是常用的:select *fromempe1 ,deptd1wheree1.deptno=d1.deptno;这就是常用到的表拼接。 内连接:...原创 2018-10-14 19:02:15 · 189 阅读 · 0 评论 -
再学 · oracle-数据库的体系结构
大概安装数据库这个过程就是让一部分人放弃掉Oracle数据库的学习吧,幸运的是经过三天的鼓捣,终于PLSQL能用了。其实在这之前已经学过一遍Oracle了,当时是我的专业课,考的分数也不低,但是现在已经忘的差不多了。考虑到要做的ERP系统要用到Oracle,所以干脆再学一遍好了,这次一定把笔记做好。关于Oracle的体系结构:通常情况下,数据库实例只会有一个就是orcl。新...原创 2018-10-13 21:26:33 · 248 阅读 · 0 评论 -
mysql和Oracle的区别
转发学习一、并发性并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。...转载 2019-06-13 21:46:16 · 21683 阅读 · 3 评论 -
Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
今天mysql遇到了一点问题。首先我说一下,mysql安装的话默认编码方式是拉丁文。不是UTF-8. 这个错误原因就是因为编码格式不一致造成的。简单粗暴一点,重新建一个库,一定要选择UTF-8的编码格式。再用就可以了。当然了,肯定库也不是说删就删的,接下来一个不重新建库的选择alter table score change score score var...原创 2019-07-23 22:49:09 · 515 阅读 · 0 评论 -
CLIENT_PLUGIN_AUTH is required
下午帮别人调了一个连接数据库的问题,报错信息就是:CLIENT_PLUGIN_AUTH is required 折腾了挺长时间,问题还是数据库版本和连接数据库的驱动包不匹配。 所以少走弯路把: 解决方案:select version(); 在mysql里边执行一下,查出来数据库的版本, 再去查询对应数据库的版本连接的jar包的版本 然后去这里...原创 2019-07-29 16:47:56 · 22301 阅读 · 5 评论 -
常用sql语句,以及知识点提纲
转发自:https://zhuanlan.zhihu.com/p/43036664数据库1. 查看现有数据库SHOW DATABASES;2. 新建数据库CREATE DATABASE <数据库名>;3. 选择数据库USE <数据库名>;4. 从.sql文件引入SQL语句SOURCE <.sql文件路...转载 2019-07-25 09:26:24 · 301 阅读 · 0 评论 -
事务的四大特性,以及实现原理
看到一篇比较好的关于事务的文章。可能说到事务,我们想到的只是 :原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 那底层实现原理呢? 以mysql为例,是如何实现事务的四大特性的呢?本文转发原文地址:https://zhuanlan.zhihu.com/p/65438009案例我们以...转载 2019-07-22 09:36:13 · 6222 阅读 · 1 评论 -
oracle的安装之路
需求:在虚拟机上安装oracle,在真机上安装plsql,来连接虚拟机里边的数据库。虚拟机不好找,破解版的更不好找。然后虚拟机还需要系统。破解版虚拟机64位:链接:https://pan.baidu.com/s/1e69YVEyjhYBijZ1G1aktDg 提取码:htg4win7系统64位:链接:https://pan.baidu.com/s/14bRuRji2Sdf3R5I5ix...原创 2018-10-12 17:05:39 · 171 阅读 · 0 评论