ziggle

Hail Hydra


  • Home

  • Archives

  • Search

sql-lock

Posted on 2017-12-14

数据库锁

*InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁
开销、加锁速度、死锁、粒度、并发性能

1
2
3
表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般

  • 共享锁
    共享锁的代号是S,是Share的缩写,共享锁的锁粒度是行或者元组(多个行)。一个事务获取了共享锁之后,可以对锁定范围内的数据执行读操作。

  • 排它锁
    排它锁的代号是X,是eXclusive的缩写,排它锁的粒度与共享锁相同,也是行或者元组。一个事务获取了排它锁之后,可以对锁定范围内的数据执行写操作。

例:假设有两个事务t1和t2
如果事务t1获取了一个元组的共享锁,事务t2还可以立即获取这个元组的共享锁,但不能立即获取这个元组的排它锁(必须等到t1释放共享锁之后)。
如果事务t1获取了一个元组的排它锁,事务t2不能立即获取这个元组的排共享锁,也不能立即获取这个元组的排它锁(必须等到t1释放排它锁之后)。

sql
sql server 中转义系统关键字是用“[]”来实现的但是在mysql中用这个是行不通的,最开始我用“’’”单引号,发现语法高亮的特点是没有了,我以为成功了,谁知一执行还是不行,最后查了下资料,原来是用的“``”,数字键1旁边的那个键,呵呵,看来这又是一个与sql server的区别啊

vim-basic

Posted on 2017-12-12
  • 全部格式化

    1
    gg=G
  • 格式化当前行

    1
    ==
  • 退出vim

    1
    2
    1 esc
    2 shift + zz
  • 查找

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    /text 向后查
    ?text 向前查
    yy 辅助
    p 粘贴
    dd 删除当前行
    o 另开一行
    u 撤销
    { 在第一列插入 { 来定义一个段落
    [[ 回到段落的开头处
    ]] 向前移到下一个段落的开头处

    h <
    l >
    k ^
    j v

    d$ 删到最后
    r 替换
    n next
    x 删除当前字符
    3x 删除当前光标开始向后3
    dh 删除前一个字符
    dj 删除上一行
    dk 删除下一行
    dw 删除当前光标下的单词/空格
    dG 删除至文件尾
    ddp 交换当前行和下一行
    ctrl+ ww 切换窗口

    guu 当前行转小写
    gUU 当前行转大写

– 替换

1
2
3
4
5
6
:%s/YouMeek/Judasn/g,把文件中所有 YouMeek 替换为:Judasn
:%s/YouMeek/Judasn/,把文件中所有行中第一个 YouMeek 替换为:Judasn
:s/YouMeek/Judasn/,把光标当前行第一个 YouMeek 替换为 Judasn
:s/YouMeek/Judasn/g,把光标当前行所有 YouMeek 替换为 Judasn
:s#YouMeek/#Judasn/#,除了使用斜杠作为分隔符之外,还可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符,该命令表示:把光标当前行第一个 YouMeek/ 替换为 Judasn/
:10,31s/YouMeek/Judasn/g,把第 10 行到 31 行之间所有 YouMeek 替换为 Judasn

vim注释多行

1
2
3
4
5
1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
2. 在行首使用上下键选择需要注释的多行;
3. 按下键盘(大写)“I”键,进入插入模式;
4. 然后输入注释符(“//”、“#”等);
5. 最后按下“Esc”键。

git-flight-rules

Posted on 2017-12-11

引用地址

  • https://github.com/k88hudson/git-flight-rules

Git飞行规则(Flight Rules)

🌍
English ∙ Русский ∙ 简体中文

前言

  • 英文原版README
  • 翻译可能存在错误或不标准的地方,欢迎大家指正和修改,谢谢!

什么是”飞行规则”?

一个 宇航员指南 (现在, 程序员们都在使用GIT) 是关于出现问题过后应该怎么操作。

飞行规则(Flight Rules) 是记录在手册上的来之不易的一系列知识,记录了某个事情发生的原因,以及怎样一步一步的进行处理。本质上, 它们是特定场景的非常详细的标准处理流程。 […]

自20世纪60年代初以来,NASA一直在捕捉(capturing)我们的失误,灾难和解决方案, 当时水星时代(Mercury-era)的地面小组首先开始将“经验教训”收集到一个纲要(compendium)中,该纲现在已经有上千个问题情景,从发动机故障到破损的舱口把手到计算机故障,以及它们对应的解决方案。

— Chris Hadfield, 一个宇航员的生活指南(An Astronaut’s Guide to Life)。

Read more »

linux-basic

Posted on 2017-12-08

重要文件以及位置

  • /dev/null # 输入流 blackhole

/etc/profile

  • 系统环境变量,为每个用户设置环境信息,当用户登陆时执行,并从/etc/profile.d 目录的配置文件中搜集 shell 的设置.

/etc/bashrc

  • 在执行完/etc/profile 之后如果用户是shell 运行的是bash,就会执行.可以用来设置
    每次登陆的时候都会去获取这些新的环境变量或者做某些特殊的操作,但是仅仅在登陆时

~/.bashrc

该文件包含专用于单个人的bash shell 的bash 信息,当登录时以及每次打开一个新的shell 时, 该该文件被读取.单个用户此文件的修改会影响到他以后的每一次登陆系统和每一次新开一个bash .因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么每次它新登陆系统或者新开一个bash ,都会去获取相应的特殊的环境变量和特殊操作

~/.bash_logout

当每次退出系统( 退出bash shell) 时, 执行该文件

shell 基本命令

变量类型
运行shell时,会同时存在三种变量:

  • 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量.

  • 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行.必要的时候shell脚本也可以定义环境变量.

  • shell变量 shell变量是由shell程序设置的特殊变量.shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行.

查看shell变量

1
root@ziggle:~# env

set

设置bash变量

unset

清除 本地|系统变量

exprot

用于把变量变成当前shell 和其子shell 的环境变量,存活期是当前的shell 及其子shell ,因此重新登陆以后,它所设定的环境变量就消失了

source

Read more »

nginx-config

Posted on 2017-12-08

Nginx settings

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
user www-data;
# 与cpu核心数一致
worker_processes 1;
pid /run/nginx.pid;

events {
use epoll;
worker_connections 768;
}

http {
# 开启gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

# websocket 配置
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}


sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

server {
# 监听端口
listem 80;
# 域名
server_name ziggle.com www.ziggle.com;
# 站点目录
root /root/ziggle;
location / {
index index.html;
}
# 正则匹配路径, 用~开头
location ~* \.(gif|jpg|png)$ {
expires 10d;
}

# websocket conf
location /chat/ {
# 默认websocket超时时间是 60s
proxy_read_timeout 3600s;
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}

include /etc/nginx/mime.types;
default_type application/octet-stream;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

gzip on;
gzip_disable "msie6";

# 包含配置
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

mail {

}
Read more »
1…202122
ziggle

ziggle

Hail Hydra !

110 posts
45 tags
RSS
GitHub
© 2021 ziggle
Powered by Hexo
|
Hail Hydra—