●数据库
文章平均质量分 69
Mr小林
软件工程师的成才之路。
展开
-
Sharding-Jdbc 实现读写分离 + 分库分表,写得太好了
| 概览ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,可理解为增强版的Jdbc驱动,完全兼容Jdbc和各种ORM框架。| MySQL主从复制1)docker配置mysql主从复制1)创建主服务器所需目录mkdir-p/usr/local/mysqlData/master/cnfmkdir-p/usr/local/mysqlData/master/data2)定义主...转载 2021-11-04 10:33:03 · 538 阅读 · 0 评论 -
聊聊Mysql索引和redis跳表 ---redis的有序集合zset数据结构底层采用了跳表原理 时间复杂度O(logn)(阿里)
redis使用跳表不用B+数的原因是:redis是内存数据库,而B+树纯粹是为了mysql这种IO数据库准备的。B+树的每个节点的数量都是一个mysql分区页的大小(阿里面试)还有个几个姊妹篇:介绍mysql的B+索引原理 参考:一步步分析为什么B+树适合作为索引的结构 以及索引原理 (阿里面试)参考:kafka如何实现高并发存储-如何找到一条需要消费的数据(阿里)参考:二分查找法:各...转载 2020-03-08 21:29:45 · 643 阅读 · 0 评论 -
mysql不同版本的默认最大连接数和上限
上午刚工作10分左右,同事说在使用jira时出现问题,具体截图如下:通过上图的报错信息:定位为mysql数据库连接数的问题解决方法:1.登录mysql进行查看Mysql –uroot –p123456mysql> show variables like'%max_connections%';+-----------------+-------+| Variable_name | Value |+-----------------+-------+| max_connect转载 2021-03-26 10:00:00 · 333 阅读 · 0 评论 -
Redis 6.0 新特性-多线程连环 13 问!
Redis 6.0 来了在全国一片祥和IT民工欢度五一节假日的时候,Redis 6.0不声不响地于5 月 2 日正式发布了,吓得我赶紧从床上爬起来,学无止境!学无止境!对于6.0版本,Redis之父Antirez在RC1版本发布时(2019-12-19)在他的博客上连续用了几个“EST”词语来评价:the most “enterprise” Redis version to date // 最”企业级”的the largest release of Redis ever as far as I转载 2020-06-02 09:29:50 · 526 阅读 · 0 评论 -
Redis-- key最大是多少 ,单个实例最多支持多少个key
Redis:一个key或是value大小最大是512Mredis单个实例最多能存多少个key键,每个值能存储多少个元素?解决方法:What is the maximum number of keys a single Redis instance can hold? and what is the max number of elements in a Hash, ...原创 2020-05-06 16:47:32 · 21281 阅读 · 3 评论 -
详细分析MySQL事务日志(redo log和undo log)
undefinedinnodb事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。undo log不是redo log的逆向过程,其实它们都算是用来恢复的日志:1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到...转载 2020-04-22 16:25:36 · 588 阅读 · 0 评论 -
sharding-jdbc结合mybatis实现分库分表功能
sharding-jdbc 实现分库分表 ,两种方式--> 一种是客户端方面集成,另一种是代理层(代理层官网上有,Navicat可以直接连接,连接方式相当于连接数据库)最近忙于项目已经好久几天没写博客了,前2篇文章我给大家介绍了搭建基础springMvc+mybatis的maven工程,这个简单框架已经可以对付一般的小型项目。但是我们实际项目中会碰到很多复杂的场景,比如数据量很大...转载 2020-04-12 17:09:10 · 1536 阅读 · 0 评论 -
Mysql 主从复制
最常见的集群方案MySQL Replication主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。复制是异步的 从站不需要永久连接以接收来自主站的更新。根据配置,您可以复制数据库中的所有数据库,所选数据库甚至选定的表。MySQL中复制的优点包括:横向扩展解决方案 - 在多个从站之间...转载 2020-04-10 17:37:31 · 455 阅读 · 0 评论 -
mysql实现主从复制/主从同步
业务场景小公司业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响。这个时候 就需要做高可用 两个ngix+两个tomcat+两个mysql实现高可用,避免单点问题。中间使用keepalived监听。下面先从简单的mysql主从搞起。下面按照老方式,what->why->how ,是什么,为什么,怎么做来讲解一波。(what)什么是mysql 的主从复...转载 2020-04-03 11:57:48 · 161 阅读 · 0 评论 -
Redis的集合、压缩列表
前言专题4中介绍了有序集合的底层实现---跳跃表,这一个专题中,学习下集合键的底层实现之一整数集合:当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。比如如下命令redis> sadd num 1,2,3,4,6(integer)5 1. 整数集合的实现整数集合是Redis用来保存整数值的集合抽象数据结构,它...转载 2020-03-31 23:47:16 · 331 阅读 · 0 评论 -
面试:原来Redis常用的五种数据类型底层结构是这样的
关注我,可以获取最新知识、经典面试题以及微服务技术分享 在Redis中会涉及很多数据结构,比如SDS,双向链表、字典、压缩列表、整数集合等等。Redis会基于这些数据结构自定义一个对象系统,而且自定义的对象系统有很多好处。通过对以下的Redis对象系统的学习,可以了解Redis设计原理以及初衷,为了我们在使用Redis的时候,更加能够理解到其原理和定位问题。Redis 对象Red...转载 2020-03-31 23:36:13 · 181 阅读 · 0 评论 -
MySQL MVCC(多版本控制)
1. MySQL 中的事务MySQL 提供了两种事务型的存储引擎:InnoDB 和 NDB Cluster 。另外还有一些第三方存储引擎也支持事务1. MySQL 中的事务 1.1. 自动提交(AUTOCOMMIT) 1.2. 在事务中混用存储引擎 2. 多版本并发控制(MVCC) 2.1. InnoDB 的MVCC 3. MySQL 中的事务 3.1. 自动提交(A...转载 2020-03-31 22:00:05 · 174 阅读 · 0 评论 -
为什么选择Cassandra
cassandra概况为什么选择Cassandra?cassandra到底有那些令人印象深刻的特点呢?不防我们先来看下cassandra目前的大体概况。理论扎实,师出名门cassandra不仅吸收了dynamo论文中的如何做分布式,如何做副本复制,故障容错等方面成功的经验,又吸取了google bigtable中的LSM单机引擎层面精华。理论扎实,工程实现靠谱,所以面世以来,不断受到...转载 2020-03-25 17:59:37 · 439 阅读 · 0 评论 -
Mysql数据库常用的事务隔离级别都有哪些?都是什么原理?
什么是事务隔离?任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也就是我们常说的事务ACID,这样才能保证事务((Transaction)中数据的正确性。而事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务...转载 2020-03-25 09:17:46 · 372 阅读 · 0 评论 -
B-树,B+树,B*树详解
B-树B-树是一种多路搜索树(并不一定是二叉的)1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树(或B-树、B_树)。一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列性质的树:1、根结点至少有两个子女;2、每个非根节点所包含的关键字个数 j 满足:┌m...转载 2020-03-12 09:39:13 · 359 阅读 · 0 评论 -
Mysql索引BTree、B+Tree详细分解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大...转载 2020-03-11 15:08:15 · 545 阅读 · 0 评论 -
Mysql数据库常用的事务隔离级别都有哪些?都是什么原理?
什么是事务隔离?任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也就是我们常说的事务ACID,这样才能保证事务((Transaction)中数据的正确性。而事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务...转载 2020-03-10 16:02:57 · 151 阅读 · 0 评论 -
Hbase的读写流程
1. HBase读写流程上图是RegionServer数据存储关系图。上文提到,HBase使用MemStore和StoreFile存储对表的更新。数据在更新时首先写入HLog和MemStore。MemStore中的数据是排序的,当MemStore累计到一定阈值时,就会创建一个新的MemStore,并且将老的MemStore添加到Flush队列,由单独的线程Flush到磁盘上,成为一个Stor...转载 2020-03-02 10:43:26 · 192 阅读 · 0 评论 -
Mysql 有数据更新 无数据插入 ON DUPLICATE KEY UPDATE
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:INSERT INTO TABLE (a,c) V...原创 2020-01-10 14:36:16 · 453 阅读 · 0 评论 -
Redis相关问题
有请下一位应聘者。面试官:你好!废话我就不给你多说了,我们要招的这个岗位要求精通Redis,你要是不行,就直接拎包走人,别浪费彼此时间。应聘者:明人不说暗话,我最近3个月朝夕苦背Redis面试题及答案 ,实操可能不行,但面试问答,无人能及!面试官:苦背答案有用?在下面试向来是理论结合应用场景,答得出来实战,你才NB!放个大招!“目前公司有10万员工,分成500个部门,公司为员工制定...转载 2019-12-16 10:37:58 · 129 阅读 · 0 评论 -
拼多多面试:如何用 Redis 统计独立用户访问量?
众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。废话不多说,今天我们来聊一聊拼多多的一道后台面试真题,是一道简单的架构类的题目:拼多多有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢?使用...转载 2019-11-07 10:13:34 · 130 阅读 · 0 评论 -
Microsoft SQL Server,错误: 51
Microsoft SQL Server Management Studio 附加数据库 对于 服务器 (Microsoft SQL Server,错误: 51标题: Microsoft SQL Server Management Studio------------------------------附加数据库 对于 服务器“LENOVO-PC”失败。 (Microsoft原创 2015-05-16 10:26:35 · 1163 阅读 · 9 评论 -
【数据库】数据库视频总结
数据库视频到今天为止总算看完了,它给我的感受就是枯燥,但内容丰富。 耿建玲视频讲解非常详细,从SQL Sever的安装到里面的具体功能讲解都非常到位。通过视频的学习,我对数据库的理解就是将数据库分为三部分:一、数据库安全 。二、数据库对象。三、数据库功能操作。下面就是我对数据库画的一张导图: 下面介绍一下SQL和T-SQL的区别:原创 2015-05-24 10:31:04 · 956 阅读 · 7 评论 -
【数据库】MySQL基本语句的使用
一、DDL:数据定义语言作用:用于描述数据库中要存储的现实世界实体的语言。即创建数据库和表的结构。常用关键字:CREATE ALTER DROP TRUNCATE-----------------------------库操作-----------------------------显示所有的数据库SHOW DATABASES;创建一个名称为mydb1的数据库。CR原创 2016-04-08 16:07:27 · 828 阅读 · 1 评论 -
【Java】Java中的JDBC
【什么叫JDBC?】JDBC为Java开发者使用数据库提供了统一编程接口,它由一组Java类和接口组成。是Java程序与数据库系统通信的标准API。JDBC API使得开发人员可以使用纯java的方式来连接数据库,并执行操作。【JDBC的操作】在进行JDBC 操作的时候可以按照以下的步骤完成:1、加载数据库驱动程序,加载的时候需要将驱动程序配置到class原创 2016-03-22 19:15:10 · 551 阅读 · 4 评论 -
【数据库】MySQL的卸载
【前言】MySQL的卸载是个很头疼的问题,我们常常会因为卸载不干净导致重新安装无法进行。MySQL的卸载无形中浪费了我们很多宝贵的时间,下面是我卸载的全过程、感觉还是挺实用的。第一步:打开控制面板、找到MySQL,将其卸载。第二步:删除安装目录下的的my.ini文件及所有文件。第三步:Windows +R 运行“regedit”文件,打开注册表编辑器。1、原创 2016-05-28 22:48:20 · 1722 阅读 · 6 评论 -
【MySQL】Linux中连接MySql数据库并改变MySql的编码集
【第一步】连接Linux中的MySql数据库。一般mysql默认都是GBK编码,这时候我们需要把GBK改为UTF8编码格式。用Linux可视化连接工具或者直接在Linux命令窗口,输入命令开启mysql。 mysql - u 用户名 -p输入命令:show variables like '%character%'; 查看mysql编码集【第二步】原创 2016-10-28 22:00:34 · 385 阅读 · 4 评论 -
四种高效数据库设计思想——提高查询效率
【开篇】设计数据库表结构时,我们首先要按照数据库的三大范式进行建立数据库。 1. 1NF每列不可拆分 2. 2NF确保每个表只做一件事情 3. 3NF满足2NF,消除表中的依赖传递。 三大范式的出现是在上世纪70年代,由于内存资源比较昂贵,所以严格按照三大范式进行数据库设计。而如今内存变得越来越廉价,在考虑效率和内存的基础上我们可以做出最优选择以达到最高效率。建立数据库原创 2016-12-11 16:54:13 · 10094 阅读 · 1 评论 -
Oracle中的视图和同义词
视图视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束)1、视图存储视图不是真正的表,它原创 2016-11-26 16:04:18 · 2989 阅读 · 1 评论 -
Oracle中的索引
本文摘自网络一.索引介绍 1.1 索引的创建语法: CREATE UNIUQE | BITMAP INDEX . ON . ( | ASC | DESC, | ASC | DESC,...) TABLESPACE STORAGE LOGGING | NOLOGGING原创 2016-11-26 19:56:53 · 371 阅读 · 1 评论 -
java程序连接数据库并批量执行.sql文件
在做软件安装程序的时候;数据库信息都是我们自己配的,配完之后连接数据库-->执行我们准备好的指定的sql文件建表建库。我们这里主要用到的方法是:mybatis ScriptRunnerimport org.apache.commons.configuration.Configuration;import org.apache.commons.configuration.Properti原创 2017-04-12 17:57:16 · 3998 阅读 · 1 评论 -
MongoDB和Redis的区别
简介MongoDB更类似MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。内存管理机制Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。MongoDB数据存在内存,由Linux系统mmap转载 2017-02-27 15:42:44 · 370 阅读 · 1 评论 -
Java read bson file
【前言】我是做安装程序的时候需要用到配置Mongo数据库,并批量执行Mongo的脚本文件也就是bson文件,将数据插入到mongo库中。所以第一步就是读取bson文件。path获得的是:path = this.getClass().getClassLoader().getResource("").getPath();获得的是classes的路径。/**原创 2017-04-17 16:57:36 · 1828 阅读 · 3 评论 -
启动mongod报错child process failed, exited with error number 100
当用命令/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongod.log --fork启动mongodb时,报如下错误:child process failed, exited with error number 100这是因为非正常关闭原创 2017-04-27 13:43:52 · 2705 阅读 · 3 评论 -
悲观锁和乐观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上...原创 2018-04-14 13:37:22 · 166 阅读 · 0 评论 -
教你如何定位及优化SQL语句的性能问题
在现如今的软件开发中,关系型数据库是做数据存储最重要的工具。无论是Oracale还是Mysql,都是需要通过SQL语句来和数据库进行交互的,这种交互我们通常称之为CRUD。在CRUD操作中,最最常用的也就是Read操作了。而对于不同的表结构,采用不同的SQL语句,性能上可能千差万别。本文,就基于MySql数据库,来介绍一下如何定位SQL语句的性能问题。 对于低性能的SQL语句的定位,最重要...转载 2018-12-09 16:53:04 · 245 阅读 · 0 评论 -
8中sql的错误用法
文章转自https://mp.weixin.qq.com/s/LKrYfAQKBojezHewdNh4rw1、LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM ...转载 2019-05-31 10:52:52 · 167 阅读 · 0 评论 -
Mysql设置慢查询日志
关于MySQL你知道这些吗?MySQL是典型的三层架构模式,在平常使用中对MySQL问题排查和优化,也应该针对具体问题,从对应的层解决问题 服务层:经典的C/S架构,主要是处理连接和安全验证。 核心层:处理MySQL核心业务。 查询分析,优化,缓存和内置函数 。 内建的视图,存储过程,触发器。 存储引擎层:存储引擎负责数据的存储和提取。核心层通...转载 2019-09-10 10:18:39 · 264 阅读 · 0 评论 -
【数据库】Truncate的用法
删除整个数据库表中的数据 truncate table 表名Truncate 命令用法 语法TRUNCATE TABLE name参数name是要截断的表的名称或要删除其全部行的表的名称。注释TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABL原创 2015-07-24 20:45:52 · 2581 阅读 · 7 评论