随笔分类 -  MySQL Table

摘要:检查当前实例是否有外键/视图/触发器/事件等 ## 检查非系统数据库外视图 SELECT * FROM information_schema.views WHERE TABLE_SCHEMA NOT IN('information_schema','sys','performance_schema' 阅读全文
posted @ 2020-06-29 19:53 TeyGao 阅读(243) 评论(0) 推荐(0) 编辑
摘要:数据库表空间 独立表空间 在MySQL 5.6 中引入独立表空间的概念,启用独立表空间后,每个表将生成独立的文件来进行存储。 创建表时可以指定表存放的文件路径 共享表空间优缺点 独立表空间优缺点 阅读全文
posted @ 2019-08-18 19:47 TeyGao 阅读(653) 评论(0) 推荐(0) 编辑
摘要:主键索引维护 1、新增主键索引 2、删除主键索引 3、删除并新增主键索引 4、修改主键列类型 二级索引维护 1、新增二级索引 2、删除二级索引 3、修改二级索引名 4、修改二级索引列类型 自增属性修改 1、修改普通主键列为自增主键列 2、修改自增主键列为普通主键列 3、修改表自增开始值 列属性修改 阅读全文
posted @ 2019-07-12 17:58 TeyGao 阅读(1804) 评论(0) 推荐(0) 编辑
摘要:FIC(Fast index creation)特性在MySQL 5.5版本中引入FIC(Fast index creation)特性,创建索引时无需再拷贝整表数据,以提升索引的创建速度。 FCI 操作流程:(1)对表加共享S锁,允许其他会话读操作,但禁止写操作,(2)扫描Cluster index 阅读全文
posted @ 2019-05-24 11:17 TeyGao 阅读(927) 评论(0) 推荐(0) 编辑
摘要:在MySQL 5.5/5.6/5.7版本中,DDL操作是非原子型操作,在执行过程中遇到实例故障重启,可能导致DDL没有完成也没有回滚。如 1、执行DROP TABLE T1,T2操作,实例重启恢复后,表T1被删除,表T2仍存在。 2、执行CREATE TABLE操作,创建过程中实例重启,表创建失败但 阅读全文
posted @ 2019-03-27 21:12 TeyGao 阅读(490) 评论(0) 推荐(0) 编辑
摘要:MySQL 5.5版本 在MySQL 5.5版本前,所有DDL操作都使用Copy Table的方式完成,操作过程中原表数据库不允许写入,只能读取,在MySQL 5.5版本中引入FIC(Fast index creation)特性。 FCI特性: 在MySQL 5.6.7版本前,DDL操作主要有cop 阅读全文
posted @ 2019-02-17 22:24 TeyGao 阅读(845) 评论(0) 推荐(0) 编辑
摘要:可以用show table status 来查看表的信息,如: show table status like '%waybill5%' \G 但使用information_schema.`TABLES`更方便查看。 查看数据库级别的使用情况 SELECT TABLE_SCHEMA AS databa 阅读全文
posted @ 2019-02-17 12:34 TeyGao 阅读(4159) 评论(0) 推荐(1) 编辑
摘要:在MySQL中,可以通过lower_case_table_names参数来设置是否区分表名大小写问题,参数有效取值为:0,1,2:0表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,MySQL 内部对表名的比较也是区分大小写的;1表示,表在文件系统存储的时候,对应的文件名都小写的 阅读全文
posted @ 2019-02-17 12:10 TeyGao 阅读(802) 评论(0) 推荐(0) 编辑
摘要:MySQL 5.5版本DDL在MySQL 5.6.7版本前,DDL操作主要有copy和inplace两种方式,两种方式全程都需要锁表禁止写操作,允许部分时间段的读操作。copy方式: (1)新建带索引的临时表 (2)锁原表,禁止DML,允许查询 (3)将原表数据拷贝到临时表(无排序,一行一行拷贝) 阅读全文
posted @ 2019-02-17 12:06 TeyGao 阅读(336) 评论(0) 推荐(0) 编辑
摘要:MySQL可以使用MODIFY COLUMN / ALTER COLUMN / CHANGE三种方式修改列属性。 对于部分只需要修改表定义而不需要修改表数据的操作,使用ALTER COLUMN操作可以避免数据发生移动,提高ALTER 操作效率。 仅需要修改表结构的操作有:1、更改字段的默认值2、增加 阅读全文
posted @ 2019-02-17 11:57 TeyGao 阅读(42354) 评论(0) 推荐(3) 编辑
摘要:##========================================================================## ## 修改表字段 ## CHANGE和MODIFY区别在于CHANGE 可以修改列名,而MODIFY不可以,其他修改一样 ALTER TABLE [TABLE_NAME] CHANGE [COLUMN] old_col_name new_co... 阅读全文
posted @ 2019-02-17 11:05 TeyGao 阅读(479) 评论(0) 推荐(0) 编辑
摘要:##=============================================## ## 在创建表的时候为字段添加注释 ## CREATE TABLE TB003 ( ID INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', C1 INT COMMENT 'C1列' )ENGINE=InnoDB DEFAULT CHARSET=utf... 阅读全文
posted @ 2019-02-17 11:03 TeyGao 阅读(10097) 评论(0) 推荐(0) 编辑
摘要:##================================## ## 修改表的存储引擎 ## SHOW TABLE STATUS LIKE 'TB_001' \G; ALTER TABLE TB_001 TYPE = MYISAM; ##================================## ## 查看表中列属性 ## SHOW COLUMNS FROM TB_001... 阅读全文
posted @ 2019-02-17 11:00 TeyGao 阅读(332) 评论(0) 推荐(0) 编辑
摘要:DROP TABLE与MySQL版本 MySQL在5.5版本中引入自适应hash索引,用于提升经常访问的数据页的性能,在删除表时,需要先通过扫描LRU链表找到该表在自适应hash索引使用的数据页,将这些数据从自适应hash索引中删除。如果为MySQL实例配置较多的物理内存,扫描自适应hash索引的L 阅读全文
posted @ 2019-02-17 10:57 TeyGao 阅读(497) 评论(0) 推荐(0) 编辑
摘要:ALTER TABLE 和FLUSH TABLE导致的间接等待 场景:1、会话A执行耗时较长的操作;2、会话B执行ALTER TABLE 或FLUSH TABLES等操作时,会向其他会话(线程)发送表变更通知,要求其他会话关闭再重新打开相关表;3、会话A执行过程中收到会话B的变更通知,在会话A执行结 阅读全文
posted @ 2019-02-17 10:55 TeyGao 阅读(1032) 评论(0) 推荐(0) 编辑
摘要:操作方式 在操作系统层对要删除的表添加硬连接 ln demo_table.ibd demo_table.ibd.bak 在MySQL实例上执行DROP TABLE命令 DROP TABLE demo_table; 使用TRUNCATE命令批量删除大文件 ## 设置truncate命令路径 trunc 阅读全文
posted @ 2019-02-17 10:52 TeyGao 阅读(2165) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示