摘要:
楔子 到目前为止,我们的查询都是从单个表中获取数据。下面我们开始探讨一下如何从多个表中获取相关的数据。因为在关系数据库中,通常将不同的信息和它们之间的联系存储到多个表中。比如产品表、用户表、用户订单表、以及关联的订单明细表等。当我们想要查看某个订单时,需要同时从这几个表中查找关于订单的全部信息。 除 阅读全文
摘要:
楔子 上一篇文章我们花了很大的笔墨介绍了 Mutex,这是完全值得的,因为它是最基础的并发原语,也是 sync 包的基石,甚至其它的一些并发原语也是基于它实现的。但是使用 Mutex 是一个代价比较昂贵的操作,因为不管是读还是写,我们都通过 Mutex 来保证只有一个 goroutine 访问共享资 阅读全文
摘要:
楔子 到目前为止,我们的查询都是从单个表中获取数据。下面我们开始探讨一下如何从多个表中获取相关的数据。因为在关系数据库中,通常将不同的信息和它们之间的联系存储到多个表中。比如产品表、用户表、用户订单表、以及关联的订单明细表等。当我们想要查看某个订单时,需要同时从这几个表中查找关于订单的全部信息。 作 阅读全文
摘要:
楔子 Go 最大的亮点就是它在语言层面实现了并发,只需要在函数调用前面加上一个 go 关键字即可开启一个 goroutine(Go 的协程)去并发执行,并且由于 Go 强悍的调度器,更是可以让我们轻轻松松开启成千上万个 goroutine。至于多个 goroutine 之间如何交流,Go 则是引入 阅读全文
摘要:
为什么要使用NoSql? 单机 MySQL 的美好年代 在早些年以前,那时候网站的访问量不大,用单个数据库完全可以应付。而且那个时候,绝大部分都是 LAMP 架构:Linux + Apache + MySQL + PHP。而且当时很多都是静态网页,动态交互类型的网站不多,而且数据量也无法跟现在相比。 阅读全文
摘要:
楔子 曾经在处理有关地铁人员数据的时候,遇到过两种格式的数据,当时确实把我给难住了。虽然最后解决了,但是方法不够优雅,一个是借助SQL来曲线救国,一个是使用纯Python逻辑。但是pandas作为一个非常优秀的第三方库,肯定提供了相应的解决方案,只不过当时在解决之后就没有之后了。然鹅最近这样的数据又 阅读全文
摘要:
介绍 Go语言中的 包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用 包时必须注入相应的数据库驱动。常见的数据库驱动如下: 创建并初始化连接 调用db.Ping()没有问题之后,我们就可以使用db去操作了,注意的是,这个返回的db可以安全的被多个goroutine同时使用 阅读全文
摘要:
楔子 ElasticSearch(后续简称 ES)在企业中的使用可以说是非常广泛了,那么 ES 到底是什么呢?我们学习 ES 能做到哪些事情呢?下面来了解一下。 ES 是一款高性能的分布式搜索引擎,当然里面出现的高性能、分布式已经是见怪不怪了,因此我们的重点是在搜索引擎上面。提到搜索引擎肯定不陌生, 阅读全文
摘要:
楔子 上一篇文章我们介绍了 goroutine,了解了 Go 是如何实现并发的。虽然实现了并发的效果,但是我们拿不到函数的返回值,因为它是通过 goroutine 的方式启动的,我们不能像下面这样做: res := go f() fmt.Println(go f()) 那么问题来了,多个 gorou 阅读全文
摘要:
楔子 这次我们说一说 Go 的并发编程,并发可以说是 Go 语言的一个最大的卖点,因为它在语言层面上就支持并发,而且使用方式非常简单。 在早期,CPU 都是以单核的形式顺序执行机器指令,Go 语言的祖先 C 语言正是这种顺序编程语言的代表。顺序编程语言中的顺序是指:所有的指令都以串行的方式执行,在相 阅读全文