Blog of Woo

  • 首页

  • 标签

  • 归档

  • 公益 404

  • 搜索

为什么是InnoDB

发表于 2019-02-12 | 更新于 2019-02-15 | 评论数: | 阅读次数:
本文字数: 1.9k | 阅读时长 ≈ 2 分钟

InnoDB和MyISAM的区别

索引

InnoDB 是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高,但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据.因此,主键不应该过大,否则其他索引也会很大.而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针,主键索引和辅助索引是独立的.

事务

InnoDB 支持事务功能,对于 InnoDB 每一条 SQL 语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条 SQL 语言放在 begin 和 commit 之间,组成一个事务.
MyISAM 不支持,也因此执行速度更快,性能更好.

锁机制

InnoDB 为行级锁,myisam 为表级锁.
注意:当数据库无法确定,所找的行时,也会变为锁定整个表.
如:

1
update table set num = 10 where username like "%test%";
阅读全文 »

mysql 聚簇索引和辅助索引

发表于 2019-02-12 | 更新于 2019-04-04 | 评论数: | 阅读次数:
本文字数: 2.1k | 阅读时长 ≈ 2 分钟

众所周知,mySQL 有两种常见的存储引擎。一种是 MyISAM,一种是 InnoDB。
而mysql现在默认的存储引擎是InnoDB,那么为什么它选InnoDB作为存储引擎呢?网上很多回答会告诉是因为只有InnoDB使用了聚簇索引,那么聚簇索引究竟是啥东西?为了解答这个问题,笔者写下了这篇文章,除此之外也在文中解答了其他一些问题.

阅读全文 »

分布式锁的实现-mysql&redis

发表于 2019-02-11 | 更新于 2019-03-21 | 评论数: | 阅读次数:
本文字数: 2.7k | 阅读时长 ≈ 2 分钟

曾经我在一场真实面试中被问到分布式锁的实现,只能简单回答上来根据redis的setnx去做,而不知这里面其实还有很多坑.也不知是否还有其他方式.面试结束后就有了下文.

分布式锁

在单进程环境中,当多个线程产生资源竞争时.程序员们会采用 Synchronize 或 Lock 去对临界资源进行加锁,使得在修改临界资源时,能够线性执行以消除并发.那么由于多线程是挂在同一个进程下的,我们就必须在这个进程内设置一个标记变量,来让所有线程都可以发现.
而在分布式环境下,多进程可能会产生资源竞争,那么此时的锁就应该存放在多进程都能够看到的地方.由此我们想到了两种方式:数据库和redis.

阅读全文 »

令牌桶限流算法(Token Bucket))

发表于 2019-02-10 | 更新于 2019-05-06 | 评论数: | 阅读次数:
本文字数: 1.5k | 阅读时长 ≈ 1 分钟

今天学习一下什么是令牌桶算法。

1 简介

令牌桶算法最初来源于计算机网络。在网络传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送。令牌桶算法就实现了这个功能,可控制发送到网络上数据的数目,并允许突发数据的发送。

令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。

大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中可以保存的最大令牌数永远不会超过桶的大小。

传送到令牌桶的数据包需要消耗令牌。不同大小的数据包,消耗的令牌数量不一样。

令牌桶这种控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量。令牌桶中的每一个令牌都代表一个字节。如果令牌桶中存在令牌,则允许发送流量;而如果令牌桶中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌桶中有足够的令牌,那么流量就可以以峰值速率发送。

阅读全文 »

谈面试时从写一个单例开始究竟能问多深及终极解决方案

发表于 2019-01-02 | 更新于 2019-05-07 | 评论数: | 阅读次数:
本文字数: 5.2k | 阅读时长 ≈ 5 分钟

转 http://www.cnblogs.com/xiexj/p/6845029.html

看了左潇龙的《回答阿里社招面试如何准备,顺便谈谈对于 Java 程序猿学习当中各个阶段的建议》这篇文章,在想一个问题,从一个最简单的问题入手究竟能把问题问多深?下面就模拟一场面试问答,要是我是面试官,大概就只能问到下面的深度了。

阅读全文 »

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE

发表于 2018-11-02 | 更新于 2019-02-18 | 评论数: | 阅读次数:
本文字数: 1.1k | 阅读时长 ≈ 1 分钟

警告!Eureka 可能存在维护了错误的实例列表(当它们没有启动的时候,Eureka 却把它当成启动的了);Renews 值小于 Threshold 值,因此剩下未过期的都是安全的。

原因分析:

这个是 Eureka 的自我保护机制。Eureka Server 在运行期间,会统计心跳失败的比例在 15 分钟之内是否低于 85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),Eureka Server 会将当前的实例注册信息保护起来,同时提示这个警告。

阅读全文 »

TCP为什么是三次握手

发表于 2018-11-02 | 更新于 2019-02-15 | 评论数: | 阅读次数:
本文字数: 160 | 阅读时长 ≈ 1 分钟

TCP为什么是三次握手

TCP为什么建立连接是三次握手? 对于C和S来说,双方均需要确认对方和自己的发送信息能力和接受信息能力是OK的.
拿一次完整的三次握手来举例:

  • 第一次握手:C和S什么都不能确认.
  • 第二次握手:C确认了自己的发送能力和接受能力,S确认了自己的接受能力.
  • 第三次握手:S确认了自己的发送能力.

mysql explain 详解

发表于 2018-11-02 | 更新于 2019-02-15 | 评论数: | 阅读次数:
本文字数: 2.1k | 阅读时长 ≈ 2 分钟

mysql explain 详解

语法及描述

语法

在 select 语句前加上 explain 关键字就可以

描述

获取查询操作的执行顺序
使用到的索引
成功返回结果需要执行的行数

阅读全文 »

spring cloud 扫不到自定义controller

发表于 2018-11-02 | 更新于 2019-03-12 | 评论数: | 阅读次数:
本文字数: 2.3k | 阅读时长 ≈ 2 分钟

在 springboot 官网照着给的介绍写了个 springboot 程序

阅读全文 »

为什么你需要一个VPS

发表于 2018-11-02 | 更新于 2019-02-18 | 评论数: | 阅读次数:
本文字数: 2.3k | 阅读时长 ≈ 2 分钟

VPS 是什么

VPS 是 Virtual private server 的简称,中文是 “虚拟专用服务器”,是指通过虚拟化技术在独立服务器中运行的专用服务器。每个使用 VPS 技术的虚拟独立服务器拥有各自独立的公网 IP 地址、操作系统、硬盘空间、内存空间、CPU 资源等,还可以进行安装程序、重启服务器等操作,与运行一台独立服务器基本相同。

很多人有点分不清 VPS 与虚拟主机的区别,网上也有很多人说过这个。博主这里就不长篇大论了,简单说,VPS 就相当于一台真正的电脑,只不过这台电脑是放在别人家的。你可以通过 ssh 工具对它做任何事,只要你开心,你砸了它也行。
而虚拟主机说到底是别人家的电脑借给你用,你可以使用上面的计算资源,虚拟主机的服务商已经给你提供各种安装好的工具以及计算资源。但你对它的权限是比不上 VPS 大的。

阅读全文 »
123

woo

愿你我能摆脱冷气,只是向上走,不必听自暴自弃者流的话。

28 日志
18 标签
GitHub E-Mail
Links
  • Google
  • Github
0%
© 2020 woo | 78k | 1:11
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.0.0