bitsCN.com
mysql数据库里,对一个已创建的表进行DDL操作,比如说添加一个字段。在做测试时,发现ddl操作的时间特别的长。oracle里,通常情况下只是修改数据字典就可以了,操作时间非常的短,阻塞DML的时间也比较短。mysql数据库对表进行ddl操作跟oracle数据库有很大的不同,它先要把原表拷贝一份到临时表,这期间不阻塞select,阻塞所有的更改操作(update,delete,insert),对临时表ddl操作完成,删除原表,重命名临时表。
如果一张比较大的表进行ddl变更,比如说40G,那拷贝的时间让人无法忍受,并且阻塞所有的DML操作,让业务无法继续。
以下是测试过程:
mysql> desc t1;
-------------- ------------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
-------------- ------------- ------ ----- --------- -------
| id | int(11) | YES | MUL | NULL | |
| nick | varchar(32) | YES | | NULL | |
| email | varchar(32) | YES | | NULL | |
| gmt_create | datetime | YES | | NULL | |
| gmt_modified | datetime | YES | | NULL | |
-------------- ------------- ------ ----- --------- -------
mysql> select count(*) from t1;
----------
| count(*) |
----------
| 2228017 |
----------
1 row in set (1.78 sec)
现在对它进行表结构变更,增加一列:
mysql> alter table t1 add(tel varchar(20));
Query OK, 2304923 rows affected (41.03 sec)
Records: 2304923 Duplicates: 0 Warnings: 0
在上述表结构变更过程中,启动另外一个会话,进行select查询操作和一个更新操作:
mysql> select count(*) from t1;
----------
| count(*) |
----------
| 2304923 |
----------
1 row in set (2.10 sec)
mysql> select * from t1 limit 10;
------ ------- ------------------ --------------------- ---------------------
| id | nick | email | gmt_create | gmt_modified |
------ ------- ------------------ --------------------- ---------------------
| 0 | nick0 | nick0@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 1 | nick1 | nick1@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 2 | nick2 | nick2@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 3 | nick3 | nick3@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 4 | nick4 | nick4@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 5 | nick5 | nick5@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 6 | nick6 | nick6@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 7 | nick7 | nick7@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 8 | nick8 | nick8@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
| 9 | nick9 | nick9@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |
------ ------- ------------------ --------------------- ---------------------
10 rows in set (0.00 sec)
mysql> update t1 set nick='test_nick' where id=1;
Query OK, 4 rows affected (43.89 sec) --这里是阻塞的时间
Rows matched: 4 Changed: 4 Warnings: 0bitsCN.com

linux可以重置系统时间,其重置方法是:1、使用date命令查看时间;2、使用“yum install ntp”命令安装ntp;3、通过“ntpdate -u ntp.api.bz”命令实现网络时间同步即可。

近年来,Go语言已经成为了越来越多开发者的选择。但是,相比其他编程语言而言,Go语言的编译速度却不够快。很多开发者在编译Go程序时都会遇到这样的问题:为什么我的Go程序需要更长时间来编译?本文将会从几个方面探讨这个问题。Go语言的编译器架构Go语言的编译器架构采用的是三阶段设计,分别是前端、中间层和后端。前端负责将源代码翻译成Go语言的中间代码,中间层则将中

php实现时间把时分秒去掉的方法:1、创建一个php示例文件;2、使用strtotime函数将日期时间转换为时间戳;3、通过date函数对日期或时间进行格式化即可去掉时分秒。

Linux文件时间查看技巧详解在Linux系统中,文件的时间信息对于文件管理和跟踪变更非常重要。Linux系统通过三种主要时间属性来记录文件的变更信息,分别是访问时间(atime)、修改时间(mtime)和更改时间(ctime)。本文将详细介绍如何查看和管理这些文件时间信息,并提供具体的代码示例。1.查看文件时间信息通过使用ls命令结合参数-l可以列出文

如何使用Python中的时间和日期模块导言:在编程中,处理时间和日期是非常常见的任务。Python提供了强大的时间和日期模块,使得处理时间和日期的操作变得更加简单和方便。本文将介绍Python中的时间和日期模块,并提供具体的代码示例,帮助读者更好地理解和应用它们。一、引入时间和日期模块Python内置的时间和日期模块是datetime模块,我们需要先引入该模

许多用户不太清楚该怎么调整gshock手表的时间,整体的方法还是比较简单的,下面就给大家具体介绍一下gshock手表的调整的方法,不知道该怎么操作的用户可以参考一下。gshock手表怎么调时间1、首先按照ABCD把这几个按键给标注出来。A键:可以理解成退出键,一般是和C键一起用的。B键和D键可以理解成:加减键,也就是调节的键,比如现在是13点,调整到14点就按一下D键。C键是模式键,按一下就可以切换模式,一般手表的模式键都是在左下角的,会有mode这个英文。操作方法1、首先我们需要把手表调整到计

PHP数据过滤:处理日期和时间输入概述:在开发网页应用程序时,经常需要处理用户输入的日期和时间数据。由于用户的输入可能存在各种格式和错误,因此必须进行有效的数据过滤和验证,以确保数据的准确性和安全性。本文将介绍如何使用PHP来处理日期和时间输入,并提供相应的代码示例。过滤和验证原则:在处理日期和时间输入之前,首先需要确定相应的过滤和验证原则。以下是一些常见的

电脑时间不准校正后还是不准在日常使用电脑的过程中,我们可能会遇到一个非常常见的问题,那就是电脑时间不准确。虽然我们可以通过校正电脑时间来解决这个问题,但有时即使校正过后,电脑的时间依然不准确。究竟是什么原因导致了电脑时间的不准确呢?首先,让我们了解一下电脑时间的来源。大部分电脑的时间都是通过连接互联网时自动同步网络时间服务器来获取的。这些时间服务器会与原子钟


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3汉化版
中文版,非常好用

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版
视觉化网页开发工具