一、mysql百萬級表在不停機的情況下增加一個字段要怎么處理的
mysql百萬級表在不停機的情況下增加一個字段使用pt-online-schema-change。pt-online-schema-change是percona公司開發的一個工具,在percona-toolkit包里面可以找到這個功能,它可以在線修改表結構。
首先它會新建一張一模一樣的表,表名一般是_為前綴_new后綴,例如原表為t_user 臨時表就是_t_user_new;
然后在這個新表執行更改字段操作;
然后在原表上加三個觸發器,DELETE/UPDATE/INSERT,將原表中要執行的語句也在新表中執行;
最后將原表的數據拷貝到新表中,然后替換掉原表。
SQL語句:
ALTER TABLE tmp_task_user ADD support tinyint(1) unsigned NOT NULL DEFAULT ‘1’;
工具命令:
sh pt.sh tmp_task_user “ADD COLUMN support tinyint(1) unsigned NOT NULL DEFAULT ‘1’”
好處:
降低主從延時的風險可以限速、限資源,避免操作時MySQL負載過高建議:
在業務低峰期做,將影響降到最低刪除索引后再修改表結構,效率將大大提升延伸閱讀:
二、應用架構是什么
應用架構(Application Architecture)是描述了IT系統功能和技術實現的內容。應用架構分為以下兩個不同的層次:
企業級的應用架構:企業層面的應用架構起到了統一規劃、承上啟下的作用,向上承接了企業戰略發展方向和業務模式,向下規劃和指導企業各個IT系統的定位和功能。在企業架構中,應用架構是最重要和工作量最大的部分,他包括了企業的應用架構藍圖、架構標準/原則、系統的邊界和定義、系統間的關聯關系等方面的內容。單個系統的應用架構:在開發或設計單一IT系統時,設計系統的主要模塊和功能點,系統技術實現是從前端展示到業務處理邏輯,到后臺數據是如何架構的。這方面的工作一般屬于項目組,而不是企業架構的范疇。