程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql分表場景分析與簡單分表操作

mysql分表場景分析與簡單分表操作

編輯:MySQL綜合教程


表分割有兩種方式:  

:根據一列或多列數據的值把數據行放到兩個獨立的表中。
  水平分割通常在下面的情況下使用    表很大,分割後可以降低在查詢時需要讀的數據和索引的頁數,同時也降低了索引的層數,提高查詢速度。
    表中的數據本來就有獨立性,例如表中分別記錄各個地區的數據或不同時期的數據,特別是有些數據常用,而另外一些數據不常用。
    需要把數據存放到多個介質上。
    水平分割會給應用增加復雜度,它通常在查詢時需要多個表名,查詢所有數據需要

:把主碼和一些列放到一個表,然後把主碼和另外的列放到另一個表中。
  如果一個表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數據行變小,一個數據頁就能存放更多的數據,在查詢時就會減少 其缺點是需要管理冗余列,查詢所有數據需要

    而博客的浏覽量,回復數等,類似的統計信息,或者別的變化頻率比較高的數據,我們把它叫做活躍數據。
    所以,在進行數據庫結構設計的時候,就應該考慮分表,首先是縱向分表的處理。
    這樣縱向分表後:
      首先存儲引擎的使用不同,冷數據使用      其次,對冷數據進行更多的從庫配置,因為更多的操作是查詢,這樣來加快查詢速度。對熱數據,可以相對有更多的主庫的橫向分表處理。
      其實,對於一些特殊的活躍數據,也可以考慮使用

    例如博客的冷數據表,假如分為

mysqlhttp://blog.csdn.net/heirenheiren/article/details/7896546

 show engines  \G;

 創建表member

     auto_increment  (    InnoDB  CHARSETutf8 AUTO_INCREMENT ; 

第二步:創建存儲過程,插入百萬數據

    
     i  i  (i    member(name,sex) (concat(,i),i i  i 

      (    MyISAM   CHARSETutf8 AUTO_INCREMENT     tb_member2  tb_member1;

第四步

    (    MERGE (tb_member1,tb_member2) INSERT_METHODLAST AUTO_INCREMENT ; 

 show   tb_member \G;

第五步

  member  member.id  member  member.id ;

第六步

第七步: 



2. 4. REPLACE5. AUTO_INCREMENT 
創建
  FIRST  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved