免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: yj1804
打印 上一主题 下一主题

请问一下一张表3600万数据, 有索引的时候查询还需要15秒左右,正常么? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-08-14 22:58 |只看该作者
呵呵,恭喜楼主解决了问题。

另外对你的做法 也就是hash进行分区 很陌生。

希望楼主介绍下,和具体的操作过程,真的很感兴趣。

论坛徽章:
0
22 [报告]
发表于 2008-08-15 11:24 |只看该作者
ip重复太多了.导致索引不能发挥作用.
试试limit 1加上.
只选一行,估计结果会快.

论坛徽章:
0
23 [报告]
发表于 2008-08-15 14:53 |只看该作者

解决方案

建表语句
CREATE TABLE `NPE_RECORD_2008081422` (
  `DEVICE_IP` int(10) unsigned DEFAULT NULL,
  `PROTOCOLIDENTIFIER` tinyint(3) unsigned DEFAULT NULL,
  `APP_PROTOCOL` tinyint(3) unsigned DEFAULT NULL,
  `SOURCEIPV4ADDRESS` int(10) unsigned DEFAULT NULL,
  `DESTINATIONIPV4ADDRESS` int(10) unsigned DEFAULT NULL,
  `SOURCETRANSPORTPORT` smallint(5) unsigned DEFAULT NULL,
  `DESTINATIONTRANSPORTPORT` smallint(5) unsigned DEFAULT NULL,
  `NAT_SRC_IP` int(10) unsigned DEFAULT NULL,
  `NAT_DST_IP` int(10) unsigned DEFAULT NULL,
  `NAT_SRC_PORT` smallint(5) unsigned DEFAULT NULL,
  `NAT_DST_PORT` smallint(5) unsigned DEFAULT NULL,
  `IN_OCTETS` int(10) unsigned DEFAULT NULL,
  `OUT_OCTETS` int(10) unsigned DEFAULT NULL,
  `FLOW_CREATE_TIME` int(10) unsigned NOT NULL,
  `FLOW_DIE_TIME` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
PARTITION BY HASH(SOURCEIPV4ADDRESS)
PARTITIONS 64  (
PARTITION P1 DATA DIRECTORY='/home/mysql/DATA/NPE_RECORD/' INDEX DIRECTORY='/home/mysql/DATA/NPE_RECORD/',
PARTITION P2 DATA DIRECTORY='/home/mysql/DATA/NPE_RECORD/' INDEX DIRECTORY='/home/mysql/DATA/NPE_RECORD/'
...这里省略了很多分区路径
);

通过这样的hash分区, 速度得到了很大的改善, 个人认为原因是hash分区了以后, 每次做的硬盘扫描要少了很多, mysql只需要扫描查询条件的值对应的分区即可. 所以速度能够从15秒左右下降到0.xx秒.
另外我注意到一个现象, 即使查询条件中不包含分区列, 比如说如下查询:
mysql> SELECT * FROM NPE_RECORD_2008081512 WHERE NAT_DST_IP=3232242688;
查询时间也有比较大的下降, 从原来的15秒左右下降到5秒以内. 这个原因我个人认为是因为每个分区文件都很小, 只有25MB左右, mysql可以一次性将文件全部导入内存, 从而加快查询速度, 而原来不分区的时候, 一个MYD文件有2G左右,mysql无法一次性导入内存


以上纯属个人观点, 我对数据库不是很懂, 错了请大家指教.
ps. 谢谢大家的帮忙~~~

[ 本帖最后由 yj1804 于 2008-8-15 14:55 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP