MySQL存储引擎中MyISAM与InnoDB

存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 MyISAM与InnoDB的区别是什么? 1、 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 Continue Reading …

阅读hyperledger fabric源码学习Go并发编程

Hyperledger (或 Hyperledger项目)是一个 开放源 的”区块链” 和相关工具的总括项目,[1] 由 Linux基金会在2015年12月发起该项目,[2] 以支持基于区块链技术的去中心化账本的写作开发。 源码地址:https://github.com/hyperledger/fabric Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数的开发者。那么我们看看hyperledger fabric是怎么实现Go并发编程的呢? 并发(concurrency)和并行(parallellism) 并发(concurrency):两个或两个以上的任务在一段时间内被执行。我们不必care这些任务在某一个时间点是否是同时执行,可能同时执行,也可能不是,我们只关心在一段时间内,哪怕是很短的时间(一秒或者两秒)是否执行解决了两个或两个以上任务。 并行(parallellism):两个或两个以上的任务在同一时刻被同时执行。 并发说的是逻辑上的概念,而并行,强调的是物理运行状态。并发“包含”并行。 Go的CSP并发模型 Go实现了两种并发形式。第一种是大家普遍认知的:多线程共享内存。其实就是Java或者C++等语言中的多线程开发。另外一种是Go语言特有的,也是Go语言推荐的:CSP(communicating Continue Reading …

Go如何正确的使用mysql driver

经常在群里看的有小伙伴问,使用Go语言开发的时候经常会碰到数据的一些报错比如下面这位朋友:  我记得我刚开始写Go的时候也遇到过,那么今天就来讲讲如何正确的使用Mysql Driver吧! 官方文档https://golang.org/pkg/database/sql/#DB,虽然写了如何使用它来执行SQL数据库查询和语句的例子,但是没有很好的说明如何正确的配置sql.DB改善性能,SetMaxOpenConns(), SetMaxIdleConns() and SetConnMaxLifetime()这三个方法也通常被初学者忽略。 Open and idle Continue Reading …

Go如何实现HTTP请求限流

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流!为了保证在业务高峰期,线上系统也能保证一定的弹性和稳定性,最有效的方案就是进行服务降级了,而限流就是降级系统最常采用的方案之一。 这里为大家推荐一个开源库https://github.com/didip/tollbooth  但是,如果您想要一些简单的、轻量级的或者只是想要学习的东西,实现自己的中间件来处理速率限制并不困难。今天我们就来聊聊如何实现自己的一个限流中间件 首先我们需要安装一个提供了 Token bucket (令牌桶算法)的依赖包,上面提到的toolbooth 的实现也是基于它实现的 $ go get golang.org/x/time/rate 好了我们先看Demo代码的实现: Continue Reading …

回归Sina SAE

上一次使用SAE还是几年前了,那时候还在大学。买不起VPS,一年几百块钱的VPS得花掉半个月的零花钱!当时PaaS刚刚火起来,最开始用Google的GAE翻过墙!后来Sina也退出了自己的Paas平台,当时算是比较早的用户吧,做了实名认证为了获得云豆,还弄了开发者认证。总之学生时代很穷!用了一段时间之后。觉得Paas可玩性太低了。工作之后就开始自己折腾VPS! 博客从多个厂商迁过来迁过去!有时候因为懒不想导数据,也没做备份。很多时候很多东西就丢掉了! 这次下定决心,好好维护自己的博客了!不再折腾了,WordPress程序本身使用了SAE!而文件存储使用了阿里云的OSS,虽然Sina cloud 也有自己的SCC,但是没有好用的插件最终还是选择了阿里云! 总之花了半天时间,把整个环境弄好了,以后就好好写博客!