免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2589 | 回复: 5
打印 上一主题 下一主题

千万级表,索引太大,求解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-08 17:07 |只看该作者 |倒序浏览
本帖最后由 yyxxzz 于 2010-03-08 17:17 编辑

Key_reads                         | 21089307   |
| Key_write_requests                | 104442899  |

这个算什么水平? goods 表 80G,索引800多MB,server 只有2G内存,还有 java 的程序有的时候要跑

现在分配给mysql 的 key_buffer_size 只有 512MB,

导致 只有54倍 差距,goods 自建了 4个 索引,3个是复合索引,
但是 有2个复合索引,好像太大了,类似 index1 ( nick(varchar(10),total(int 11)) ) ,explain 看key_len为32
utf8 下,一个varchar 占用3个字节啊?
我把字段类型 varchar 改成 char  是不是就key_len 就12了啊,这样索引就能小不少?

论坛徽章:
0
2 [报告]
发表于 2010-03-08 17:35 |只看该作者
顶上来

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
3 [报告]
发表于 2010-03-08 19:00 |只看该作者
这么大的数据量最好分表吧,先不说varchar to char的方案可不可行。
即使可行,也还是无法解决数据增长带来的问题。

varchar 和 char对于index的大小应该没有影响吧?
如果想减小体积,可以适当的减小建索引时varchar(length)的length的值

论坛徽章:
0
4 [报告]
发表于 2010-03-08 20:21 |只看该作者
这么大的数据量最好分表吧,先不说varchar to char的方案可不可行。
即使可行,也还是无法解决数据增长带来 ...
cenalulu 发表于 2010-03-08 19:00


索引中的varchar(length),现在是10,我差了一下数据库,发现最长的是11个汉字,只有一个11个汉字的
其实可能可以设置小一点8,或许也可以,但是现在的索引太大了
分表 业务逻辑上的改变应该蛮大的,现在数据表也就1000w左右

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
5 [报告]
发表于 2010-03-08 20:37 |只看该作者
这个可以通过语句来决定length的大小

select count(distinct left(str_colm, length)) from table_name ;
然后除以总行数,得到比率。

length从10开始逐1减小,基本上选择性达到90%就可以了。

论坛徽章:
0
6 [报告]
发表于 2010-03-09 17:04 |只看该作者
是时候分表了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP