基於MRG_MyISAM引擎的Mysql分表

来源:http://www.cnblogs.com/qf19910623/archive/2016/05/27/5534143.html
-Advertisement-
Play Games

正常情況下的分表,都是直接創建多個相同結構的表,比如table_1、table_2...最近碰到一個特殊需求,需要創建一個主表,所有分表的數據增刪改查,全部自動實時更新到主表,這個時候可以使用MRG_MyISAM引擎了。 首先創建主表`mygame_message_log`。然後創建分表: 然後將主 ...


  正常情況下的分表,都是直接創建多個相同結構的表,比如table_1、table_2...最近碰到一個特殊需求,需要創建一個主表,所有分表的數據增刪改查,全部自動實時更新到主表,這個時候可以使用MRG_MyISAM引擎了。

  首先創建主表`mygame_message_log`。然後創建分表(必須使用MyISAM引擎):

create table `mygame_message_log_1` LIKE `mygame_message_log`;
create table `mygame_message_log_2` LIKE `mygame_message_log`;
create table `mygame_message_log_3` LIKE `mygame_message_log`;
create table `mygame_message_log_4` LIKE `mygame_message_log`;
create table `mygame_message_log_5` LIKE `mygame_message_log`;
create table `mygame_message_log_6` LIKE `mygame_message_log`;
create table `mygame_message_log_7` LIKE `mygame_message_log`;
create table `mygame_message_log_8` LIKE `mygame_message_log`;
create table `mygame_message_log_9` LIKE `mygame_message_log`;
create table `mygame_message_log_10` LIKE `mygame_message_log`;
create table `mygame_message_log_11` LIKE `mygame_message_log`;
create table `mygame_message_log_12` LIKE `mygame_message_log`;
create table `mygame_message_log_13` LIKE `mygame_message_log`;
create table `mygame_message_log_14` LIKE `mygame_message_log`;
create table `mygame_message_log_15` LIKE `mygame_message_log`;
create table `mygame_message_log_16` LIKE `mygame_message_log`;
create table `mygame_message_log_17` LIKE `mygame_message_log`;
create table `mygame_message_log_18` LIKE `mygame_message_log`;
create table `mygame_message_log_19` LIKE `mygame_message_log`;
create table `mygame_message_log_20` LIKE `mygame_message_log`;

  

  然後將主表關聯到分表:

ALTER TABLE mygame_message_log 
    ENGINE = MERGE UNION=
        (mygame_message_log_1,
        mygame_message_log_2,
        mygame_message_log_3,
        mygame_message_log_4,
        mygame_message_log_5,
        mygame_message_log_6,
        mygame_message_log_7,
        mygame_message_log_8,
        mygame_message_log_9,
        mygame_message_log_10,
        mygame_message_log_11,
        mygame_message_log_12,
        mygame_message_log_13,
        mygame_message_log_14,
        mygame_message_log_15,
        mygame_message_log_16,
        mygame_message_log_17,
        mygame_message_log_18,
        mygame_message_log_19,
        mygame_message_log_20) 
    INSERT_METHOD=no AUTO_INCREMENT=1;
            

  

  需要註意的是,表的主鍵不能設為自增,所有表的結構全部要一致。

  同時這種方法會有一個缺陷,就是一旦要修改表結構,就會很麻煩。千萬不能直接修改!

  最好開始就將表設計考慮周到一點,如果實在要修改,可按如下步驟:

  1、刪除主表;

  2、針對所有分表修改相應的欄位;

  3、重新創建一個主表:

  

create table `mygame_message_log` LIKE `mygame_message_log_1`;

  4、給主表做關聯:

ALTER TABLE mygame_message_log 
    ENGINE = MERGE UNION=
        (mygame_message_log_1,
        mygame_message_log_2,
        mygame_message_log_3,
        mygame_message_log_4,
        mygame_message_log_5,
        mygame_message_log_6,
        mygame_message_log_7,
        mygame_message_log_8,
        mygame_message_log_9,
        mygame_message_log_10,
        mygame_message_log_11,
        mygame_message_log_12,
        mygame_message_log_13,
        mygame_message_log_14,
        mygame_message_log_15,
        mygame_message_log_16,
        mygame_message_log_17,
        mygame_message_log_18,
        mygame_message_log_19,
        mygame_message_log_20) 
    INSERT_METHOD=no AUTO_INCREMENT=1;
            

  5、成功,原來主表的數據都恢復了


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、音頻 1、iOS 裡面共有四種專門實現播放音頻的方式: System Sound Services(系統聲音服務)。 OpenAL(跨平臺的開源的音頻處理介面)。 Audio Queue Services(播放和錄製音頻服務)。 AVAudioPlayer(高級音頻播放器)。 在這裡我們主要介紹 ...
  • // // ViewController.m // CNBlogs // // Created by PXJ on 16/5/27. // Copyright © 2016年 PXJ. All rights reserved. // #import "ViewController.h" @inter ...
  • Bitmap aa = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); InputStream input = datastream(aa);//把bitmap轉換為流 Bitmap bitmap = tra ...
  • #pragma mark - InterpolatedUIImage=因為生成的二維碼是一個CIImage,我們直接轉換成UIImage的話大小不好控制,所以使用下麵方法返回需要大小的UIImage - (UIImage *)createNonInterpolatedUIImageFormCIIma ...
  • 1. 簡單動畫 1> UIImageView GIF 動畫 GIF圖的原理是:獲取圖片,存儲在圖片數組中,按照圖片數組的順序將圖片以一定的速度播放 2> UIActivityIndicatorView 風火輪動畫 在APP中,載入界面的時候我們都會看到一個想風火輪的動畫在不停的轉,這個動畫其實是iO ...
  • 現在很多用戶被資料庫的慢的問題所困擾,又苦於花錢請一個專業的DBA成本太高。軟體維護人員對資料庫的瞭解又不是那麼深入,所以導致問題遲遲不能解決,或只能暫時解決不能得到根治。開發人員解決數據問題基本又是搜遍百度各種方法嘗試個遍,可能錯過診斷問題的最佳時機又可能嘗試一堆方法最後無奈放棄。 怎麼樣讓瑣事纏 ...
  • 1。 改表法。 可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,從"localhost"改成"%" Sql代碼 1. mysql -u root -pvm ...
  • 最近發現網站不能訪問,原因資料庫伺服器磁碟剩餘空間沒了。再細查發現日誌文件占用了70%,收縮日誌文件失敗。 在網上查找原因,是沒有備份不能收縮日誌文件。 臨時解決的方式: 備份事務日誌,再收縮日誌文件。(完整資料庫備份後,也可以收縮日誌文件) 長久的解決方案: 制定維護計劃,定期備份資料庫,收縮日誌 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...