- 博客(73)
- 收藏
- 关注
原创 python format变量里有大括号报错
因为format自己用大括号{}作为占位符,如果字符串里本身有大括号,就是用两个大括号,所以应该改成这样。本来想给all赋值为aa。
2024-06-25 19:52:17
208
原创 redis和mysql数据一致性方案
场景:先删除Redis,再更新 MySQL,不主动更新Redis,访问redis 没有数据,再访问MySQL 把数据回写到Redis。在高并发情况下,如果请求 A 在更新MySQL 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。在高并发情况下,如果请求 A 在写 Redis 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。对于上面这种情况,对于第一次查询,请求 B 查询的数据是 10,但是 MySQL 的数据是 11,对数据一致性比较敏感的服务可以采用这个方案。
2024-04-25 20:04:40
473
原创 clickhouse ttl不生效
是因为删除数据速度 赶不上插入数据速度,造成历史数据无法被清理。通过 partition 字段查找 需要删除的分区。日志保留31天, 但是发现1年前的数据还有。TTL 删除数据按照 分区时间删除。历史使用通过删除分区的方式删除。加速删除数据的速度。
2024-04-18 22:04:40
707
原创 clickhouse 查询group 分组最大值的一行数据。
但文档又做了说明:因为查询可能是以任意顺序执行的,并且可能每次执行得顺序都不同(如同我们上面的select * from user_order返回的行顺序不同),所以这个函数的执行结果可能是不确定的。或者,select的对象的是一个已经排序过的子查询。使用any函数可以去匹配到的第一行数据,所以可以先让数据按照query_time_ms 排序,然后再使用group by 和any结合取第一行数据,就是最大值的那一行数据。窗体函数在数据量大的时候性能堪忧,在clickhouse中还有其他的处理方式。
2024-03-29 11:56:33
732
原创 clickhouse 双引号符串查询报错 Missing columns: required columns:
ERROR 47 (00000): Code: 47. DB::Exception: Missing columns: ‘leopard_know’ while processing query: ‘SELECT dbname FROM rds_all_slow_sql_record_local WHERE dbname = leopard_know LIMIT 10’, required columns: ‘dbname’ ‘leopard_know’, maybe you meant: [‘dbname
2024-03-27 21:08:03
916
原创 neo4j相同查询语句一次查询特慢再次查询比较快。
profile查看真实的执行过程。explain 可以查看预估的计划任务。dbms.memory.pagecache.size=30g 原来是2G。neo4j相同查询语句一次查询特慢再次查询比较快。分析服务器监控, cpu 磁盘压力比较高。过滤行数最多才16行,理论不应该慢。尝试升级服务器配置到64G。修改neo4j 内存配置。
2024-03-27 15:58:58
460
原创 Too many dynamic script compilations within, max: [75/5m]问题处理
上面的脚本改成 通过参数传递的方式,因为 每次return doc[‘my_field’].value *?问号这个数字变化 es都会编译一次,如果用变量的方式只编译一次。Too many dynamic script compilations within, max: [75/5m]问题处理。这个时候es cpu100% 脚本编译比较耗资源。现象: es 每隔5分钟 会高一波。1、调小阀值降低 es cpu。
2024-03-26 14:02:45
420
原创 手机号是用bigint还是用varchar存储
bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。19位数字对于无符号 BIGINT 类型,取值范围为 0 到 18446744073709551615。20位数字。int一个正常大小整数。
2024-03-20 10:27:35
670
原创 python多进程调用class类遇到的坑
python 多进程调用 类的自定义函数run() 加括号,会使多进程功能失效,变成穿行执行的程序。可以实现python 调用class类的多进程功能。系统:macOS Ventura 13.0.1。发现,调用的test.run 函数没运行。测试3 用的方法满足需求。
2024-03-19 10:36:23
434
原创 mysql5.7 BLOB, TEXT, GEOMETRY or JSON can‘t have a default value
在MySQL 8.0.13之后包括( 8.0.13) BLOB, TEXT, GEOMETRY, and JSON data types 不能配置表达式的默认值。在MySQL 8.0.13之后 BLOB, TEXT, GEOMETRY, and JSON data types 不能直接配置非null 默认值。在MySQL 8.0.13版本, 之前 BLOB, TEXT, GEOMETRY, and JSON 不能配置非null 的默认值,包括表达式。mysql 5.7 创建text字段的时候,报错。
2024-03-15 14:13:14
1027
原创 python mysql语句中有单引号执行的报错处理方式
解决方案 使用cur.execute(insert_sql, sql_info) 的方式格式化sql语句。用python format 拼装sql语句,发现 带单引号的sql 语句,转换为 类似下面的语句执行的时候报错。format 格式化sql 代码。
2024-03-12 18:44:54
495
原创 clickhouse 单副本和双副本升级差别
双副本集群必须用ReplicatedMergeTree;但是单副本就没必要用ReplicatedMergeTree了,还会对写入性能会有影响(单副本用MergeTree即可)。双副本的优势在于升级、重启等可滚动进行,考虑到这是少数场景,如果业务不是非常敏感,为了这个滚动付出多一倍成本不太值得。clickhouse,单副本,升级、重启,会有1-3分钟连接闪断。云上单副本就够了,成本更低,而且基于云盘不会丢数据。
2024-01-20 21:05:46
764
原创 mac 安装指定版本python 多版本管理pyenv
为了给mac安装不同版本的python包,但是又不影响系统的python 环境。使用pyenv工具安装指定版本包。安装好的 python 实际路径为 ~/.pyenv/versions。
2024-01-19 18:17:23
887
原创 clickhouse join查询算法
算法对比:使用方法:SELECT town, max(price) AS max_price, any(population) AS populationFROM uk_xxx_paidJOIN uk_xxx_tableON lower(uk_price_paid.town) = lower(uk_populations_table.city)GROUP BY townORDER BY max_price DESCSETTINGS join_algorithm =
2024-01-12 14:35:36
669
原创 redis前缀匹配数据迁移数据
同步(sync):支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。同步(rump):支持源 Redis 和目的 Redis 的数据同步,仅支持全量迁移。采用scan和restore命令进行迁移,支持不同云厂商不同redis版本的迁移。阿里云的redis cluster 默认是proxy 代理模式, 不支持增量迁移。和开发沟通,业务不需要增量迁移,增量数据可以忽略。
2024-01-11 11:37:20
600
原创 数据库备份规范
每天备份一次,保留7天的备份,超过7天的备份包括binlog上传到s3存储上。rds 开启 binlog_rows_query_log_events参数,binlog会记录真实执行的sql语句,方便故障排查。redis 缓存后端要有MySQL数据做数据备份,保障在redis故障的时候,可以从MySQL加载数据。一级产品数据备份需要保留1年,二级产品备份需要保留30天,三级产品备份要求7天。根据不通的备份方式,每季度进行一次恢复演练,记录数据大小,恢复时长。redis数据每天备份一次,保留7天。
2024-01-05 17:17:29
633
原创 pipreqs 报错 encoding declaration in Unicode string
【代码】pipreqs 报错 encoding declaration in Unicode string。
2023-12-26 20:33:34
520
原创 pipreqs报错cannot import name __version__
解决方案:指定安装0.4.8版本解决问题。python 版本2.7.16。执行pipreqs 报错。pipreqs 版本。
2023-12-26 20:20:01
629
原创 python生成requirements.txt的方法
pipreqs可以找到当前项目的所有组件及其版本 ,与 pip freeze相比,pipreqs只记录指定项目所依赖的组件,而pip freeze会记录当前python环境下所有安装的组件,会有和项目不相关的组件被记录下来。–force 覆盖当前目录下面的 requirements.txt 文件。所有下载过的包都会生成,有可能有不用的包。
2023-12-26 18:58:08
367
原创 记一次redis内存没满发生key逐出的情况。
当执行客户端Range类操作或大Key收发较慢时,Input buff与Output buff占用的内存会增大,从而影响数据区,甚至会造成内存溢出OOM(Out Of Memory)。启动时较小且相对恒定,该区域由管理数据的Hash内存开销、Repl-buff与aof-buff的内存开销(约32 MB~64 MB)等构成。原因2、可能是link 内存占用比较大,虽然总内存超过了,maxmemory但是,link内存没统计到内存使用率里。Redis总内存 = 链路内存(动态)+ 数据内存+ 管理内存(静态)
2023-12-26 11:44:54
505
原创 redis cluster判断key属于那个分片。
阿里云特有的命令info key 可以查看key属于那个slot,那个分片。判断阿里云 redis cluster,的key属于那个分片。也可以在dms查看。
2023-12-26 11:04:44
637
转载 Chrome或Firefox浏览器对静态资源文件的缓存时长是多久
注意:加了这个标头后,浏览器在请求这个站点的js/css/图片资源时,每次都会重新发起HTTP连接请求,虽然请求的Header里会带上 If-Modified-Since,但是HTTP连接本身也是很耗资源的,所以要根据场景来选择性添加,问题解决很简单,在IIS的站点=》HTTP响应标头里,添加一个Header:Cache-Control,值为no-cache,1、在 2018年12月1号 12点0分1秒到 12点11分59秒,这12分钟内,浏览器不会发起http请求;
2023-12-26 10:26:29
710
原创 数据库巡检检验哪些实例已经不在使用的方案
index_read_max_name,index_bulk_write_max_name 读写的索引名字为空(已经排除es自带’.kibana|.report|.monitoring|.apm-|.security-')max_cluster_index_qps_max,max_cluster_query_qps_max 监控指标没在用的时候也不会为0,因为有集群本身的监控,也会访问集群自带的index,产生请求。加上这两个指标主要为了防止,有的阿里云集群见的太早,接口不支持获取。
2023-12-19 17:01:08
367
原创 一次adb索引下推引起的性能瓶颈
最后分析数据发现,t_id 查询数据的筛选性,不好,查询的数据的太多。关闭t_id 索引下推功能, 性能降低了200ms一下。表的数据大概45亿。
2023-12-08 16:27:05
363
原创 adb分区建议
可以按单shard 100w记录作为参考。select count(*) from information_schema.kepler_meta_shards查询总shard数,然后100w * shard数为分区粒度参考。现在这个实例是64 shard,即可以以大约5kw作为分区参考。5kw以下不分区,分区的话以5kw为分区粒度。
2023-12-08 14:43:30
346
原创 sql语句优化id排序影响索引正确选择
优化起没选择这个索引,走了主键查询,用时14秒,虽然强制使用索引,也可以使用这个索引, 但是需要修改索引。优化器没选择这个索引,是任务走主键可以减少排序,并且只limit 10行数据。添加一下索引, 加上id。优化器选择了 添加了索引,没走主键查询。
2023-12-06 17:50:14
423
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人