ConorLuo 博客

胆小认生,不易相处

Windows Terminal(Windows终端)是微软公司发布的面向Windows10的新命令行程序,它是一个更现代化,功能更丰富,更加高效的终端应用程序,适用于命令行用户。它包含最常用的许多功能,包括对选项卡,富文本,全球化,可配置性,主题和样式等的支持。

阅读全文 »

GitSubmodule 是一种在 git repository 中嵌入另外一个 git repository ,并在两个 repository 之间建立关系的一种技术

简单来说 Git Submodule 是一种在 git repository 中嵌入另外一个 git repository ,并在两个 repository 之间建立关系的一种技术。这样有什么作用呢?他可以把原本多个独立的 repository 通过这种技术放在一个 repository 中进行集成管理,以 repository 的维度对一个大项目进行模块划分。具体的用法和好处接下来我们慢慢讲述。

阅读全文 »

国内绝大多数院校用的王珊的《数据库系统概论》这本教材,某些方面并没有给出很详细很明确的解释,与实际应用联系不那么紧密。本文将结合应用案例,介绍数据库方式的基本知识。

阅读全文 »

每个工程师都应该了解的:数据库知识

数据库和编程语言一样,同样是软件工程师们的必争之地。今天我就和大家聊一些数据库相关的知识。

Uber 发表过一篇文章,宣布他们从 PostgreSQL 转到 MySQL 了。文章的内容很好,同时还科普了一些数据库索引和复制的基本常识。当时,我转给了一个朋友,朋友看了之后说:“哦,他们 2013 年才发了一篇文章说他们从 MySQL 转到 PostgreSQL 。”

阅读全文 »

MongoDB 索引

在 MongoDB 中设置索引,主要是为了增加查询效率;

没有设置索引,MongoDB 在查询数据的时候执行的是:扫描整个集合 Collection,在数据量不大的时候没有问题,一旦数据量增加到一定程度后,查询耗时就会很高,导致查询效率变低。

简单索引

1
2
3
4
5
6
7
8
9
# 1. 方法
createIndex()

# 2. 样例(单字段索引)
db.collection.createIndex(keys, options)
testdb.student.createIndex({"code":1})

# 3. 设置使用多个字段创建索引(关系型数据库中称作:联合索引)
db.col.createIndex({"id":1,"code":-1})

在嵌入字段上创建索引img

您可以对嵌入文档中的字段创建索引,就像可以为文档中的顶级字段编制索引一样。嵌入字段上的索引不同于嵌入文档上的索引,后者包括索引中嵌入文档的最大索引大小的完整内容。相反,嵌入字段上的索引允许您使用“点表示法”来自省嵌入的文档。

请考虑一个名为 的集合,该集合保存类似于以下示例文档的文档:records

1
2
3
4
5
{
"_id": ObjectId("570c04a4ad233577f97dc459"),
"score": 1034,
"location": { state: "NY", city: "New York" }
}

以下操作将在字段上创建索引:location.state

1
db.records.createIndex( { "location.state": 1 } )

创建的索引将支持在字段上选择的查询,如下所示:location.state

1
2
db.records.find( { "location.state": "CA" } )
db.records.find( { "location.city": "Albany", "location.state": "NY" } )

在嵌入文档上创建索引img

还可以在整个嵌入文档上创建索引。

请考虑一个名为 record 的集合,该集合保存类似于以下示例文档的文档:records

1
2
3
4
5
{
"_id": ObjectId("570c04a4ad233577f97dc459"),
"score": 1034,
"location": { state: "NY", city: "New York" }
}

该字段是嵌入的文档,包含嵌入的字段和 。以下命令在整个字段上创建索引:location city state location

1
db.records.createIndex( { location: 1 } )

以下查询可以使用字段上的索引:location

1
db.records.find( { location: { city: "New York", state: "NY" } } )

注意

尽管查询可以使用索引,但结果集不包括上面的示例文档。对嵌入的文档执行相等匹配时,字段顺序很重要,嵌入的文档必须完全匹配。有关查询嵌入文档的详细信息,请参阅查询嵌入文档。

其他注意事项img

在索引生成期间,应用程序可能会遇到性能降低的问题,包括对集合的有限读/写访问权限。有关索引生成过程的详细信息,请参阅填充集合上的索引生成,包括复制环境中的索引生成部分。

某些驱动程序可能指定索引,使用而不是用作规范。这对生成的索引没有任何影响。NumberLong(1)``1

高级索引

本文以科普的性质说明计算机网络是一个什么样的东西,顺便回顾一下自己大学计算机网络的基本知识

阅读全文 »

1. Microsoft.Toolkit.Mvvm 介绍

模型-视图-视图模型 (MVVM) 是用于解耦 UI 代码和非 UI 代码的 UI 体系结构设计模式。 借助 MVVM,可以在 XAML 中以声明方式定义 UI,并使用数据绑定标记将 UI 链接到包含数据和命令的其他层。

MVVM 最早是 Microsoft 提出来的,但是官方一直没有提供框架;很多人会说 Prism 框架,但是 Prism 已经出走了,而且比较臃肿;至于 MVVMLight 也很久没有更新了,直到 2020 年 Windows Community Toolkit 开源了一套 MVVM 框架 Microsoft.Toolkit.Mvvm。

阅读全文 »
0%