这里是

日常总结与记录点滴的地方

Paul

一枚程序员

在时代的潮流中接触到计算机技术

期望能够用技术给生活带来便利

也希望分享的内容能给别人带来帮助

订单ES查询性能优化

背景 由于系统中的订单量大,一些查询语句需要级联多张表来查询,单纯靠数据库的索引已经无法满足查询速度与用户界面响应速度的要求,因此在5年前引入了ES来加快查询速度。但是,原先的方案中ES存放的是全量的订单数据,并且是存放在同一个数据库索引中,随着业务的发展与订单量的累积,ES查询的速度已经越来越慢。通过Grafana监控数据,可以看到单个索引的数据量已达到1.5TB,主要的性能指标越来越差。ES的CPU使用率不时地大于80%,甚至100%,导致极端情况下ES查询耗时十几秒。对于用户的直观感受就是,在界面上面查询数据,需要耗时很久才能看到数据。

February 20, 2021

用Python读取sitemap并调用百度接口推送URL

SEO对于网站的推广很重要,大多数搜索引擎都提供了一些API用于给站长主动提交URL,加快网页被收录的速度。 百度提供了快速收录的API接口,下面这个Python脚本可以用来读取本地磁盘中的sitemap.xml文件,并调用接口提交URL至百度。

February 1, 2021

使用Python在两个Postgres数据库直接复制数据

在python脚本中,通过 psycopg2 库的copy_expert,可以很方便地在两个Postgres数据库之间复制数据 s = StringIO() # Export into memory buffer sql = """ COPY (select * from foo) TO STDOUT WITH CSV HEADER ENCODING 'UTF8'; """ sourceCursor = sourceConn.cursor() sourceCursor.copy_expert(sql, s) # Import from memory buffer to destination database sql = """ …

January 26, 2021

Postgres通过SQL语句复制表结构

在创建临时数据表的时候会有用 create table if not exists foo as (select * from bar) with no data;

January 26, 2021

MyBatis查询中动态指定schema

由于业务的需要,在查询的时候,需要动态地在SQL语句中指定schema。在mybatis的的查询语句中,可以使用 ${schemaName}。注意,必须要用$, 而不是#

January 25, 2021