06 2021 档案

摘要:python模块:typing 很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题。typi 阅读全文
posted @ 2021-06-16 14:36 foreast 阅读(200) 评论(0) 推荐(0) 编辑
摘要:分组前先排序 import itertools a = [ {"a": 1, "b": 2}, {"a": 2, "b": 4}, {"a": 1, "b": 8}, {"a": 3, "b": 5}, {"a": 1, "b": 1}, ] a.sort(key=lambda _: _.get(" 阅读全文
posted @ 2021-06-09 09:35 foreast 阅读(496) 评论(0) 推荐(0) 编辑
摘要:Arrow-一个最好用的日期时间Python处理库 写过Python程序的人大都知道,Python日期和时间的处理非常繁琐和麻烦,主要有以下几个问题: 有众多的package,类和方法,包括time,datetime,pytz等等 经常需要各种转换,比如时间戳,structtime,时间字符串之间相 阅读全文
posted @ 2021-06-07 15:44 foreast 阅读(766) 评论(0) 推荐(0) 编辑
摘要:Django实现MySQL读写分离 1. 增加slave数据库的配置 DATABASES = { 'default': { # 写(主机) 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'HOST': '192.168.103.158', # 数据库主机 阅读全文
posted @ 2021-06-05 22:56 foreast 阅读(97) 评论(0) 推荐(0) 编辑
摘要:MySQL主从同步 1. 主从同步机制 1.主从同步介绍和优点 在多台数据服务器中,分为主服务器和从服务器。一台主服务器对应多台从服务器。 主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序读取数据。 主服务器写入数据后,即刻将写入数据的命令发送给从服务器,从而使得主从数据同步。 阅读全文
posted @ 2021-06-05 22:55 foreast 阅读(175) 评论(0) 推荐(0) 编辑
摘要:商品详情页面静态化 提示: 商品详情页查询数据量大,而且是用户频繁访问的页面。 类似首页广告,为了减少数据库查询次数,提升页面响应效率,我们也要对详情页进行静态化处理。 静态化说明: 首页广告的数据变化非常的频繁,所以我们最终使用了定时任务进行静态化。 详情页的数据变化的频率没有首页广告那么频繁,而 阅读全文
posted @ 2021-06-05 21:54 foreast 阅读(206) 评论(0) 推荐(0) 编辑
摘要:定时任务crontab静态化首页 重要提示: 对于首页的静态化,考虑到页面的数据可能由多名运营人员维护,并且经常变动,所以将其做成定时任务,即定时执行静态化。 在Django执行定时任务,可以通过django-crontab扩展来实现。 1.安装 django-crontab $ pip insta 阅读全文
posted @ 2021-06-05 21:36 foreast 阅读(840) 评论(0) 推荐(0) 编辑
摘要:使用乐观锁并发下单 重要提示: 在多个用户同时发起对同一个商品的下单请求时,先查询商品库存,再修改商品库存,会出现资源竞争问题,导致库存的最终结果出现异常。 1. 并发下单问题演示和解决方案 解决办法: 悲观锁 当查询某条记录时,即让数据库为该记录加锁,锁住记录后别人无法操作,使用类似如下语法 se 阅读全文
posted @ 2021-06-05 17:59 foreast 阅读(416) 评论(0) 推荐(0) 编辑
摘要:使用事务保存订单数据 重要提示: 在保存订单数据时,涉及到多张表(OrderInfo、OrderGoods、SKU、SPU)的数据修改,对这些数据的修改应该是一个整体事务,即要么一起成功,要么一起失败。 Django中对于数据库的事务,默认每执行一句数据库操作,便会自动提交。所以我们需要在保存订单中 阅读全文
posted @ 2021-06-05 17:35 foreast 阅读(145) 评论(0) 推荐(0) 编辑
摘要:1. 字段拼接,分组特殊用法 SELECT send_org_code || receive_org_code FROM rst.rst_ra_sku_store_package_info GROUP BY send_org_code || receive_org_code 2. GREATEST和 阅读全文
posted @ 2021-06-04 13:54 foreast 阅读(397) 评论(0) 推荐(0) 编辑
摘要:一、GIN Generalized Inverted Index, 通用倒排索引。索引结构为一个存储对(key, posting list)集合。 存储对(key, posting list)中的key是一个键值,posting list是一组出现过key的位置。如("hello", "14:17, 阅读全文
posted @ 2021-06-03 22:57 foreast 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:一、GiST索引 是一种平衡的、树状结构的访问方法。它在系统中相当于一个模板,几乎可以实现任意索引模式 可以建立一种可扩展的索引结构,包括数据类型和查询谓词的扩展 GiST接口提供了一个高层的抽象,只要求访问方法的实现者实现被访问数据类型的语义,即可快速为新的数据类型开发索引方法 二、GiST索引组 阅读全文
posted @ 2021-06-03 00:17 foreast 阅读(1315) 评论(0) 推荐(0) 编辑
摘要:在PG中,磁盘存储和内存中的最小管理单位都是page,也是通常所说的block。一般PG页的大小为8K,在源码编译时可以设置。此后都不可更改,因为许多PG内存结构设计都是以此为基础的。 在一个page中,表的记录是从page的底部开始存储,然后慢慢向上涨。Page结构图如下: 上图为一个page的结 阅读全文
posted @ 2021-06-01 21:24 foreast 阅读(605) 评论(0) 推荐(0) 编辑
摘要:python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包?使用的时候边记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本。这些问题,requirements.txt都可以解决! 生成requirements.txt,有两种方式 阅读全文
posted @ 2021-06-01 18:37 foreast 阅读(1372) 评论(0) 推荐(0) 编辑