Mysql修改字符集 1、转换字符集的命令是不是 alter table t2 convert to character set utf8mb4;3、 最好再看下此表所有列是不是都是utf8字符集,有些其他字符集或binary转成utf8mb4有可能产生乱码。2、因为这个命令会锁表,应该使用dms的无锁变更。修改表的字符集为utf8mb4。4、测试环境做好验证测试。开发反馈插入数据报错。
MySQL OnlineDDL添加字段 DDL操作执行时需要修改表的元数据(metadata),有可能会遇到等待表元数据锁的情况(waiting for table metadata lock),该情况的处理方式请参见解决MDL锁导致无法操作数据库的问题。但即使DDL支持Inplace选项,某些操作在整个执行过程中也会部分涉及到Copy Table,例如上表中的添加列操作。是否需要Copy Table:对应DDL语句的Algorithm选项,通过Copy Table的方式执行DDL。DDL执行期间会占用更大的磁盘空间和消耗更多的I/O。
es 数据清理delete_by_query wait_for_completion=false 放后台执行。conflicts=proceed 遇到冲突继续执行。slices=36 一共的副本数量 主和副本总数。scroll_size=2000 分批的数量。通过调整这个两个参数控制性能和es压力。
redis和mysql数据一致性方案 场景:先删除Redis,再更新 MySQL,不主动更新Redis,访问redis 没有数据,再访问MySQL 把数据回写到Redis。在高并发情况下,如果请求 A 在更新MySQL 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。在高并发情况下,如果请求 A 在写 Redis 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。对于上面这种情况,对于第一次查询,请求 B 查询的数据是 10,但是 MySQL 的数据是 11,对数据一致性比较敏感的服务可以采用这个方案。
clickhouse ttl不生效 是因为删除数据速度 赶不上插入数据速度,造成历史数据无法被清理。通过 partition 字段查找 需要删除的分区。日志保留31天, 但是发现1年前的数据还有。TTL 删除数据按照 分区时间删除。历史使用通过删除分区的方式删除。加速删除数据的速度。
clickhouse 查询group 分组最大值的一行数据。 但文档又做了说明:因为查询可能是以任意顺序执行的,并且可能每次执行得顺序都不同(如同我们上面的select * from user_order返回的行顺序不同),所以这个函数的执行结果可能是不确定的。或者,select的对象的是一个已经排序过的子查询。使用any函数可以去匹配到的第一行数据,所以可以先让数据按照query_time_ms 排序,然后再使用group by 和any结合取第一行数据,就是最大值的那一行数据。窗体函数在数据量大的时候性能堪忧,在clickhouse中还有其他的处理方式。
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
neo4j相同查询语句一次查询特慢再次查询比较快。 profile查看真实的执行过程。explain 可以查看预估的计划任务。dbms.memory.pagecache.size=30g 原来是2G。neo4j相同查询语句一次查询特慢再次查询比较快。分析服务器监控, cpu 磁盘压力比较高。过滤行数最多才16行,理论不应该慢。尝试升级服务器配置到64G。修改neo4j 内存配置。
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。
手机号是用bigint还是用varchar存储 bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。19位数字对于无符号 BIGINT 类型,取值范围为 0 到 18446744073709551615。20位数字。int一个正常大小整数。
python多进程调用class类遇到的坑 python 多进程调用 类的自定义函数run() 加括号,会使多进程功能失效,变成穿行执行的程序。可以实现python 调用class类的多进程功能。系统:macOS Ventura 13.0.1。发现,调用的test.run 函数没运行。测试3 用的方法满足需求。
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字段的时候,报错。
python mysql语句中有单引号执行的报错处理方式 解决方案 使用cur.execute(insert_sql, sql_info) 的方式格式化sql语句。用python format 拼装sql语句,发现 带单引号的sql 语句,转换为 类似下面的语句执行的时候报错。format 格式化sql 代码。