Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php [Mysql]一张1000W条记录的表中,修改表结构,为一个enum字段增加一个值,需要多久时间?

[Mysql]一张1000W条记录的表中,修改表结构,为一个enum字段增加一个值,需要多久时间?

Jun 06, 2016 pm 08:49 PM
java linux mysql php

Mysql5.5 表为InnoDB,字段为名为type,为普通字段,不被包含在任何索引/主键中。

type字段本来拥有两个值 'a' , 'b' ,我现在要为其加上值 'c' ,于是有了修改语句:

<code>ALTER TABLE `table` MODIFY COLUMN `type` enum('a','b','c');
</code>
Salin selepas log masuk
Salin selepas log masuk

我现在想知道我执行上面这条语句大约要消耗多久的时间?

我主要是想知道因为该字段不涉及索引,修改所消耗的时间跟该表的1000w记录有关系吗

大家帮我预估一下,我好有个停机时间的计划准备,谢谢!

回复内容:

Mysql5.5 表为InnoDB,字段为名为type,为普通字段,不被包含在任何索引/主键中。

type字段本来拥有两个值 'a' , 'b' ,我现在要为其加上值 'c' ,于是有了修改语句:

<code>ALTER TABLE `table` MODIFY COLUMN `type` enum('a','b','c');
</code>
Salin selepas log masuk
Salin selepas log masuk

我现在想知道我执行上面这条语句大约要消耗多久的时间?

我主要是想知道因为该字段不涉及索引,修改所消耗的时间跟该表的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>
Salin selepas log masuk

可以看下percona的在线修改表结构。支持在线修改。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1668
14
Tutorial PHP
1273
29
Tutorial C#
1256
24
Apakah kepentingan fungsi session_start ()? Apakah kepentingan fungsi session_start ()? May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Komposer: Pengurus Pakej untuk Pemaju PHP Komposer: Pengurus Pakej untuk Pemaju PHP May 02, 2025 am 12:23 AM

Komposer adalah alat pengurusan ketergantungan untuk PHP, dan menguruskan kebergantungan projek melalui fail komposer.json. 1) parse composer.json untuk mendapatkan maklumat ketergantungan; 2) Mengurangkan kebergantungan untuk membentuk pokok pergantungan; 3) Muat turun dan pasangkan kebergantungan dari Packagist ke Direktori Vendor; 4) Menjana fail komposer.lock untuk mengunci versi ketergantungan untuk memastikan konsistensi pasukan dan kebolehkerjaan projek.

Apakah kelebihan menggunakan MySQL ke atas pangkalan data hubungan lain? Apakah kelebihan menggunakan MySQL ke atas pangkalan data hubungan lain? May 01, 2025 am 12:18 AM

Sebab mengapa MySQL digunakan secara meluas dalam pelbagai projek termasuk: 1. Prestasi tinggi dan skalabilitas, menyokong pelbagai enjin penyimpanan; 2. Mudah untuk digunakan dan mengekalkan, konfigurasi mudah dan alat yang kaya; 3. Ekosistem yang kaya, menarik sejumlah besar sokongan alat komuniti dan pihak ketiga; 4. Sokongan silang platform, sesuai untuk pelbagai sistem operasi.

Apakah kelebihan menggunakan Java untuk aplikasi web yang perlu dijalankan pada pelayan yang berbeza? Apakah kelebihan menggunakan Java untuk aplikasi web yang perlu dijalankan pada pelayan yang berbeza? May 03, 2025 am 12:13 AM

Java sesuai untuk membangunkan aplikasi web cross-server. 1) Falsafah "Tulis Sekali, Di Mana -mana" Java membuat kodnya dijalankan di mana -mana platform yang menyokong JVM. 2) Java mempunyai ekosistem yang kaya, termasuk alat seperti Spring dan Hibernate, untuk memudahkan proses pembangunan. 3) Java melaksanakan dengan baik dalam prestasi dan keselamatan, menyediakan pengurusan memori yang cekap dan jaminan keselamatan yang kuat.

Apakah kes penggunaan biasa untuk Linux berbanding Windows? Apakah kes penggunaan biasa untuk Linux berbanding Windows? May 03, 2025 am 12:01 AM

Linuxisidealforcustomization,development,andservermanagement,whileWindowsexcelsineaseofuse,softwarecompatibility,andgaming.Linuxoffershighconfigurabilityfordevelopersandserversetups,whereasWindowsprovidesauser-friendlyinterfaceandbroadsoftwaresupport

Operasi Linux: Memahami Fungsi Teras Operasi Linux: Memahami Fungsi Teras May 03, 2025 am 12:09 AM

Linux adalah sistem operasi multi-user, pelbagai tugas yang berasaskan UNIX yang menekankan kesederhanaan, modulariti dan keterbukaan. Fungsi terasnya termasuk: Sistem Fail: Dianjurkan dalam struktur pokok, menyokong pelbagai sistem fail seperti Ext4, XFS, BTRFS, dan menggunakan DF-T untuk melihat jenis sistem fail. Pengurusan Proses: Lihat proses melalui arahan PS, menguruskan proses menggunakan PID, yang melibatkan tetapan keutamaan dan pemprosesan isyarat. Konfigurasi Rangkaian: Tetapan fleksibel alamat IP dan menguruskan perkhidmatan rangkaian, dan gunakan sudoipaddradd untuk mengkonfigurasi IP. Ciri-ciri ini digunakan dalam operasi kehidupan sebenar melalui arahan asas dan automasi skrip lanjutan, meningkatkan kecekapan dan mengurangkan kesilapan.

Apakah peranan Java dalam pembangunan peranti IoT (Internet of Things), memandangkan kemerdekaan platform? Apakah peranan Java dalam pembangunan peranti IoT (Internet of Things), memandangkan kemerdekaan platform? May 03, 2025 am 12:22 AM

JavaPlaysasignificantroleiniotduetoitsplatformindant.1) itAllowscodetobewrittenceandondrariousdevices.2) Java'secosystemprovidesuseFullibrariesforiot.3)

Bagaimanakah kemerdekaan platform memudahkan penggunaan aplikasi Java? Bagaimanakah kemerdekaan platform memudahkan penggunaan aplikasi Java? May 02, 2025 am 12:15 AM

Java'splatformindependenceAllowsApplicationStoranyoperatingsystemwithajvm.1) singlecodebase: writeandcompileonceforallplatforms.2) Easyupdates: UpdateTecodeForsimulteUseUlyDeployment.3)

See all articles