杂记2018/06~09
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,读了点东西,顺便做了一个微信的磁盘监控和阈值vacuum1
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 | def file_name(file_dir): |
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 的 limit1
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
29def __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
其他的就是七七八八的搞了一些东西