2020年10月

2020-10-12 周一

下一个半年计划

学习计划
书:Redis 核心原理 剩下的一半看完
掘金小册子:MySQL 怎样运行的 看完
书:现实挖掘 看完
书:Elasticsearch原理解析 尽量看
家里面其他的书尽量不吃灰

2020-10-13 周二

为什么不要三表以上关联查询

看到不要三表以上关联查询的建议,去看了一下原因:

  1. 如果条件限制宽泛的话,三张表关联产生的笛卡儿积非常庞大,缓存机制什么的可能扛不住
  2. 这和表的大小很有关系
  3. 都在索引上性能应该不会差,但万一不在,服务器遭罪
  4. 跨多个表的join查询在大数据量下需要的对比与运算量是会急速增长的,所以这条规约除了限制join个数之外,还提及了「join字段类型必须一致并有索引」

如何更好的处理

很多时候,可以将查询转换一种写法,让它拥有更好的性能。也可以通过代码逻辑,以更好的方式完成查询。

复杂/简单

传统实现中由于网络通信、查询解析和优化通常代价很高,但如今 MySQL 在设计上已经让连接更加轻量级,返回一个小的查询结果更加高效,而且现在网络通信的带宽和延迟都比以前快很多。某些版本的 MySQL 在一般服务器上也能够运行每秒超过10万次查询,千兆网卡也能满足每秒两千多次的查询,所以如今多个小查询已不算大问题了。

这样做的好处有:

  1. 将查询分解后,执行单个查询可以减少锁竞争
  2. 应用层做关联,更容易拆分数据库,提高性能与扩展性
  3. 使用 IN() 代替关联查询,由于ID顺序固定,可能比随机的关联更加高效
  4. 减少冗余记录的查询
  5. 相当于在应用层中实现了哈希关联,而不是 MySQL 的嵌套循环关联
  6. 缓存效率的提高,用 IN() 查的时候,里面如果有查过的就会直接返回,而关联插叙当表更改后缓存就失效了

总之计算机解决问题,性能和存储空间往往只能取其一,有时候冗余也是很好的解决方法

参考:
阿里规定超过三张表禁止join,为啥?
mysql 为什么不推荐三张表以上的关联?

2020-10-14 周三

Docker 镜像备份

在翻墙状态下

 docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/dast:1
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/dast:1 tabll/dast:1
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/dast:1 tabll/dast
docker push tabll/dast:1
docker push tabll/dast

docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:3
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:3 tabll/license-finder:3
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:3 tabll/license-finder
docker push tabll/license-finder:3
docker push tabll/license-finder

docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/secrets:3
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/secrets:3 tabll/secrets:3
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/secrets:3 tabll/secrets
docker push tabll/secrets:3
docker push tabll/secrets

docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium:2
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium:2 tabll/gemnasium:2
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium:2 tabll/gemnasium
docker push tabll/gemnasium:2
docker push tabll/gemnasium

docker pull registry.gitlab.com/gitlab-org/security-products/analyzers/phpcs-security-audit:2
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/phpcs-security-audit:2 tabll/phpcs-security-audit:2
docker tag registry.gitlab.com/gitlab-org/security-products/analyzers/phpcs-security-audit:2 tabll/phpcs-security-audit
docker push tabll/phpcs-security-audit:2
docker push tabll/phpcs-security-audit

 

2020-10-15 周四

DockerFile 替换源

Debian

 RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list

 

Ubuntu

 RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

 

2020-10-16 周五

Yapi 免费环境

https://yapi.baidu.com/

贡献者:
贡献免费的环境-Corey-Wang

2020-10-19 周一


唤醒精灵