MySQL 创建触发器引起的元数据锁
同事反映,在主库使用pt-online-schema-change工具修改字段长度时,引起三个从库中的一个从库产生了元数据锁,此时一个创建触发器的语句在等待获取元数据(Waiting for table metadata lock)。 pt-online-schema-change执行时,会创建三个触发器,用于数据同步,分别是insert、update、delete触发器。 同事在描述问题时,我脑
Read more同事反映,在主库使用pt-online-schema-change工具修改字段长度时,引起三个从库中的一个从库产生了元数据锁,此时一个创建触发器的语句在等待获取元数据(Waiting for table metadata lock)。 pt-online-schema-change执行时,会创建三个触发器,用于数据同步,分别是insert、update、delete触发器。 同事在描述问题时,我脑
Read more问题描述 下面这个SQL,应该走where的索引 idx_iv_pid,包含 id_value 、parent_id 两列。 但是,走的是排序列 add_time的索引add_time_idx。从而SQL执行速度慢。 但是,但是! add_time_idx 并不在“possible_keys”里。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mysql>desc SELECT * FROM `ecs_ugo_comment` WHERE id_value = 23613 AND comment_type IN (0, 3) AND STATUS = 1 AND parent_id = 0 ORDER BY add_time DESC LIMIT 1 +--------------+-----------------+-----------------+---------+--------------------------------------------+---------------+-------------------+----------+----------------+-----------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +--------------+-----------------+-----------------+---------+--------------------------------------------+---------------+-------------------+----------+----------------+-----------------+ | 1 | SIMPLE | ecs_ugo_comment | index | parent_id,id_value,idx_iv_at_ac,idx_iv_pid | add_time_idx | 4 | | 1601 | Using where | +--------------+-----------------+-----------------+---------+--------------------------------------------+---------------+-------------------+----------+----------------+-----------------+ 返回行数: [1], 耗时: [52ms] |
SQL真实执行时间为 1202ms
Read more1.innodb_ruby 是什么 innodb_ruby是jeremycole的一个用于分析Innodb相关结构的一个程序,也是非常方便我们研究Innodb的结构工具。 用于研究InnoDB的结构,比如叶子数量、非叶子节点数量、填充因子、B+树高度。 不推荐在生产使用。 github 地址: https://github.com/jeremycole/innodb_ruby 2.安装ruby 版
Read more当RMAN中开启控制文件自动备份时,有两种情况自动触发备份控制文件。
|
1 2 |
CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/database/backup/data/arc_20200911/spfile_%F'; # 最好配置路径,如果不写路径,控制文件默认备份到 $ORACLE_HOME/dbs目录下 |
情况1: rman备份成功后,自动备份控制文件。 情况2: 在开启归档模式后,如果执行增加表空间、添加数据文件、redo logs等改变了数据库结构的行为,都会触发自动备份控制文件的操作。 注意,添加数据文件后,并不会立即触发自动备份控制文件,而是要等待10分钟左
Read more公司的一台Oracle备库ADG(11.2.0.4)alert.log中出现大量ORA-01555错误。 查看系统视图都会出现ORA-01555
|
1 2 3 4 5 6 |
SQL> select * from v$archive_gap; select * from v$archive_gap * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 3 ORA-01555: snapshot too old: rollback segment number 347 with name "_SYSSMU347_4236294198$" too small |
在网上找到了这篇mos。这个bug 影响版本是11.2.0.2到12.1(不含)。不过这个bug在11.2.0.4没有修复。只能升级解决。 问题发生原因: 当获取一个 lib
Read moreMySQL修改字段默认值的三种方法 1、使用 pt-online-schema-change 工具,通过创建新表,修改字段默认值,copy原表数据到新表,最后将新表rename原表。 成本高,基本对业务无影响。 2、alter table table_name modify column_name default ‘xxx’; 成本很高,等于将原表复制一遍。业务影响大。 3
Read more在MySQL中IP地址可以使用varchar字段类型存储,但是若查找某个IP区间的IP地址就很麻烦。 但是通过 INET_ATON() 函数将IP地址转换为数字(二进制数字格式)就能实现IP地址比较的功能。 inet_aton() converts the Internet host address cp from the IPv4 numbers-and-dots notation into b
Read more在数据库中,索引起到查询加速的作用,可以有效提升查询速度以及排序查询效率。但是,如果表上索引过多,会影响插入速度。 我们日常工作中,要日常检查索引是否在使用,不使用的索引要删掉节省空间。 MySQL查找不使用的索引:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT object_type, object_schema, object_name, index_name, count_star, count_read, count_fetch FROM performance_schema.table_io_waits_summary_by_index_usage WHERE index_name IS NOT NULL AND count_star = 0 AND object_schema not in ('mysql') AND index_name <> 'PRIMARY' ORDER BY object_schema, object_name; |