这是我们的计划。我有一个很大的CSV文件摘录从一个数据库10 000项。这些条目看起来如下:
所以,我读过关于把这些CSV数据送到MySQL数据库的文章,并且查询那些数据库,知道谁在2012年2月卖出了更多,或者john的销售总额是多少。或者任何我要求的..。
但是为了优化目的,缓存、优化和索引查询是必须的.女巫带我去问这个问题。因为我知道2-3个查询,所以我会一直对数据库.是否更快地获取CSV文件,在PHP中提出请求,并在磁盘上写入一个结果文件,那么我所有的调用都将是readfile-load- it,display?
question...is查询DB的另一种措辞是更快还是更慢,将文件读取到磁盘?因为如果DB有10000条记录,而paul的销售结果是100行,那么该文件将只包含100行,它将是很小的.查询的时间总是相同的。
PLease帮助,我不是自己编码它只是为了发现事情是明显的,你.提前感谢
发布于 2013-11-28 15:39:27
如果您坚持数据库规范化规则,并将数据库中的所有内容都包含进去,那么您就可以了。10k记录实际上并不多,您不应该担心性能。
数据库查询速度更快,因为数据被(部分)缓存在内存中而不是普通磁盘上,除非完全读入RAM。
一些纯文本文件乍一看可能更快,但是当数据库中有100 k文件和100 k数据集时,数据库会好得多,您没有无限的(并行) inode访问,并且正在减慢和关闭您的硬盘/ssd。你拥有的文件越多,获得的速度就越慢。
您还必须手动编写锁定队列代码,以便进行读写操作,这些操作已经集成到MySQL (、row-和表锁定)中。
想想几个月后你想要延长一切,.如何在文本文件中实现JOINS?所有聚合功能 MySQL都已经在中构建了 (GROUP BY,ORDER BY,.)。
MySQL有一个分析器(在每个语句之前使用EXPLAIN ),并且可以优化更大的数据集。
当我去学校时,我对我的老师说:“普通的文件比你的MySQL快得多。”我为每个用户创建了一个目录,并将属性存储在该用户文件夹内的文本文件中,就像:
/menardmam/username.txt、/menardmam/password.txt、/DanFromgermany/username.txt、.我试图对此进行基准测试,而ya文本文件的速度更快,但这仅仅是因为它只有1000个文本文件。对于真正的业务,1000000000数据集,合并和交叉连接,没有办法用文本文件来完成这一任务,而且在申请一份工作时使用MySQL比使用文本文件做的工作要好得多。
https://stackoverflow.com/questions/20269940
复制相似问题