前言: 很早就听说 MySQL8.0 支持快速加列,可以实现大表秒级加字段.笔者自己本地也有8.0环境,但一直未进行测试.本篇文章我们就一起来看下 MySQL8.0 快速加列到底要如何操作. 1.了解背景信息 表结构的变更是业务运行过程中比较常见的需求之一,在 MySQL 的环境中,可以使用 Alter 语句来完成这些操作,这些 Alter 语句对应的操作通常也称之为 DDL 操作.通常情况下大表的 DDL 操作都会对业务有很明显的影响,需要在业务空闲,或者是维护的时候做.MySQL 5.7 支…
问题重现 select id from big_table where name = 'sdlkfjalksdjfla' limit 100; 首先看执行计划: hive> explain select * from big_table where name = 'sdlkfjalksdjfla' limit 100; OK STAGE DEPENDENCIES: Stage-0 is a root stage STAGE PLANS: Stage: Stage-0     Fetch Oper…
今天收到运营同学的一个 SQL,有点复杂,尤其是这个 SQL explain 都很长时间执行不出来,于是我们后台团队帮忙解决这个 SQL 问题,却正好发现了一个隐藏很深的线上问题. select a.share_code, a.generated_time, a.share_user_id, b.user_count, b.order_count, a.share_order_id, b.rewarded_amount from t_risk_share_code a, (select coun…
今天遇到这个问题了.简单的增加语句,默认SQLPLUS执行,却会超时. 要增加客户端的TIMEOUT时间才可以解决.(感觉超过两三分钟,默认超时30秒) 另外, 也可以用两步操作(1,增加字段,2,修改默认值),或是加以NOT NULL参数. 参考URL: http://blog.csdn.net/mikean/article/details/24872955 http://blog.csdn.net/weiwangsisoftstone/article/details/7674916 类似语句…
如果PDM直接导出脚本的话,所有的表和字段都会被加上双引号,非常不方便,去除双引号的办法: Database->Edit Current DBMS在弹出窗体中第一项General中找到 Script->Sql->Format->CaseSensitivityUsingQuote中,选择NO即可.…
查看当前系统版本的详细信息 # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) yum源下载 地址:https://dev.mysql.com/downloads/repo/yum/ 下载地址:https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm 下载完成后使用yum命令本地安装yum源 # yum localinstall mysql80-c…
最近一个统计系统的大表需要加字段,表的引擎是myisam,表大小在3亿,物理文件在106G.想想都蛋疼.那么这种情况下怎么把字段撸上去呢? 1. 首先想到了<高性能MySQL>提到的直接更改表结构文件(frm),但是在经过测试以后,发现提示表损坏了,需要repair,只好放弃了. 2. 使用pt-online-schema-change,刚开始跑没有问题,后面在凌晨发现影响业务了,也只好放弃了. 3. 最近GitHub开源的gh-ost,属于新鲜玩意,还没有研究,只好放弃. 4. 创建新表,l…
概述 表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持.最常使用的MYISAM与INNODB都支持表级锁定.表级锁定分为表共享读锁(共享锁)与表独占写锁(排他锁). 特点:开销小,加锁快:不会出现死锁:锁定粒度大,发出锁冲突的概率最高,并发度最低. MySQL 中表级锁有两种:一种是表锁,另一种是元数据锁(meta data lock, MDL). 表锁 表锁的语法是 lock tables...read/write.与…
目录 MySQL发展历程 MySQL8.0新特性 秒级加列 性能提升 文档数据库 SQL增强 共用表表达式(CTEs) 不可见索引(Invisible Indexes) 降序索引(Descending Indexes) 函数索引 (Functional Indexes) 默认字符集为utf8mb4 一致性查询改进(Better Handling of Hot Rows) 资源组(Resource Groups) 新的数据字典 MGR增强 安全增强 复制增强 实例克隆 全局变量持久化 其它特性 M…
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用TINYINT.SMALLINT.MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED VARCHAR的…