- 博客(92)
- 收藏
- 关注
原创 mysql sql语句orderby,groupby优化
1、优化sql ,问题sql是一个分页查询。实际只需要取10行,从rds负载和sql来看,扫描了很多行,说明走错了sql,走了排序字段索引;这个是5.7的优化器行为;可以通过参数进行优化。
2025-03-27 14:30:25
190
原创 es扩容节点以后写入数据量增加1倍
这个索引记录的是 节点的状态 统计了每个节点 索引数 查询情况 资源使用情况等等很多的数据 节点多 shard 多 数据量就大, 不需要禁止掉。es扩容一倍的数据节点以后 写入数据量增加1倍。业务反馈业务访问量没增加。禁止以后qps就降低了。配置监控数据只保留1天。
2025-03-12 13:30:21
472
原创 es 慢查询引起 cpu报警处理方法
查看任务详情,id要是父节点。2、设置全局的搜索timeout。1、查询语句配置超时时间。分析执行时间长的语句。
2025-03-06 23:33:11
311
原创 elasticsearch 备份恢复步骤
5、恢复备份的方法,恢复之前关闭索引(如果是增量恢复),或者清空索引数据。如果需要把备份备份到自定义仓库中,以oss为例子,创建方法。返回, 仓库名是aliyun_auto_snapshot。如果是增量恢复关闭索引的方法。2、查看当前备份文件。
2025-02-14 01:35:02
340
原创 redis监控会不会统计lua里面执行的命令次数
执行一次lua 脚本, 虽然内部对数据库操作了1w次, 但是从redis 监控上看只是执行了一次lua脚本, lua内部对数据库的1w次不会记录到监控。问题:redis lua里面执行的命令会不会计算到监控的qps中。如果通过monitor观看可以看到。lua 脚本中对数据库操作了1w次。
2025-01-15 16:09:47
424
原创 GEORADIUS在监控上归类是写请求
在字面意思上是读请求, 但是redis 监控把他归类为写请求。GEORADIUS: 查询指定位置附近的其他位置元素。在分析问题的时候避免这个坑。
2025-01-15 15:23:52
138
原创 es,单个节点磁盘使用率高
超过95%,系统会对阿里云Elasticsearch集群中的每个索引强制设置read_only_allow_delete属性,此时索引将无法写入数据,只能读取和删除对应索引。单个节点分片过多导致的磁盘使用率高87,目前以及自动触发均衡机制(磁盘使用率超过90)恢复正常,es自己做了均衡分配恢复正常。超过90%,阿里云Elasticsearch会尝试将对应节点中的分片迁移到其他磁盘使用率比较低的数据节点中。磁盘使用率不均匀,一般是因为存在大分片,分片数和机器数不匹配引起的。这次出现的问题排除了,分片问题。
2025-01-14 20:02:04
482
原创 clickhouse query_log字段解析
开发遇到插入分布表,等待30秒以后,才能查询出来数据,可以通过这种方式,分析插入分布试表和本地的时间差。数据插入到本地表才能看到数据。标识一个请求query的id,插入分布试表和本地表的一样。类似traceid,可以通过查询这个字段相同的数据,分析一条插入请求。
2025-01-13 10:35:28
108
原创 es 单个节点cpu过高
是因为节点没有做fullgc,导致jvm中引用增多没有释放,会导致cpu使用率升高。后台手动执行fullgc后,节点cpu恢复正常。建议对集群其他节点也做下fullgc。观察这个节点的jvm使用率比较高,怀疑是jvm内存没释放导致内存寻址效率低,引起cpu过高。es 单个节点cpu一直持续很高,其它节点cpu不高。解决方法:手动执行fullgc,使用jmap分析线程jvm。
2025-01-08 18:15:52
504
原创 clickhouse query_log 常用查询语句
3、查询某一段时间内指定sql类型的执行次数分布。查看某一段时间内sql执行类型的分布。查看某一类型语句指定时间内平均执行时间。1、查询一段时间耗时超过3秒的语句。查看相同语句再不同节点的执行速度。2、查询一段时间报错的语句。
2025-01-03 17:21:30
682
原创 clickhouse写分布式表,等一段时间才能看到数据。
distributed_directory_monitor_batch_inserts改为0 解决问题。背景:开发反馈insert 插入分布式表,等1分钟左右,才能看到数据。方法2、直接写本地表。原因写分布式表是异步的方式写本地表。查看所有分布表的所有参数。
2025-01-03 15:42:31
618
原创 MySQl io相关优化
2、调整innodb_io_capacity和innodb_io_max_capacity参数,分别调整到50000和100000。1、将innodb_page_cleaners参数从8调整到16,同时将innodb_buffer_pool_instances参数也调整到16。【原因分析】刷脏数据慢导致实例hang,进而引发HA切换,innodb_page_cleaners参数不足,导致刷脏线程不足。3、将innodb_lru_scan_depth参数调整到20000。4、将redo日志大小修改为12G。
2024-12-27 15:43:53
288
原创 Mysql修改字符集
1、转换字符集的命令是不是 alter table t2 convert to character set utf8mb4;3、 最好再看下此表所有列是不是都是utf8字符集,有些其他字符集或binary转成utf8mb4有可能产生乱码。2、因为这个命令会锁表,应该使用dms的无锁变更。修改表的字符集为utf8mb4。4、测试环境做好验证测试。开发反馈插入数据报错。
2024-11-25 14:33:16
240
原创 MySQL OnlineDDL添加字段
DDL操作执行时需要修改表的元数据(metadata),有可能会遇到等待表元数据锁的情况(waiting for table metadata lock),该情况的处理方式请参见解决MDL锁导致无法操作数据库的问题。但即使DDL支持Inplace选项,某些操作在整个执行过程中也会部分涉及到Copy Table,例如上表中的添加列操作。是否需要Copy Table:对应DDL语句的Algorithm选项,通过Copy Table的方式执行DDL。DDL执行期间会占用更大的磁盘空间和消耗更多的I/O。
2024-11-07 14:52:55
374
原创 es 数据清理delete_by_query
wait_for_completion=false 放后台执行。conflicts=proceed 遇到冲突继续执行。slices=36 一共的副本数量 主和副本总数。scroll_size=2000 分批的数量。通过调整这个两个参数控制性能和es压力。
2024-11-05 15:31:45
712
原创 python format变量里有大括号报错
因为format自己用大括号{}作为占位符,如果字符串里本身有大括号,就是用两个大括号,所以应该改成这样。本来想给all赋值为aa。
2024-06-25 19:52:17
340
原创 redis和mysql数据一致性方案
场景:先删除Redis,再更新 MySQL,不主动更新Redis,访问redis 没有数据,再访问MySQL 把数据回写到Redis。在高并发情况下,如果请求 A 在更新MySQL 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。在高并发情况下,如果请求 A 在写 Redis 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。对于上面这种情况,对于第一次查询,请求 B 查询的数据是 10,但是 MySQL 的数据是 11,对数据一致性比较敏感的服务可以采用这个方案。
2024-04-25 20:04:40
587
原创 clickhouse ttl不生效
是因为删除数据速度 赶不上插入数据速度,造成历史数据无法被清理。通过 partition 字段查找 需要删除的分区。日志保留31天, 但是发现1年前的数据还有。TTL 删除数据按照 分区时间删除。历史使用通过删除分区的方式删除。加速删除数据的速度。
2024-04-18 22:04:40
1067
1
原创 clickhouse 查询group 分组最大值的一行数据。
但文档又做了说明:因为查询可能是以任意顺序执行的,并且可能每次执行得顺序都不同(如同我们上面的select * from user_order返回的行顺序不同),所以这个函数的执行结果可能是不确定的。或者,select的对象的是一个已经排序过的子查询。使用any函数可以去匹配到的第一行数据,所以可以先让数据按照query_time_ms 排序,然后再使用group by 和any结合取第一行数据,就是最大值的那一行数据。窗体函数在数据量大的时候性能堪忧,在clickhouse中还有其他的处理方式。
2024-03-29 11:56:33
1194
原创 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
1563
原创 neo4j相同查询语句一次查询特慢再次查询比较快。
profile查看真实的执行过程。explain 可以查看预估的计划任务。dbms.memory.pagecache.size=30g 原来是2G。neo4j相同查询语句一次查询特慢再次查询比较快。分析服务器监控, cpu 磁盘压力比较高。过滤行数最多才16行,理论不应该慢。尝试升级服务器配置到64G。修改neo4j 内存配置。
2024-03-27 15:58:58
537
原创 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
561
原创 手机号是用bigint还是用varchar存储
bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。19位数字对于无符号 BIGINT 类型,取值范围为 0 到 18446744073709551615。20位数字。int一个正常大小整数。
2024-03-20 10:27:35
1172
原创 python多进程调用class类遇到的坑
python 多进程调用 类的自定义函数run() 加括号,会使多进程功能失效,变成穿行执行的程序。可以实现python 调用class类的多进程功能。系统:macOS Ventura 13.0.1。发现,调用的test.run 函数没运行。测试3 用的方法满足需求。
2024-03-19 10:36:23
510
原创 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
1212
原创 python mysql语句中有单引号执行的报错处理方式
解决方案 使用cur.execute(insert_sql, sql_info) 的方式格式化sql语句。用python format 拼装sql语句,发现 带单引号的sql 语句,转换为 类似下面的语句执行的时候报错。format 格式化sql 代码。
2024-03-12 18:44:54
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人