Redis高频问答
1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
2、Redis相比memcached有哪些优势?(1) me ...
MongoDB高频问答
1、MongoDB是什么?MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
2、MongoDB有哪些特点?(1)MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易;(2)可以在MongoDB记录中设置任何属性的索引;(3)可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性:(4)如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片;(5)支持丰富的查询表达式,查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、MySQL与MongoDB之间最基本的差别是什么?MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示查询 ...
SQLServer高频问答
一、数据库基础知识篇(SQLServer/MySQL通用)1.说说主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属 性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键:是最小超键,即没有冗余元素的超键。 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个 主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。
2.为什么用自增列作为主键?如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、 如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、 如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着 行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。 数据记录本身被存于主索引(一颗B+Tree)的叶子节点上。这就要求同一个叶子节点内(大小为一个内 存页 ...
MySql高频问答
一、数据库知识通用篇1.说说主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。外键:在一个表中存在的另一个表的主键称此表的外键。
2.为什么用自增列作为主键?如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。数据记录本身被存于主索引(一颗B+Tree)的叶子节点上。这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时 ...
Windows错误代码对应解决方案
错误代码0x80131500打开“运行”输入 inetcpl.cpl (“WINDOWS”+“R”键,输入 inetcpl.cpl亦可)点开高级往下拉,勾上”使用TLS 1.2”选项,或者点还原高级设置。
让开发效率“飞起”的VS Code插件
前言VSCode,是一个免费的、开源的跨平台编辑器,也是我最满意的编辑器之一。本文向大家推荐一些我喜欢的vscode插件,不出意外的话,这些插件将对你的工作效率提升有不小的帮助!
GitLensVS Code中的 Git 体验在易用性和完整性之间取得了一个不错的平衡,大部分用户都能够使用它完成工作,同时又不会被太多的功能吓到。但是很多硬核的 Git 用户肯定会觉得功能还不够用。包括但不限于:不能查看某个 commit 中的代码改动;不能比较两个 commit 或者 branch,然后阅览代码改动;不能查看代码历史记录。不过 GitLens 这个插件的出现,就弥补上了上述不足。类似的 Extension:
Git History – 用来查看 git log 或则一个文件的 git 历史,比较不同的分支,commitsGit Blame - 它允许您在当前选定行的状态栏中看到 Git Blame 信息。GitLens 也提供了类似的功能。Git Project Manager –可以一键搜索并打开某个的基于 Git 管理的项目
Quokka.jsQuokka.js 是一个用于 Java ...
常用SQL备忘
保留两位小数sql server:
1select **Convert**(decimal(18,2),2.176544)
结果:2.18
1select **CAST**(2.176544 as decimal(18,2))
结果:2.18
1select **Round**(2.176544,2)
结果:2.180000
oracle:select trunc(1.23856789,2)round(m,n) 四舍五入trunc(m,n) 不四舍五入,直接丢弃。
查询重复数据123select * from 表名 a where exists (select 1 from 表名 where 字段1=a.字段1 and 字段2=a.字段2 group by 字段1,字段2 having count(1)>1)
递归查询数据12345678910with cte as( select Id,Pid,Name from 表名 where Id = 1 union all select t.Id,t.Pid,t.Name from cte c i ...