2011-03-01 82 views
0

我有一个mysql数据库与各种不同的表,有些存储100k +行。我想要一种能够让我快速从数据库中读取的语言,允许我整理来自各种不同表格的数据并将它们存储到本地对象/数据结构中。然后,我会在本地完成大部分复杂的处理,我也希望对其进行优化。快速数据库读取和快速本地数据结构操作的最佳编程语言

这主要是针对每天清理出来的数据分析项目。有些朋友推荐使用Ruby或Python,但不知道,在我进行这个跳跃之前,我想要第二个意见。

回答

1

这里的部分问题是数据库和应用程序层代码之间的延迟。从您打算从中查询数据库的位置Ping数据库服务器。双倍,这是你每个操作的周转时间。如果你可以和那个时候一起生活,那么你没问题。但是你可能会更好地使用sprocs或者靠近数据库的东西编写你的操作,并使用你的应用程序代码来向用户显示。

0

在大多数情况下,Db将成为获取数据的瓶颈。

真的取决于你的“复杂处理”是什么,这将使你在什么语言和你需要什么性能方面有最大的区别。

从易于起床和开始的角度来看,python和ruby很快就可以开始使用并获得一些工作。与其他计算机相比,速度较慢。但即使如此,在你注意到与本地编译器语言有很大差异之前,它们都可以计算出许多东西。

+0

export LD_LIBRARY_PATH =/usr/lib64/mysql:$ LD_LIBRARY_PATH matlab -nodesktop mex -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient mysql.cpp – ivrin 2012-01-25 22:02:05

0

100,000条记录真的没有那么多。假如你有足够的ram,并且数据中的多个本地“索引”引用了相同的对象而不是副本,那么你将能够在本地缓存并快速访问它,而不用担心。虽然Ruby和Python都是解释型语言,操作型操作比编译型语言要慢,但实际情况是,在执行应用程序时,只有一小部分CPU时间花费在代码中,大部分花费在内置库中调用,这通常是本地实现,因此与编译代码一样快。

无论是Ruby还是Python都可以正常工作,即使您在测试后发现您的性能实际上还不够,从其中的一个转换为像Java或.NET这样的更快的语言,甚至C++也会如此比实际重写更快,因为你已经完成了艰难的工作。

另一个选项是将所有数据缓存在内存数据库中。根据您需要做的分析的动态情况,这可能适合您的情况。 SQLite对此非常有效。

另请注意,由于您要求在本地缓存数据,然后仅对本地缓存进行操作,因此调用数据库的性能不适用。