2021年11月1日
摘要:
mongo官方存储引擎说明地址: Configuration File Options — MongoDB Manual mongodb有两种存储引擎:wiredTiger、inMemory,后者在4.0版本中已经废弃。wiredTiger比inMemory多了journal buffer机制,也就
阅读全文
posted @ 2021-11-01 18:27
梦幻朵颜
阅读(307)
推荐(0)
摘要:
mongo内置角色列表 角色类型 类型说明 角色名称 说明 数据库一般角色(Database User Roles) 每个数据库都包含的一般角色; read 提供读取所有非系统集合和部分系统集合的数据的能力,系统集合包括:system.indexes,system.js和system.namespa
阅读全文
posted @ 2021-11-01 17:43
梦幻朵颜
阅读(354)
推荐(0)
2021年10月31日
摘要:
数据备份 mongodump ./mongodump -h localhost:27022 -d lison -o /usr/local/mongodb/mongodb-linux-x86_64-3.4.18/backup -h :指定ip和端口; -d :备份的数据库名称 ; -o:指定备份的路径
阅读全文
posted @ 2021-10-31 20:40
梦幻朵颜
阅读(523)
推荐(0)
摘要:
本文主要介绍update,对增删改查其他操作感兴趣的请查看我的其他博文: 《mongodb-4.4.10版本与MySQL的SQL语法对比,以及mongodb增删改查入门demo》 《mongodb-4.4.10版本SQL查询进阶,mongodb与mysql的select SQL大比拼》 update
阅读全文
posted @ 2021-10-31 14:31
梦幻朵颜
阅读(212)
推荐(0)
2021年10月30日
摘要:
mongodb增删改查入门,请参考我的另一篇博文《mongodb-4.4.10版本与MySQL的SQL语法对比,以及mongodb增删改查入门demo》 在mongo中,单个文档最大不能超过16MB,否则就应该考虑使用引用(DBRef)了,在主表里存储一个id值,指向另一个表中的id值。 DBRef
阅读全文
posted @ 2021-10-30 20:41
梦幻朵颜
阅读(87)
推荐(0)
摘要:
基础的mongodb增删改查入门,请查看我的另一篇博文《mongodb-4.4.10版本与MySQL的SQL语法对比,以及mongodb增删改查入门demo》。 mongo的索引管理,请查看《mongodb-4.4.10版本的索引管理:创建、删除》 这篇文章给大家讲讲mongo的高阶查询。 查询选择
阅读全文
posted @ 2021-10-30 10:02
梦幻朵颜
阅读(247)
推荐(0)
2021年10月24日
摘要:
本文介绍的是基于Pojo方式增删改查mongodb的例子,如果需要用document原始client API进行增删改查,参考我的另一篇博文《mongodb-4.4.10版本在Java中,基于Document的增删改查例子》 首先加入maven依赖: <dependency> <groupId>or
阅读全文
posted @ 2021-10-24 11:08
梦幻朵颜
阅读(214)
推荐(0)
摘要:
本文介绍的是基于Document方式增删改查mongodb的例子,如果需要用Pojo类型的Spring API进行增删改查,参考我的另一篇博文《mongodb-4.4.10版本在Java中,基于Pojo的增删改查例子》 首先加入maven依赖: <dependency> <groupId>org.m
阅读全文
posted @ 2021-10-24 10:45
梦幻朵颜
阅读(434)
推荐(0)
摘要:
Mongodb的增删改查,请查看我的另一篇文章《mongodb-4.4.10版本与MySQL的SQL语法对比,以及mongodb增删改查入门demo》 在查询中会用到各种运算符: 运算符类型 运算符 描述 范围 $eq 等于 $lt 小于 $gt 大于 $lte 小于等于 $gte 大于等于 $in
阅读全文
posted @ 2021-10-24 10:43
梦幻朵颜
阅读(57)
推荐(0)
2021年10月23日
摘要:
学习mongodb SQL,请看我的另一篇博客:《mongodb-4.4.10版本与MySQL的SQL语法对比,以及mongodb增删改查入门demo》 正确的mongodb事务过程 >s = db.getMongo().startSession(); >s.startTransaction() >
阅读全文
posted @ 2021-10-23 17:14
梦幻朵颜
阅读(69)
推荐(0)
2021年10月21日
摘要:
先了解下mongdb的数据结构与mysql的数据结构的对应关系,这样能帮我们更好的快速理解mongodb: Mongodb MySql DB(库) Database(数据库) Collection(集合) Table(表) Document(文档)单个文档最大不能超过16MB,否则就应该考虑使用引用
阅读全文
posted @ 2021-10-21 00:02
梦幻朵颜
阅读(231)
推荐(0)
2021年10月20日
摘要:
mongo官方文档地址:Configuration File Options — MongoDB Manual 一、自己手动下载及安装 第一步:下载 https://www.mongodb.com/try/download/community Mongodb社区版下载地址,我这里是mac,所以选择m
阅读全文
posted @ 2021-10-20 23:39
梦幻朵颜
阅读(1733)
推荐(0)
2021年7月28日
摘要:
一颗B+树的层高最好控制在3层之内,到第4层性能会急剧下降。 计算机存储数据时,一个扇区512KB,一个文件是4KB,innodb存储一页是16KB,innodb的所有文件大小一定是16KB的整数倍,一定是16384 byte的整倍数。 一个叶子节点有多少字节可以存放指向下一节点的指针,取决于主键的
阅读全文
posted @ 2021-07-28 20:51
梦幻朵颜
阅读(1136)
推荐(0)
2021年7月26日
摘要:
从锁的模式来区分:Shared Locks共享锁(行锁)、Exclusive Locks(行锁) 意向锁区分: Intention Shared Locks意向共享锁、Intention Exclusive Locks意向排它锁 从锁的算法区分:Record Locks记录锁、Gap Locks间隙
阅读全文
posted @ 2021-07-26 10:26
梦幻朵颜
阅读(1059)
推荐(0)
2021年7月24日
摘要:
WAL机制 write ahead logging 预写日志,写完日志,再写入实际数据文件。 redo log 保证事务的持久性undo log 保证事务的一致性 redo日志记录内容:表空间id,页id,页面上的偏移量,偏移量改了什么值,这样记录空间就很小。而且记录是一条一条产生的,是一个顺序IO
阅读全文
posted @ 2021-07-24 16:39
梦幻朵颜
阅读(370)
推荐(0)
2021年7月21日
摘要:
本章主要介绍Buffer Pool特性。 双写缓冲区参考《mysql5.7系统表空间和独立表空间,断,组,区,页的概念,innodb双写缓冲区》 AHI(自适应HASH索引)放的都是很热的数据,是buffer pool中的一部分。 即使select一行数据,innodb也会读取一页16kb数据,那么
阅读全文
posted @ 2021-07-21 20:42
梦幻朵颜
阅读(901)
推荐(0)
2021年7月20日
摘要:
SYS_TABLES 整个InnoDB存储引擎中所有的表的信息 SYS_COLUMNS 整个InnoDB存储引擎中所有的列的信息 SYS_INDEXES 整个InnoDB存储引擎中所有的索引的信息 SYS_FIELDS 整个InnoDB存储引擎中所有的索引对应的列的信息 备注:以上4个表的元数据直接
阅读全文
posted @ 2021-07-20 23:39
梦幻朵颜
阅读(351)
推荐(0)
摘要:
mysql为了管理好页,提出了表空间的概念,表空间分为系统表空间和独立表空间两种。 一、独立表空间 系统表空间对应一个或多个系统文件,独立表空间会把数据存储在一个后缀名为ibd文件上,一个独立表空间就对应一个ibd文件。 行数据存储结构参考《mysql5.7行数据存储格式》 在分析行存储结构时,我们
阅读全文
posted @ 2021-07-20 23:11
梦幻朵颜
阅读(729)
推荐(0)
2021年7月19日
摘要:
一、mysql的4种行数据存储格式 mysql有4种存储格式:1)Compact 2) Redundant (5.0版本以前用,已废弃) 3) Dynamic (mysql5.7默认格式) 4) Compressed。 这是compact行格式数据存储结构: DB_ROW_ID(row_id) 如果
阅读全文
posted @ 2021-07-19 23:23
梦幻朵颜
阅读(1592)
推荐(0)
摘要:
一、JDBC setResultSetType(ResultSet.TYPE_FORWARD_ONLY); 告诉mysql发送流数据过来 setFetchSize(1000); 告诉mysql获取条数 拿部分数据过来,直到把所有数据都处理完毕。 用游标也可以。 但上述用游标或者流的方式,都是把压力都
阅读全文
posted @ 2021-07-19 20:59
梦幻朵颜
阅读(344)
推荐(0)
2021年7月18日
摘要:
子查询种类回顾 select * from (select m1 from t1 limit 1); 像这种只返回一个值的被称为标量子查询。 select * from (select * from t1 limit 1); 像这种只返回一行数据的子查询被称为行子查询,会有多个列返回。 select
阅读全文
posted @ 2021-07-18 19:32
梦幻朵颜
阅读(110)
推荐(0)
2021年7月15日
摘要:
select * from 驱动表 t1 STRAIGHT_JOIN 被驱动表 t2 ON t1.order_id = t2.order_id; select * from t_order t1 STRAIGHT_JOIN t_order_detail t2 ON t1.order_id = t2.
阅读全文
posted @ 2021-07-15 20:42
梦幻朵颜
阅读(1854)
推荐(0)
2021年7月6日
摘要:
使用 find / -name my.cnf 命令找到所在路径: /etc/my.cnf 估计这个路径就是mysql5.7安装到centos8里的默认存放配置文件的路径。 vim /etc/my.cnf 就可以修改了。
阅读全文
posted @ 2021-07-06 20:47
梦幻朵颜
阅读(896)
推荐(0)
2021年7月5日
摘要:
这是一个SpringBoot框架,使用了r2dbc持久化层,mysql 5.7数据库,证明了一小时可insert六百万数据。r2dbc连接池设置:initial 20, max 200. 以下是jmeter压测工具截图,150个用户,间隔10秒,无限循环: 右上角: 01:00:15 执行时长 Sa
阅读全文
posted @ 2021-07-05 16:13
梦幻朵颜
阅读(837)
推荐(0)
2021年7月4日
摘要:
一、表和索引设计 CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key', `username` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8
阅读全文
posted @ 2021-07-04 17:26
梦幻朵颜
阅读(1087)
推荐(0)
摘要:
一、IO成本 mysql的innodb存储引擎会把数据存储到磁盘上,这时候无论怎么优化SQL,都是需要从磁盘中读取数据到内存,就是IO成本,每次读取磁盘,至少耗时0.01秒,至少读一页,innodb一个页的数据存储大小是16KB,这个磁盘的IO时间成本是1.0,这里的1.0没有单位,就是个比较值。
阅读全文
posted @ 2021-07-04 06:56
梦幻朵颜
阅读(3117)
推荐(1)
摘要:
mysql5.7基于块的嵌套循环连接(Block Nested-Loop Join) select * from t_order t1,t_order_detail t2 where t1.id = t2.order_id and t1.amount > 100; 这里t1是驱动表,t2是被驱动表,
阅读全文
posted @ 2021-07-04 06:44
梦幻朵颜
阅读(841)
推荐(0)
摘要:
for (int i=0; i<3; i++){ for (int j=0; j<3; j++){ for (int k=0; k<3; k++){ // to do something } } } 这个过程是一个嵌套循环,时间复杂度是 O(i*j*k),i j k 都是3,所以时间复杂度是O(27
阅读全文
posted @ 2021-07-04 06:28
梦幻朵颜
阅读(139)
推荐(0)
2021年7月3日
摘要:
索引合并/index merge。此文的所有SQL例子都基于以下表结构讲解: CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key', `username` varchar(40) CHAR
阅读全文
posted @ 2021-07-03 19:17
梦幻朵颜
阅读(654)
推荐(0)
2021年6月28日
摘要:
一颗B+tree索引存储的数据大概是2000万,大概三四层左右,如果超过2000万数据,B+tree索引数会更高,可能达到五层六层。如果我们的数据过于庞大,可以考虑使用mysql分区存储,分区类型包括: 1)range分区 2)LIST分区 3)HASH分区 4)KEY分区 5)复合分区/子分区 注
阅读全文
posted @ 2021-06-28 21:49
梦幻朵颜
阅读(962)
推荐(0)
摘要:
先了解下mysql的B+tree索引结构,再来结合这个文章看会更好理解一点:《为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍》 二级索引回表是随机IO操作。 按照聚簇索引或者二级索引顺序查询的操作是顺序IO。 顺序IO一定比随机IO更快! end.
阅读全文
posted @ 2021-06-28 20:14
梦幻朵颜
阅读(855)
推荐(0)
2021年6月27日
摘要:
MRR (Disk-Sweep Multi-Range Read) 当mysql读取一批二级索引时,会将根据这些二级索引拿到的主键id进行排好序,去批量回表到主键索引拿,这个优化过程由Mysql自行控制,我们无法干预,这就是MRR技术,多范围查询技术。 当然,实现这个条件比较苛刻。 end.
阅读全文
posted @ 2021-06-27 11:02
梦幻朵颜
阅读(193)
推荐(0)
2021年6月23日
摘要:
show full columns from t_user; 查看表全部结构。 Key = PRI 主键 Key = UNI 唯一索引 Key = MUL 普通索引 这张表的完整表结构长这样: CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_IN
阅读全文
posted @ 2021-06-23 07:51
梦幻朵颜
阅读(2617)
推荐(0)
2021年6月20日
摘要:
mysql官方文档地址: https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html 在mysql5.7官方文档描述中,可以使用innodb_stat_method来区别处理列的null值,处理方式有3种: 1、nulls_equal
阅读全文
posted @ 2021-06-20 17:42
梦幻朵颜
阅读(462)
推荐(0)
2021年6月15日
摘要:
【慢查询配置】 show VARIABLES like 'slow_query_log'; -- 是否开启了慢查询 set GLOBAL slow_query_log=1; -- 启用慢查询 show VARIABLES like '%long_query_time%'; -- 多慢算慢呢?默认10
阅读全文
posted @ 2021-06-15 23:00
梦幻朵颜
阅读(862)
推荐(0)
2021年6月14日
摘要:
《为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍》 看完以上这篇文章,明白B+tree索引结构,对explain解析更有帮助。 MySQL官网doc文档: https://dev.mysql.com/doc/refman/5.7/en/explain-o
阅读全文
posted @ 2021-06-14 20:36
梦幻朵颜
阅读(1785)
推荐(0)
2021年6月12日
摘要:
Hash索引的查找速度很快,几乎是O1的,但是为什么不适用 HashMap 来做数据库索引呢? 1、区间值难找。因为单个值计算会很快,而找区间值,比如 100 < id < 200 就悲催了,需要遍历全部hash节点。 2、排序难。通过hash算法,也就是压缩算法,可能会很大的值和很小的值落在同一个
阅读全文
posted @ 2021-06-12 08:35
梦幻朵颜
阅读(1431)
推荐(1)
2021年6月10日
摘要:
《为什么数据库中要使用B+tree索引,而不用hash索引?MySQL中的B+tree索引介绍》 只有看完以上这篇文章,才会明白为什么下面要这么设计。 1、能设计成数字类型的,就不要使用varchar,因为比如varchar(20),mysql就一定会开辟20个字节的内存出来,在计算的时候。 2、需
阅读全文
posted @ 2021-06-10 21:04
梦幻朵颜
阅读(90)
推荐(0)
2021年6月6日
摘要:
Begin -- 事务开启 insert ... update ... Save point pointA; -- 保存点A,名字随便取 insert ... update ... Save point pointB; -- 保存点B,名字随便取 Rollback to pointA; -- 回滚至
阅读全文
posted @ 2021-06-06 11:10
梦幻朵颜
阅读(493)
推荐(0)
摘要:
innodb存储引擎支持数据库事务,事务有四大特性ACID:原子性 Atomicity一致性 Consistency持久性 Durability隔离性 isolation mysql事务隔离表 隔离级别 脏读 不可重复读 幻读 1 Read uncommitted 未提交读 可能 可能 可能 2 R
阅读全文
posted @ 2021-06-06 10:53
梦幻朵颜
阅读(188)
推荐(0)