最近在工作中遇到了部分文档存储的场景,于是了解了目前比较通用的文档存储的NoSQL解决方案,因此从通用性上对mongodb进行学习,并记录学习中查阅的资料,以及遇到的问题,用于后来参考。 本地环境与mongo版本 由于我的电脑是一个笔记本电脑,并且年代已经久远了,尝试了一番5.0版本后,遇到了很多问题,因此目前主要版本如下: 系统为ubuntu v18.04版本 mongodb选择为v4.2.15版本 安装步骤 安装步骤主要来自于mongodb官方文档, 目前主要采用的安装方式为.tgz压缩包的方式,因为我觉得采用…

8月 28, 2021 0条评论 326点热度 0人点赞 阅读全文

创建 通过PUT my_index/_create/1方式创建文档 支持自动生成文档Id和指定文档Id两种方式 通过调用 POST /users/_doc 系统自动生成document id 使用PUT user/_create/1 创建时, URI中显式指定_create, 此时如果该id已经存在,则操作失败 通过指定doc id方式创建 PUT users/_doc/1?op_type=create { "user": "Test", "post_date": "2021-04-18 21:13:21", "m…

7月 6, 2021 0条评论 331点热度 0人点赞 阅读全文

elasticsearch 搜索提供了多种查询数据的方式,例如 query string 以及_search方式,方便我们根据不同的需求查询数据,同时在查询参数中,可以指定结果的算分策略,能够的到更加符合需求的结果。本文主要从使用方式出发,介绍查询的基础用法 Search API URI Search 在URL 中使用查询参数 Request Body Search 使用ES提供的,基于JSON格式的更加完备的(Query Domain Specific Language DSL) 指定查询索引 语法 范围 /_s…

6月 4, 2021 0条评论 343点热度 0人点赞 阅读全文

数据库相关概念的学习 不可重复读 不能重复读是指在事务开始之后, 第一次读取的结果集和第二次读取的结果集不一致。 TRANSACTION1 TRANSACTIONS2 select * from p where id < 5 insert into p values (2) commit select * from p where id < 5 以上是作为一个正确的事务执行顺序, 如果TRANSACTION1两次执行了相同的SQL语句, 但是却获取了TRANSACTION2插入的结果。 这种主要是事务级…

4月 18, 2021 0条评论 338点热度 0人点赞 阅读全文

1. NULL列的影响 Mysql 官方文档: NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte. 《高性能mysql第二版》中描述: Mysql难以优化引用可空列表查询, 它会使索引, 索引统计和值更加复杂。可空…

4月 17, 2021 0条评论 279点热度 0人点赞 阅读全文

Redis提供了SETBIT,GETBIT,BITCOUNT,BITOP四个命令用于处理二进制位数组. 其中, SETBIT命令用于为位数组指定偏移量上的二进制设置值, 位数组的偏移量从0开始计数, 而二进制位的值则可以是0或者1。 GETBIT命令则用于获取位数组指定偏移量上的二进制位的值. BIGCOUNT命令用于统计维数组里面, 值为1的二进制位的数量. BITOP命令既可以对多个位数组进行按位与(and),按位或(or),按位异或(xor),取反操作(not)运算 位数组的表示 Redis使用字符串对象来表…

4月 14, 2021 0条评论 417点热度 0人点赞 阅读全文

发布与订阅 Redis的发布与订阅命令由PUBLISH,SUBSCRIBE,PSUBSCRIBE等命令组成。 通过执行SUBSCRIBE命令, 客户端可以订阅一个或多个频道, 从而成为这些频道的订阅者: 每当有其他客户端向被订阅的频道发送消息时, 频道的所有订阅者都会收到这条消息。 除了订阅频道之外, 客户端还可以通过执行PSUBSCRIBE命令订阅一个或多个模式, 从而成为这些模式的订阅者: 每当有其他客户端向某个频道发送消息时, 消息不仅会被发送给这个频道的所有订阅者, 它还会被发送给所有与这个频道相匹配的模式…

4月 13, 2021 0条评论 405点热度 0人点赞 阅读全文

Redis慢查询日志功能用于记录执行时间超过给定时长的命令请求, 用户可以通过这个功能产生的日志来监视和优化查询速度。 相关配置参数 slowlog-log-slower-than选项指定执行时间超过多少微秒(1秒等于1000000微秒)的请求会被记录到日志上面 slowlog-max-len选项指定服务器最多保存多少条慢查询日志 保存日志方式 服务器使用先进先出的方式保存多条慢查询日志, 当服务器存储的慢查询日志数量等于slowlog-max-len选项的值时, 服务器在添加一条新的慢查询日志之前, 会先将最旧的…

4月 12, 2021 0条评论 457点热度 0人点赞 阅读全文

数据库锁 什么是锁? 数据库锁是用于对公共资源的并发访问。是为了保证数据的并发性和一致性 锁类型 共享锁(S Lock): 允许事务读取一行数据 排它锁(X Lock): 允许事务更新或者删除一条数据 意向排它锁(IS Lock): 事务想要获取一个表中某几行的排它锁 意向共享锁(XS Lock): 事务想要获取一个表中某几行的共享锁 锁兼容 如果一个事务获得了行R的共享锁, 那么另外一个事务可以立即获得行R的共享锁。 锁不兼容 如果事务想获取行R的排他锁,则必须等待事务释放行R上的共享锁。 排它锁和共享锁的兼容性…

4月 11, 2021 0条评论 391点热度 0人点赞 阅读全文

mysql 事务 mysql事务的四个特性 原子性(Atomicity) 原子性是指整个数据库事务是不可分割的工作单位。只有使事务中的所有数据库操作都成功,整个事务才算成功。如果事务中任何一个SQL执行失败,已执行的SQL的操作必须被撤销, 数据库状态应该回退到执行事务前的状态。 一致性(Consistency) 一致性是指事务将数据库从一个状态转换为下一个一致性的状态。在事务开始前和开始后, 数据的完整性约束没有被破坏。 隔离性(Isolation) 一个事务的影响在提交前对其他事务都是不可见的。 - 这种通过锁…

4月 11, 2021 0条评论 389点热度 0人点赞 阅读全文