Dev's Logging

Welcome to my blog !


SQLAlchemy and Django

Published at March 29, 2019 ·  1 min read

将 Django orm 与 sqlalchemy 结合在一起使用的案例,通过 Django orm 维护 model,实现写以及一些简单的查询功能,然后通过 sqlalchemy 实现复杂的只读查询。django orm 虽然可以通过 extra 实现与原生 sql 语句的融合,但通过 sqlalchemy 的 join 查询相比于 rawl sql 更加安全些 SQLAlchemy and Django...

Advanced usage of prefetch_related and select_related in Django

Published at March 29, 2019 ·  1 min read

django orm 的优化策略,在存在外键且需要多级嵌套查询的情况下,使用 prefetch_related(‘first_model__second_model’) 的方式将多次查询集合成一次查询 Advanced usage of prefetch_related and select_related in Django...

What is the difference between @staticmethod and @classmethod?

Published at March 29, 2019 ·  1 min read

staticmethod 和 classmethod 的用途及区别。staticmethod 更多的是将与 class 相关的 method 与其相绑定,防止污染整个模块的 namespace,同时也方便继承的类进行方法的重写。 classmethod 则需要显式的将 cls 作为第一个参数传进去。 What is the difference between @staticmethod and @classmethod?...

Django orm optimization cheat sheet

Published at March 29, 2019 ·  1 min read

django orm 常见的优化措施,除了 count 和 exists 外,select_related prefetch_related 也很常用,其他的则是考虑 queryset 在哪些场景下是 cached 哪些不是,以节省内存及减少数据库查询。 Django orm optimization cheat sheet...

Five sharding data models and which is right

Published at March 28, 2019 ·  1 min read

五种不同的 sharding 方式,分别是: 1. sharding by customer or tenant, 方便SaaS 及 ERP 2. sharding by geography, 方便多地域的服务。3. sharding by entity id,最常见的一种方式。 4. sharding a graph, 在Facebook Instagram 这种社交网站中较为流行,采用 图数据库。5. time partitioning, 适合于时间序列的数据,常见于各种日志。 Five sharding data models and which is right...

Database sharding explained in plain English

Published at March 28, 2019 ·  1 min read

postgresql 集群管理工具 citus 背后 sharding 的技术方案。把 id 均匀的哈希到 -2^32 - 2^32 之间的值,若增加 node 则将原有的 shards 进行移动到新的节点以实现轻松扩容。 Database sharding explained in plain English...

3 ways to detect slow queries in PostgreSQL - Cybertec

Published at March 28, 2019 ·  1 min read

几种检测 postgresql 慢查询的方法,针对全库,需要开启慢查询的日志打印,另外配合 explain 确认查询的方式,是索引还是顺序查询等。最后一个则是利用 pg_stat_statements 查看查询的数量、时间等状态信息。 3 ways to detect slow queries in PostgreSQL - Cybertec...

Tags

abcs accept acid activemq affinity algorithm allocation android array async aws b+tree b-tree backoff benchmark best-practices bfs big-o bigquery bind bitcount blog break broker bubble buffer cache cap cert cgroups channel citus class classmethod cluster concurrency config consumer container cookie cors crawler cronjob csrf ctr data-science data-structure database datadog dataflow datascience decorator defer dfs distributed django dns docker double-shipping drf ecosia elastic-search enumerate epoll extra facebook-pixel financial-report flask flutter forward-proxy freelance frp garbage-collector gc gcp generator get gil git golang goroutine graphql ha handbook haproxy hash hash-slot hashring hashtable hpa http http-auth http-proxy http_proxy https index innodb instagram intergration interview ios javascript jinja2 jobboard jwt k8s kafka kibana kqueue label lambda layer4 layer7 lean levels.io linked-list linux list listen loadbalancer logs long-tail lru marketing master matplotlib memory merge metaclass metaprogramming metrics metrics-server microservices mitm model mq myisam mysql namespace nat netflix network-extension nginx nodejs nomad nosql npm oodesign openssl optimization orm pandas parallelism parkinglot patroni permission pg pipeline pixelme post postgresql postresql prefetch_related prerender process proxy proxycommand put pvm python queue rabbitmq rbac react-native rebase redis redis-cluster replication resource rest restfulapi retargeting retry revenue reverse-proxy rocketmq saas scaleable search-engine security select seo serverless service session set shadosocks shadowsocks shard sharding shell shopify sigint signal sigterm slack slave slow-query sniper sns socket socks5 source-code spa sql sqlalchemy sqs ssh ssl ssl-pinning stack startup state stateful stateless staticmethod string struct swift switch syscall system-design systemctl tcp tcp-proxy thread tmpreaper token traefik trustkit tunning type typeform udp variable vc vpn vuejs web web-development where yarn zset 削峰 宽索引 异步 窄索引 解耦 跨域 跳板机


Archives

2019 (137)
0001 (1)