Mysql 千万级数据量应该怎么优化 从没接触过超过千万的数据量,想问下有经验的大神, 超千万的数据量应该使用哪个数据库引擎,复合索引应该怎么做,才能做到查询速度最快, 还有统计查询怎么做才能最快,非要分成两张表么 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 弱弱问一下,CSDN论坛这个表多大? 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编码 以前共享的那个用户表 仅两个字段的(username, passwrd),380M 左右 de111dd4-7ad3-439f-af82-e5b55aaf1a8e你从这个唯一键就可知道,他使用的是分布式数据库 `IP` char(15) NOT NULL DEFAULT '0', ip不要这样存http://dev.mysql.com/doc/refman/5.1/en/bit-functions.html搜ip address 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这个存储过程哪错了,帮看一下 你的这个问题与这个问题有一点像,你只是存点击数。每天。地址我忘了那一个贴是,我怎么存和快速查询用户的IP点击数后面的答案我得有几个,印象最深的是 把 insert into 改成insert ^^ 单词忘了,他的意思就是慢查询第二种印象最深方法,就是建二个表,其中一个表不建主键,不键索引。只记录,到了晚上,在把这个表的记录导入 有主键有索引的表里。方法的目的,二表,一表为插入最优化,另一表为查询最优化。把不用的记录删了。千万级的数据mysql小事了,那一个后面根贴的人说曾经在mysql存了十亿条,他说都没有问题。 表示建索引了,也给我看下你表怎么设计的吧,用navicat怎么建表分区啊,我不知道在哪写代码 你会不会建索引哟?你在网上搜搜啊你是那一条SQl这么慢吗? KEY `idx_` (`ID`,`UID`,`IP`) USING BTREE 表示这叫复合索引KEY `idx_mac` (`MAC`) USING BTREE 这个就叫索引除了索引类型 我不知道用哪个更好,难道还有其他的吗 xiachao2008 同学 如果还只是一千来万的数据,MYSQL是可以承受得住的,如果是大到一定程度,那就要分表了(反正搞大点的数据都是这样的逻辑,大了就分),还有你这里做什么统计啥的,就不要在这个表里面了,单独生成出一个统计表出来,每天同步数据进去,其余简单的查询,主要是把索引建好,这里不清楚你都是要查些什么数据,所以也不好分析怎样建索引,复合索引建了,在查询的时候,也要注意查询时他们各自的顺序,因为MYSQL是遵循最左查询的你也可以通过explain 与 profiling来对SQL语句的分析,然后再做针对性的分析,别人一般只能给你思路上的引导,具体怎么解决还是得靠自己,因为你最清楚你们自己的业务需要。 嗯, 我用 MERGE分表了,正在研究, 求救PHP上下级关系代码 请教一个获取远程图片的问题 ZendStudio 怎样调试PHP? PHP EMAIL验证问题 php 怎么禁止浏览器后退 mysql_free_result有必要吗? php符号:=> 是什么东东? 发一个人站,php+mysql+smarty+pear+url_rewrite,大家学习交流 请帮忙这是什么问题,只有几行代码(重复执行语句) apache安裝成功,在 ie 中輸入 localhost 的結果應是什麼?? PHP MYSQL管理系统 - AMS 上线发布。 memcache缓存的疑问
论坛这个表多大?
`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编码
以前共享的那个用户表 仅两个字段的(username, passwrd),380M 左右
你从这个唯一键就可知道,他使用的是分布式数据库
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这个存储过程哪错了,帮看一下
你只是存点击数。
每天。
地址我忘了那一个贴是,我怎么存和快速查询用户的IP点击数后面的答案我得有几个,
印象最深的是 把 insert into 改成insert ^^ 单词忘了,他的意思就是慢查询
第二种印象最深方法,
就是建二个表,其中一个表不建主键,不键索引。只记录,到了晚上,在把这个表的记录导入 有主键有索引的表里。方法的目的,二表,一表为插入最优化,另一表为查询最优化。把不用的记录删了。千万级的数据mysql小事了,那一个后面根贴的人说曾经在mysql存了十亿条,他说都没有问题。
你在网上搜搜啊
你是那一条SQl这么慢吗?
KEY `idx_mac` (`MAC`) USING BTREE 这个就叫索引除了索引类型 我不知道用哪个更好,难道还有其他的吗 xiachao2008 同学