MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 5651|回复: 6
打印 上一主题 下一主题

2个棘手问题请教各位达人

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-1 01:23:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
q1:创建存储引擎为myisam的表时,可以显式把数据文件和索引文件存放到不同路径,但表结构文件.frm却默认放在数据库目录下面。由于数据库目录下有几万个文件。平时在数据库目录下想查看文件,ls一下,根本都出不来。

q2:每张myisam存储引擎的表,数据量都有7000万左右。系统周期性扫描这些表(比如每15分钟扫描一次),并进行相关的业务处理。但如果刚好在建索引时,表就被锁定了,就无法扫描该表了。由于数据量大,建索引都需要20分钟左右,那在这20分钟左右,就无法扫描数据表,无法处理业务了。

请问各位达人,上述两个问题,有没有什么好的解决办法?谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖 顶 踩
2#
发表于 2009-4-1 14:47:42 | 只看该作者
q1:创建存储引擎为myisam的表时,可以显式把数据文件和索引文件存放到不同路径,但表结构文件.frm却默认放在数据库目录下面。由于数据库目录下有几万个文件。平时在数据库目录下想查看文件,ls一下,根本都出不来。 ...
独步古今 发表于 2009-4-1 01:23


“数据库目录下有几万个文件”也就是说你的一个数据库里有很多很多的表哦,这样效率不高,不仅仅OS中打开查找困难,且数据库性能也受影响,如果有可能还是根据应用分模块,创建不同的数据库存放...

还有7000万表记录已经不少了,你是怎么表扫描的?为什么要进行每15分钟的扫描呢...
3#
 楼主| 发表于 2009-4-1 23:00:17 | 只看该作者
q1: 创建多个数据库的话,那一个应用软件却同时对应多个数据库,而且各个数据库间再怎么划分肯定有些数据还是需要共享、交叉的。此时该如何解决呢,用集群?起初我想的也是创建多个数据库,但如果可以把.frm文件,像数据、索引文件那样放到不同目录,而不用创建多个数据库,那是最完美了。数据库目录下有几万个文件,是因为有些表进行了分区,所以文件较多。

q2:是这样的,假如有3张表,每张表都是7000万记录:t1,t2,t3。第一个15分钟扫描到t1的第3000万记录;第二个15分钟时,继续从t1的第3000万零一条(3千万的下一条)开始扫描;第三个15分钟时,扫描t1剩余1000万,同时再扫描t2中的2000万。以此类推,当然还有t3,t4等。这些表是按时间顺序进行创建的。
(扫描时,对每条记录都要进行相关的业务处理的。比较费时,但费时也就罢了,关键刚好正在创建索引时,就无法扫描表了。)
4#
 楼主| 发表于 2009-4-1 23:07:36 | 只看该作者
针对q2:我是考虑下面这些方法的:
1.采用innodb?innodb在创建索引时,是否可以读取表?如果可以读表那就OK了。
2.以空间换性能。保存上面说的t1,t2,t3时,同时保存专门用于扫描用的表,t1_1,t2_2,t3_3。(t1和t1_1数据完全一样)   这些专门用于扫描的表,就不用建索引了。同时,扫描的业务处理好完后,就可以把t1_1,t2_2,t3_3这些专门扫描的表删除掉以释放空间。

这只是偶的个人想法,希望各位达人多多指点,以采取最优方法,thank you...
5#
 楼主| 发表于 2009-4-1 23:13:18 | 只看该作者
对了,kider版主,我的邮箱是:veryokchy@sina.com  如果你不方便留你的联系方式的话,可否给我发邮件呢?我得向你好好学习啊,谢谢。。。
6#
发表于 2009-4-9 11:38:01 | 只看该作者
1. 按照业务逻辑分库。你现在的问题是文件系统的瓶颈了,而不是数据库。
2. 换成INNODB引擎。
7#
发表于 2009-4-9 11:57:29 | 只看该作者
楼上说的是

扫描也可以用DR做个同步,在同步数据库上做扫描..
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-5-4 23:54 , Processed in 0.069849 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表