zoukankan      html  css  js  c++  java
  • 数据库水平分表

    1. 前言:但数据库数据到达千万级别的时候,查询如果不按索引查就会非常慢,于是这里打算利用水平分表来优化一下查询,提高效率

    2. 分表:取我当前表的某一列的前两个数字进行二级分表,将千万数据化分成十万。

    -- 首先执行循环建表:
    create procedure sum1(a int) 
    begin
        declare sum int default 0;  -- default 是指定该变量的默认值
        declare i int default 0; -- 循环下标
    while i<=a DO -- 循环开始
        set i=i+1;
            set @sql_create_table = concat(
        'CREATE TABLE IF NOT EXISTS tbCid_0', i,
        "(
              `keyCid` varchar(32)     NOT NULL,
      `mcc` varchar(3)     NOT NULL,
      `mnc` varchar(2)     NOT NULL,
      `lac` varchar(12)     NOT NULL,
      `cid` varchar(12)     NOT NULL,
      `country` varchar(32)     NOT NULL,
      `province` varchar(32)     NULL DEFAULT NULL,
      `city` varchar(32)     NULL DEFAULT NULL,
      `district` varchar(32)     NULL DEFAULT NULL,
      `road` varchar(64)     NULL DEFAULT NULL,
      `street` varchar(64)     NULL DEFAULT NULL,
      `pos` varchar(64)     NULL DEFAULT NULL,
      `detailpos` varchar(256)     NULL DEFAULT NULL,
      `longitude` varchar(32)     NULL DEFAULT NULL,
      `latitude` varchar(32)     NULL DEFAULT NULL,
      `idxAreaId` varchar(128)     NULL DEFAULT NULL,
      `remark` varchar(256)     NULL DEFAULT NULL,
      `mdfTm` datetime(0) NOT NULL,
      `mdfBy` varchar(45)     NOT NULL,
      `crtTm` datetime(0) NOT NULL,
      `crtBy` varchar(45)     NOT NULL,
      `idxOwnerId` varchar(128)     NULL DEFAULT NULL,
      PRIMARY KEY (`keyCid`) USING BTREE,
      INDEX `idxAreaId`(`idxAreaId`) USING BTREE,
      INDEX `idxOwnerId`(`idxOwnerId`) USING BTREE
        )ENGINE=InnoDB DEFAULT CHARSET=utf8;");
        PREPARE sql_create_table FROM @sql_create_table;   
        EXECUTE sql_create_table; 
    
    end while; -- 循环结束
    --  可加循环结束后操作语句
    end
    
    
    -- 第二步执行
    -- 执行存储过程
    call sum1(100);
    
    -- 第三步执行
    -- 删除存储过程
    drop procedure if exists sum1;

    3. 数据迁移 

    -- 查询个表数据条数 
    use information_schema;
      select table_name,table_rows   from tables 
        where TABLE_SCHEMA = '数据库名'
        and table_name like "表名%"
    order by 
      table_rows desc;

    4. 查询修改

    -- 未完待续

  • 相关阅读:
    Unity3D 利用C#实现简单的代理模式Delegate(委托)
    代码删除文件夹,小心资源管理器报错,甚至崩溃【原】
    如何解决“应用程序并行配置不正确”问题?【原】
    STL,ATL,WTL的联系与区别
    C++虚函数表解析(转)
    学各国语言的网站大全
    The 500 Most Commonly Used Words in the English Language
    Top 100 English Verbs
    Top 100 words for advanced learners.
    TOP 100 MISSPELT/MISSPELLED WORDS IN ENGLISH
  • 原文地址:https://www.cnblogs.com/dztHome/p/13298289.html
Copyright © 2011-2022 走看看