杂记2018/06~09

Author Avatar
Marmot 6月 06, 2018
  • 在其它设备中阅读本文章

2018-09-20

postgresql查询分析
http://tatiyants.com/pev/#/plans/new
Psql users can export the plan to a file using psql -qAt -f explain.sql > analyze.json

2018-09-17

权限树的增删改查和性能问题,务必防止产品改需求,能动态修改的尽量动态修改,能自动的不要手动。

2018-09-10

leetcode 算法依然在补充,有了一些清醒的认知

2018-08-22

对PostgreSQL做vacuum和aotuvacuum,读了点东西,顺便做了一个微信的磁盘监控和阈值vacuum

1
2
3
4
5
6
7
8
-- vacuum
vacuum;
-- 查看最近vacuum的时间
select schemaname,relname,last_autovacuum,last_autoanalyze from pg_stat_all_tables where relname='table_name';
-- 重置自增 pg
alter sequence table_id_seq restart with 1;
-- mysql
alter table tableName auto_increment = 1;

2018-08-21

1
2
3
4
5
6
7
8
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
# print(root) # 当前目录路径
# print(dirs) # 当前路径下所有子目录
# print(files) # 当前路径下所有非目录子文件
for file in files:
# 返回文件夹下所有单文件
yield root + file

2018-08-21

pg执行os命令并记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- auto-generated definition
create table disk_usage
(
tt_id serial not null
constraint disk_usage_pkey
primary key,
command_output text,
created_time timestamp default now()
);

alter table disk_usage
owner to postgres;

COPY trigger_test (command_output) FROM PROGRAM 'df -h';

2018-08-15

redis学习笔记

2018-08-14

show VARIABLES like ‘%max_allowed_packet%’;
数据过大可能会导致 pipe break 在 /etc/my.cnf 添加 max_allowed_packet=32M

2018-08-12

redis HyperLogLog UV数据统计 下低位连续零位的最大长度 k,通过这个 k 值可以估算出随机数的数量
redis Bloom Filter 判断某个对象是否存在时 存在的一定存在,不存在的可能存在 大型无偏hash函数

2018-08-07

多进程,多线程,异步

2018-08-01

搞完存储过程和触发器,对于线程和进程的理解加深了一些
永远不要相信传过来的数据,捕获错误要明确t raceback.format_exc()
XML迭代解析,但是要注意关系分析

查看在运行程序
ps aux | grep 关键字

2018-08-01

计算机操作系统 内存分配,地址管理,(分块,分页)寻址, 虚拟内存
在另外一个项目处理了一下触发器,存储过程,顺便看了一下视图

2018-07-24

了解了一下分布式的数据库TiDB
三蓝一棕的AI和数字货币
看一下《上帝掷骰子了吗》

2018-07-12

合分支处理公司的事,群里吹牛逼,整理了一下HTTPS的流程
1.浏览器→服务器:老哥,我会xx,xxx,xxx加密,你选一种吧+随机1
2.服务器➡浏览器:用xx加密,这是我的证书+随机2
3.浏览器→CA:这个老哥的证书是不是你们给整的?
4.浏览器→服务器: 生成pre-master secret,拿老哥的密钥加密,发给老哥,我本地根据算法用随机1+随机2+pre-master secret整个session Key
5.服务器➡浏览器: 这小老弟靠谱,我也根据算法用随机1+随机2+pre-master secret整个session Key我们两个就可以发消息了
6.双方用session Key,对称加密了

2018-06-28

go get golang.org/x/text/unicode 失败,考虑从git上clone到src再copy过去
macOS 10.14 需要使用go version go1.11beta1 darwin/amd64

2018-06-25

golang database/sql底层使用连接池,使用的时候最好使用预编译,防止sql注入

2018-06-20

25岁了
最近学习了一下mysql的索引,然后又看了次Mysql从入门到放弃
看到《fluent python》getitem 读了一部分Django的源码
了解了一下Django ORM 切片变成 sql 的 limit

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
def __getitem__(self, k):
"""Retrieve an item or slice from the set of results."""
if not isinstance(k, (int, slice)):
raise TypeError
assert ((not isinstance(k, slice) and (k >= 0)) or
(isinstance(k, slice) and (k.start is None or k.start >= 0) and
(k.stop is None or k.stop >= 0))), \
"Negative indexing is not supported."

if self._result_cache is not None:
return self._result_cache[k]

if isinstance(k, slice):
qs = self._chain()
if k.start is not None:
start = int(k.start)
else:
start = None
if k.stop is not None:
stop = int(k.stop)
else:
stop = None
qs.query.set_limits(start, stop)
return list(qs)[::k.step] if k.step else qs

qs = self._chain()
qs.query.set_limits(k, k + 1)
qs._fetch_all()
return qs._result_cache[0]

2018-06-06

golang 重构公司项目的一部分,一是练习,而是万一需要技术迁移的时候有点准备
抽空下班学习了一些基础,看完了图解tcp/ip
其他的就是七七八八的搞了一些东西