好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL使用MRG_MyISAM(MERGE)實現分表后查詢的示例

MySQL使用MRG_MyISAM(MERGE)實現分表后查詢的示例

熱門標簽:北京人工外呼系統價錢 沃克斯電梯外呼線路圖 天智外呼系統 房產智能外呼系統品牌 400電話鄭州申請 云南語音外呼系統平臺 地圖標注被騙三百怎么辦 福州呼叫中心外呼系統哪家好 常州電銷外呼系統一般多少錢

數據庫大數據量優化是一門很大的學問,也是做為一名開發者需要掌握的專業技能。

MySQL分表方式分為垂直分表和水平分表,這兩種分表形式都比較簡單,簡單理解垂直分表指的是:表的記錄并不多,但是字段卻很長,表占用空間很大,檢索表的時候需要執行大量的IO,嚴重降低了性能。這時需要把大的字段拆分到另一個表,并且該表與原表是一對一的關系。而水平分表則是在同一個數據庫內,把同一個表的數據按一定規則拆到多個表中,目的是優化單一表數據量過大而產生的性能問題,避免IO爭搶并減少鎖表的幾率。

實現分表很簡單,復雜的是分表之后如何查詢數據?今天的實現方式是使用Mysql表引擎MRG_MyISAM(MERGE)
MERGE存儲引擎,也被認識為MRG_MyISAM引擎,是一個相同的可以被當作一個來用的MyISAM表的集合。“相同”意味著所有表同樣的列和索引信息。你不能合并列被以不同順序列于其中的表,沒有恰好同樣列的表,或有不同順序索引的表。而且,任何或者所有的表可以用myisampack來壓縮。表選項的差異,比如AVG_ROW_LENGTH, MAX_ROWS或PACK_KEYS都不重要。

當你創建一個MERGE表之時,MySQL在磁盤上創建兩個文件。文件名以表的名字開始,并且有一個擴展名來指明文件類型。一個.frm文件存儲表定義,一個.MRG文件包含被當作一個來用的表的名字。這些表作為MERGE表自身,不必要在同一個數據庫中。

你可以對表的集合用SELECT, DELETE, UPDATE和INSERT。你必須對你映射到一個MERGE表的這些表有SELECT, UPDATE和DELETE 的權限。

如果你DROP MERGE表,你僅在移除MERGE規格。底層表沒有受影響。

當你創建一個MERGE表之時,你必須指定一個UNION=(list-of-tables)子句,它說明你要把哪些表當作一個來用。如果你想要對MERGE表的插入發生在UNION列表中的第一個或最后一個表上,你可以選擇地指定一個INSERT_METHOD選項。使用FIRST或LAST值使得插入被相應地做在第一或最后一個表上。如果你沒有指定INSERT_METHOD選項,或你用一個NO值指定該選項。往MERGE表插入記錄的試圖導致錯誤。

舉個例子:
創建兩個子分表:

CREATE TABLE `yzm_table1` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(100) NOT NULL DEFAULT '',
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `yzm_table2` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(100) NOT NULL DEFAULT '',
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

表創建完畢了,需要注意的是這里的id不能設為自增,而且所有的表結構必須一致,包括結構,類型,長度,字段的順序都必須一致那么對于這個id如何取得呢?后面我會詳細說明。現在,我們需要一個合并表,用于查詢,創建合并表的代碼如下:

CREATE TABLE `yzm_table` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL DEFAULT '',
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=NO INSERT_METHOD=LAST UNION=(`yzm_table1`,`yzm_table2`);

合并表也必須和前面的表有相同的結構,類型,長度,包括字段的順序都必須一致這里的 INSERT_METHOD=NO 表示不允許對本表進行insert操作。好了,當需要查詢的時候,我們可以只對yzm_table這個表進行操作就可以了,也就是說這個表僅僅只能進行select操作。

插入一些數據測試:

INSERT INTO `yzm_table1` VALUES ('1', 'table1-1', 'content1-1');
INSERT INTO `yzm_table1` VALUES ('2', 'table1-2', 'content1-2');
INSERT INTO `yzm_table2` VALUES ('3', 'table2-1', 'content2-1');
INSERT INTO `yzm_table2` VALUES ('4', 'table2-2', 'content2-2');
INSERT INTO `yzm_table2` VALUES ('5', 'table2-3', 'content2-3');

然后查詢合并表(主表)

SELECT * FROM `yzm_table` LIMIT 10;

果然可以查詢到所有關聯子表的所有數據,這樣就可以對所有的數據進行分頁、統計等查詢了。

以上就是MySQL使用MRG_MyISAM(MERGE)實現分表后查詢的示例的詳細內容,更多關于MySQL 分表后查詢的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySql分表、分庫、分片和分區知識點介紹
  • MySQL數據庫優化之分表分庫操作實例詳解
  • MySQL分表和分區的具體實現方法
  • MySQL分庫分表總結講解
  • Mysql的水平分表與垂直分表的講解
  • mysql分表分庫的應用場景和設計方式
  • mysql數據庫分表分庫的策略
  • MySQL 5.7雙主同步部分表的實現過程詳解
  • MyBatis實現Mysql數據庫分庫分表操作和總結(推薦)
  • 什么是分表和分區 MySql數據庫分區和分表方法
  • MYSQL數據庫數據拆分之分庫分表總結
  • MySQL分表自增ID問題的解決方法

標簽:徐州 珠海 黔東 鹽城 拉薩 沈陽 沈陽 移動

巨人網絡通訊聲明:本文標題《MySQL使用MRG_MyISAM(MERGE)實現分表后查詢的示例》,本文關鍵詞  MySQL,使用,MRG,MyISAM,MERGE,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL使用MRG_MyISAM(MERGE)實現分表后查詢的示例》相關的同類信息!
  • 本頁收集關于MySQL使用MRG_MyISAM(MERGE)實現分表后查詢的示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲女同老女人女同志| 97久久人人做人人爽人人澡| 69堂国产精品成人无码视频| jizzjizz黄色| 男男美菊进入互攻互受| 日韩精品大片| 国模黄丹私拍人体1| 99久久精品国产交换| 国产精品20p| 韩国女人被添全过程A片| 国产伦一区二区三区高清| 更长更粗更大更硬更待久| 一色屋人任你精品网站| 91在线无码精品秘?入口福利| 十八款禁用软件app免费苹果版| 猛男的又大又粗又长又黑| 肉文污| 亚洲秘?无码一区二区三区电影| 一男一女的一级毛片| jk美女又爽?又黄?视频| 妞干网2020| 国产精品yy9299在线观看| 日韩中文字幕不卡| 日本东京热久久久av大桥未久| 狠狠躁夜夜躁人人爽天天miya| 爱上嫂子的床| 91制片厂果冻传媒演员白晶晶| 无遮挡AV成人无码视频| 黄色一级毛片看一级毛片| 黄色小说在线免费观看| 兽人之强养雌性| 白丝小仙女自慰流出白浆 | 宝贝我硬了~忍不住了| 国产精品日本一区二区在线播放| 中国一级特黄aa毛片大片| 绯色aV人妻一区二区三区浪潮| 999精品无码一区二区三区| 揉捏折磨小核gl| 被cao哭高h| 韩国三力电影大合集视频在线观看 | 古装三级高清理伦电影|