从没接触过超过千万的数据量,想问下有经验的大神, 超千万的数据量应该使用哪个数据库引擎,复合索引应该怎么做,才能做到查询速度最快, 还有统计查询怎么做才能最快,非要分成两张表么

解决方案 »

  1.   

    弱弱问一下,CSDN
    论坛这个表多大?
      

  2.   

    CREATE TABLE `test` (
      `ID` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
      `UID` varchar(5) NOT NULL DEFAULT '0',
      `IP` char(15) NOT NULL DEFAULT '0',
      `MAC` char(17) NOT NULL DEFAULT '''''',
      `CLICK` int(3) NOT NULL DEFAULT '0',
      `VIEW` int(3) NOT NULL DEFAULT '0',
      PRIMARY KEY (`ID`),
      KEY `idx_` (`ID`,`UID`,`IP`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=ascii;
    电脑很卡,不好意思 这是我修改后的,  原来用的是 MyIsam,  utf8编码
      

  3.   


    以前共享的那个用户表 仅两个字段的(username, passwrd),380M 左右
      

  4.   

    de111dd4-7ad3-439f-af82-e5b55aaf1a8e
    你从这个唯一键就可知道,他使用的是分布式数据库
      

  5.   

     `IP` char(15) NOT NULL DEFAULT '0',  ip不要这样存http://dev.mysql.com/doc/refman/5.1/en/bit-functions.html搜ip address
      

  6.   

    BEGIN
    DECLARE i int default 100001;
    -- SET i=100001;
    WHILE(i<=199999)DO
    INSERT INTO test1 (BID)VALUE(i);
    SET i=i+1;
    END WHILE;
    END这个存储过程哪错了,帮看一下
      

  7.   

    你的这个问题与这个问题有一点像,
    你只是存点击数。
    每天。
    地址我忘了那一个贴是,我怎么存和快速查询用户的IP点击数后面的答案我得有几个,
    印象最深的是 把 insert into 改成insert ^^ 单词忘了,他的意思就是慢查询
    第二种印象最深方法,
    就是建二个表,其中一个表不建主键,不键索引。只记录,到了晚上,在把这个表的记录导入 有主键有索引的表里。方法的目的,二表,一表为插入最优化,另一表为查询最优化。把不用的记录删了。千万级的数据mysql小事了,那一个后面根贴的人说曾经在mysql存了十亿条,他说都没有问题。
      

  8.   

    表示建索引了,也给我看下你表怎么设计的吧,用navicat怎么建表分区啊,我不知道在哪写代码
      

  9.   

    你会不会建索引哟?
    你在网上搜搜啊
    你是那一条SQl这么慢吗?
      

  10.   

    KEY `idx_` (`ID`,`UID`,`IP`) USING BTREE 表示这叫复合索引
    KEY `idx_mac` (`MAC`) USING BTREE        这个就叫索引除了索引类型 我不知道用哪个更好,难道还有其他的吗  xiachao2008 同学
      

  11.   

    如果还只是一千来万的数据,MYSQL是可以承受得住的,如果是大到一定程度,那就要分表了(反正搞大点的数据都是这样的逻辑,大了就分),还有你这里做什么统计啥的,就不要在这个表里面了,单独生成出一个统计表出来,每天同步数据进去,其余简单的查询,主要是把索引建好,这里不清楚你都是要查些什么数据,所以也不好分析怎样建索引,复合索引建了,在查询的时候,也要注意查询时他们各自的顺序,因为MYSQL是遵循最左查询的你也可以通过explain 与 profiling来对SQL语句的分析,然后再做针对性的分析,别人一般只能给你思路上的引导,具体怎么解决还是得靠自己,因为你最清楚你们自己的业务需要。
      

  12.   

    嗯, 我用 MERGE分表了,正在研究,