国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
了解是什么使Alter操作阻塞
使用特定于數(shù)據(jù)庫的在線DDL功能
在MySQL(5.6帶有InnoDB):
在Postgresql中:
使用第三方工具進行復(fù)雜的更改
pt-online-schema-change(mysql示例):
計劃圍繞應(yīng)用行為
首頁 數(shù)據(jù)庫 mysql教程 如何在不鎖定的情況下更改大桌子(在線DDL)?

如何在不鎖定的情況下更改大桌子(在線DDL)?

Jun 14, 2025 am 12:36 AM
mysql 在線DDL

要更改沒有長鎖的大型生產(chǎn)桌,請使用在線DDL技術(shù)。 1)確定您的Alter操作是快速(例如,添加/刪除列,修改null/Not Null)還是慢速(例如,更改數(shù)據(jù)類型,重新排序列,在大數(shù)據(jù)上添加索引)。 2)使用特定于數(shù)據(jù)庫的功能:在MySQL中,應(yīng)用算法= Inplace和lock = none;在PostgreSQL中,將創(chuàng)建索引同時發(fā)生用于非阻滯索引創(chuàng)建。 3)對于不受支持的更改,使用第三方工具,例如PT-Online-Schema-Change,它可以創(chuàng)建一個陰影表,在塊中復(fù)制數(shù)據(jù),并以最小的鎖定鎖定表。 4)確保足夠的磁盤空間,進行分期測試,并避免復(fù)制或觸發(fā)器發(fā)生沖突。 5)通過在低流量,監(jiān)視性能和使用功能標志的情況下安排圍繞應(yīng)用程序行為進行計劃,以順利處理模式過渡。

如何在不鎖定的情況下更改大桌子(在線DDL)?

當您需要更改生產(chǎn)數(shù)據(jù)庫中的大表格時,您想要的最后一件事是延長它。鎖定塊讀取和寫入,這會導(dǎo)致停機時間或性能問題。解決方案?在線DDL - 進行更改而不鎖定桌子長時間。這是您可以有效地做到這一點的方法。


了解是什么使Alter操作阻塞

并非所有ALTER TABLE操作都是相等的。有些是快速的元數(shù)據(jù)更改,而另一些則需要重建整個桌子。

  • 快速操作(非阻滯或最小阻塞)包括:
    • 在最后添加/刪除列
    • 修改列null/not null
    • 重命名列或索引
  • 緩慢操作(通常阻止)包括:
    • 更改列數(shù)據(jù)類型
    • 重新排序列
    • 在大型數(shù)據(jù)集上添加索引

如果您的操作屬于緩慢的類別,則需要使用允許您在線應(yīng)用模式更改的工具或技術(shù)。


使用特定于數(shù)據(jù)庫的在線DDL功能

現(xiàn)代數(shù)據(jù)庫對在線DDL具有內(nèi)置支持,尤其是在使用MySQL或PostgreSQL時。

在MySQL(5.6帶有InnoDB):

使用ALGORITHM=INPLACELOCK=NONE可能:

 Alter表用戶添加列New_col Varchar(255),
算法= Inploph,lock = none;
  • 檢查您的特定更改是否支持這些選項。
  • 如果不支持ALGORITHM=INPLACE ,則需要第三方工具。

在Postgresql中:

默認情況下,大多數(shù)ALTER TABLE命令已經(jīng)是非阻滯的,但是可以同時完成索引:

在用戶上同時創(chuàng)建索引IDX_USERS_EMAIL(電子郵件);

這樣可以避免在創(chuàng)建索引期間鎖定桌子。


使用第三方工具進行復(fù)雜的更改

如果本機支持還不夠,則具有自定義策略的PT-Online-inline-Schema-Schema-Schema-Schema-change (用于MySQL)或Liquibase / Flyway可以提供幫助。

pt-online-schema-change(mysql示例):

 pt-online-schema-change-alter“添加列active boolean” d = mydb,t =用戶-Execute

它的工作原理:

  • 創(chuàng)建表的陰影副本
  • 應(yīng)用對副本的更改
  • 在塊中復(fù)制數(shù)據(jù)
  • 準備就緒時交換表
  • 避免長鎖并保持可用性

確保:

  • 您有足夠的磁盤空間
  • 觸發(fā)器或復(fù)制不會引起問題
  • 您首先進行測試

計劃圍繞應(yīng)用行為

即使使用在線DDL,也有邊緣案例:

  • 長期交易可能與模式變化相抵觸
  • 重復(fù)滯后可能在大型改變時發(fā)生
  • 應(yīng)用程序代碼應(yīng)暫時容忍舊模式

一些提示:

  • 如果可能的話,在交通低廉的時間內(nèi)安排更改
  • 在更改期間監(jiān)視復(fù)制和查詢性能
  • 考慮功能標志或版本的API,以順利處理模式過渡

基本上就是這樣。更改大桌子而不鎖定它們的情況下,可以使用正確的工具來理解數(shù)據(jù)庫的功能,并圍繞實際應(yīng)用程序行為進行計劃。這不是魔術(shù),只需仔細執(zhí)行即可。

以上是如何在不鎖定的情況下更改大桌子(在線DDL)?的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

MySQL Master故障轉(zhuǎn)移的典型過程是什么? MySQL Master故障轉(zhuǎn)移的典型過程是什么? Jun 19, 2025 am 01:06 AM

MySQL主庫故障切換主要包括四個步驟。1.故障檢測:通過監(jiān)控系統(tǒng)定期檢查主庫進程、連接狀態(tài)及執(zhí)行簡單查詢判斷是否宕機,設(shè)置重試機制避免誤判,并可借助MHA、Orchestrator或Keepalived等工具輔助檢測;2.選擇新主庫:根據(jù)數(shù)據(jù)同步進度(Seconds_Behind_Master)、binlog數(shù)據(jù)完整性、網(wǎng)絡(luò)延遲與負載情況選取最合適從庫接替,必要時進行數(shù)據(jù)補償或人工干預(yù);3.切換拓撲:將其他從庫指向新主庫,執(zhí)行RESETMASTER或啟用GTID,更新VIP、DNS或代理配置以

如何使用命令行連接到MySQL數(shù)據(jù)庫? 如何使用命令行連接到MySQL數(shù)據(jù)庫? Jun 19, 2025 am 01:05 AM

連接MySQL數(shù)據(jù)庫的步驟如下:1.使用基本命令格式mysql-u用戶名-p-h主機地址進行連接,輸入用戶名和密碼后即可登錄;2.若需直接進入指定數(shù)據(jù)庫,可在命令后加上數(shù)據(jù)庫名,如mysql-uroot-pmyproject;3.若端口非默認3306,需添加-P參數(shù)指定端口號,如mysql-uroot-p-h192.168.1.100-P3307;此外,遇到密碼錯誤可重新輸入,連接失敗需檢查網(wǎng)絡(luò)、防火墻或權(quán)限設(shè)置,若缺少客戶端可在Linux上通過包管理器安裝mysql-client。掌握這些命令

為什么索引可以提高MySQL查詢速度? 為什么索引可以提高MySQL查詢速度? Jun 19, 2025 am 01:05 AM

IndexesinMySQLimprovequeryspeedbyenablingfasterdataretrieval.1.Theyreducedatascanned,allowingMySQLtoquicklylocaterelevantrowsinWHEREorORDERBYclauses,especiallyimportantforlargeorfrequentlyqueriedtables.2.Theyspeedupjoinsandsorting,makingJOINoperation

MySQL中的交易隔離級別是多少?默認值是哪個? MySQL中的交易隔離級別是多少?默認值是哪個? Jun 23, 2025 pm 03:05 PM

MySQL的默認事務(wù)隔離級別是可重復(fù)讀(RepeatableRead),它通過MVCC和間隙鎖防止臟讀和不可重復(fù)讀,并在大多數(shù)情況下避免幻讀;其他主要級別包括讀未提交(ReadUncommitted),允許臟讀但性能最快,1.讀已提交(ReadCommitted)確保讀取已提交數(shù)據(jù)但可能遇到不可重復(fù)讀和幻讀,2.可重復(fù)讀(RepeatableRead)默認級別,保證事務(wù)內(nèi)多次讀取結(jié)果一致,3.串行化(Serializable)最高級別,通過鎖阻止其他事務(wù)修改數(shù)據(jù),確保數(shù)據(jù)完整性但犧牲性能;可通過

如何安全清除舊的mysql binlog文件? 如何安全清除舊的mysql binlog文件? Jun 19, 2025 am 01:01 AM

清理MySQL的binlog文件應(yīng)使用PURGEBINARYLOGS命令或設(shè)置自動過期時間,不可直接刪除文件。1.使用PURGE命令可按文件名或時間清理舊日志,執(zhí)行前需確認從庫已不再使用相關(guān)日志;2.通過SHOWMASTERSTATUS和SHOWSLAVESTATUS查看當前日志狀態(tài)及從庫位置,確保清理范圍安全;3.MySQL8.0 推薦設(shè)置binlog_expire_logs_seconds參數(shù)實現(xiàn)自動清理,適合長期運行環(huán)境;4.直接刪除文件會導(dǎo)致主從同步失敗、日志信息不一致等嚴重問題,必須避

如何將MySQL bin目錄添加到系統(tǒng)路徑 如何將MySQL bin目錄添加到系統(tǒng)路徑 Jul 01, 2025 am 01:39 AM

要將MySQL的bin目錄添加到系統(tǒng)PATH,需根據(jù)不同操作系統(tǒng)進行配置。1.Windows系統(tǒng):找到MySQL安裝目錄下的bin文件夾(默認路徑通常為C:\ProgramFiles\MySQL\MySQLServerX.X\bin),右鍵“此電腦”→“屬性”→“高級系統(tǒng)設(shè)置”→“環(huán)境變量”,在“系統(tǒng)變量”中選中Path并編輯,新增MySQLbin路徑,保存后重啟命令提示符并輸入mysql--version驗證;2.macOS和Linux系統(tǒng):Bash用戶編輯~/.bashrc或~/.bash_

如何在Windows 11上安裝MySQL 如何在Windows 11上安裝MySQL Jun 29, 2025 am 01:47 AM

安裝MySQL在Windows11上的關(guān)鍵步驟如下:1.下載正確的版本,選擇Windows的MSI安裝包并確保系統(tǒng)為64位;2.安裝時選擇“Custom”模式,添加MySQLServer并設(shè)置合適的安裝路徑;3.運行配置向?qū)?,選擇“ServerComputer”配置類型,設(shè)置root密碼,選擇自動啟動方式;4.測試安裝成功后,若提示命令不可用,則將MySQL的bin目錄添加到系統(tǒng)PATH環(huán)境變量中。按照這些步驟操作即可順利完成安裝與配置。

重置MySQL Server的root密碼 重置MySQL Server的root密碼 Jul 03, 2025 am 02:32 AM

要重置MySQL的root密碼,請按以下步驟操作:1.停止MySQL服務(wù)器,使用sudosystemctlstopmysql或sudosystemctlstopmysqld;2.以--skip-grant-tables模式啟動MySQL,執(zhí)行sudomysqld--skip-grant-tables&;3.登錄MySQL并根據(jù)版本執(zhí)行相應(yīng)的SQL命令修改密碼,如FLUSHPRIVILEGES;ALTERUSER'root'@'localhost'IDENTIFIEDBY'your_new

See all articles