[Mysql]一张1000W条记录的表中,修改表结构,为一个enum字段增加一个值,需要多久时间?
Mysql5.5 表为InnoDB,字段为名为type
,为普通字段,不被包含在任何索引/主键中。
type
字段本来拥有两个值 'a' , 'b' ,我现在要为其加上值 'c' ,于是有了修改语句:
<code>ALTER TABLE `table` MODIFY COLUMN `type` enum('a','b','c'); </code>
我现在想知道我执行上面这条语句大约要消耗多久的时间?
我主要是想知道因为该字段不涉及索引,修改所消耗的时间跟该表的1000w记录有关系吗
大家帮我预估一下,我好有个停机时间的计划准备,谢谢!
回复内容:
Mysql5.5 表为InnoDB,字段为名为type
,为普通字段,不被包含在任何索引/主键中。
type
字段本来拥有两个值 'a' , 'b' ,我现在要为其加上值 'c' ,于是有了修改语句:
<code>ALTER TABLE `table` MODIFY COLUMN `type` enum('a','b','c'); </code>
我现在想知道我执行上面这条语句大约要消耗多久的时间?
我主要是想知道因为该字段不涉及索引,修改所消耗的时间跟该表的1000w记录有关系吗
大家帮我预估一下,我好有个停机时间的计划准备,谢谢!
最近在看高性能mysql(第三版),里面讲到了这个。 modify column会导致重建表(内部实现是建一个最新结构的表,然后导入数据,然后删除旧表,重命名新表为旧表名),所以会比较慢 使用alter table xxx alter column 则是直接修改.frm文件所以会很快。跟表数据有多少无关。
另一个做法其实原理一样,都是修改.frm文件: 1.创建一个新机构的新表 2.flush tables with read lock.关闭正在使用的表,并且禁止任何表被打开。 3.交换.frm文件 4.unlock tables释放第二步的锁。
最近几晚上看的,没亲自试过,话说我也该去测试下了
<code>static long getAlterTable(){ if(数据库没备份){ do备份 getAlterTable(); }else{ return test alter table time } }; </code>
可以看下percona的在线修改表结构。支持在线修改。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

Composer는 PHP의 종속성 관리 도구이며 Composer.json 파일을 통해 프로젝트 종속성을 관리합니다. 1) 종속성 정보를 얻기 위해 Composer.json을 구문 분석합니다. 2) 종속성 트리를 형성하기위한 종속성; 3) Packagist에서 공급 업체 디렉토리로 종속성을 다운로드하여 설치합니다. 4) Composer.Lock 파일을 생성하여 팀 일관성 및 프로젝트 유지 관리 가능성을 보장하기 위해 종속성 버전을 잠그십시오.

MySQL이 다양한 프로젝트에서 널리 사용되는 이유에는 다음이 포함됩니다. 1. 고성능 및 확장 성, 여러 스토리지 엔진을 지원합니다. 2. 사용 및 유지 관리, 간단한 구성 및 풍부한 도구; 3. 많은 지역 사회 및 타사 도구 지원을 유치하는 풍부한 생태계; 4. 여러 운영 체제에 적합한 크로스 플랫폼 지원.

Java는 크로스 서버 웹 응용 프로그램을 개발하는 데 적합합니다. 1) Java의 "Write Once, Run Everywhere"철학은 JVM을 지원하는 모든 플랫폼에서 코드를 실행합니다. 2) Java는 Spring 및 Hibernate와 같은 도구를 포함하여 개발 프로세스를 단순화하는 풍부한 생태계를 가지고 있습니다. 3) Java는 성능 및 보안에서 훌륭하게 성능을 발휘하여 효율적인 메모리 관리 및 강력한 보안 보증을 제공합니다.

LinuxisIdealforcustomization, 개발 및 서버 관리, WhilewsexCelsineaseofus, SoftWareCatibility, andgaming.linuxoffershighconfigerabilityfordevelopersandserverseTups, WewindowsprovideAuser-friderfaceandswarespport

Linux는 단순성, 모듈성 및 개방성을 강조하는 Unix 기반의 멀티 태스킹 운영 시스템입니다. 핵심 기능에는 다음이 포함됩니다. 파일 시스템 : 트리 구조로 구성되고 Ext4, XFS, BTRFS와 같은 여러 파일 시스템을 지원하고 DF-T를 사용하여 파일 시스템 유형을 봅니다. 프로세스 관리 : PS 명령을 통해 프로세스를보고 우선 순위 설정 및 신호 처리가 포함 된 PID를 사용하여 프로세스를 관리합니다. 네트워크 구성 : IP 주소의 유연한 설정 및 네트워크 서비스 관리 및 sudoipaddradd를 사용하여 IP를 구성합니다. 이러한 기능은 기본 명령 및 고급 스크립트 자동화를 통해 실제 작업에 적용되어 효율성을 향상시키고 오류를 줄입니다.

javaplaysaSignificantroleiniotduetoitsplatformincentence.1) itallowscodetobewrittenonceandevices.2) java'secosystemprovidesusefullibrariesforiot.3) itssecurityfeaturesenhanceiotiotsystemsafety.hormormory.hormory.hustupletety.houghmormory

Java'splatforminccendenceallowsapplicationStorunonAnyAnyOperatingSystemwithajvm.1) SingleCodeBase : writeAndCompileOnceforAllPlatforms.2) EasyUpdates : UpdateByTeCodeForsimultiancodeporsimultiancomeDeployment.3) 시험 효율성 : westernoneplatformforunivor.4) Scalab
