背景 由于系统中的订单量大,一些查询语句需要级联多张表来查询,单纯靠数据库的索引已经无法满足查询速度与用户界面响应速度的要求,因此在5年前引入了ES来加快查询速度。但是,原先的方案中ES存放的是全量的订单数据,并且是存放在同一个数据库索引中,随着业务的发展与订单量的累积,ES查询的速度已经越来越慢。通过Grafana监控数据,可以看到单个索引的数据量已达到1.5TB,主要的性能指标越来越差。ES的CPU使用率不时地大于80%,甚至100%,导致极端情况下ES查询耗时十几秒。对于用户的直观感受就是,在界面上面查询数据,需要耗时很久才能看到数据。
February 20, 2021
SEO对于网站的推广很重要,大多数搜索引擎都提供了一些API用于给站长主动提交URL,加快网页被收录的速度。
百度提供了快速收录的API接口,下面这个Python脚本可以用来读取本地磁盘中的sitemap.xml文件,并调用接口提交URL至百度。
February 1, 2021
在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
在创建临时数据表的时候会有用
create table if not exists foo as (select * from bar) with no data;
January 26, 2021
由于业务的需要,在查询的时候,需要动态地在SQL语句中指定schema。在mybatis的的查询语句中,可以使用 ${schemaName}。注意,必须要用$, 而不是#
January 25, 2021