将html文件(小尺寸,〜最大700kb)存储到数据库中的最佳数据库类型(面向文档,关系,键值等)是什么?
目前我正在使用带有python的sqlite3,但是如果条目/文件的数量超过3000(然后.db文件大约是260mb),它似乎变得非常慢。除此之外,sqlite不适合多处理用例。
sqlite架构是这样的:
CREATE TABLE articles (url TEXT NOT NULL,published DATETIME,title TEXT, fetched TEXT NOT
NULL,section TEXT,PRIMARY KEY (url), FOREIGN KEY(url) references
contents(url));
CREATE TABLE contents(url TEXT NOT NULL,date DATETIME,content TEXT,PRIMARY KEY (url));
CREATE TABLE shares (url TEXT NOT NULL, date DATETIME,likes INTEGER NOT NULL,
totals INTEGER NOT NULL,clicks INTEGER, comments INTEGER NOT
NULL,share INTEGER NOT NULL,
tweets INTEGER NOT NULL,PRIMARY KEY(date,url),FOREIGN KEY (url)
REFERENCES articles(url));
html文件转到内容
答案 0 :(得分:0)
对于使用URL作为主键并且还必须支持多个并发编写器的以文档为中心的数据库,您可能希望考虑使用SQLite之一的noSQL数据库。目前有122个列出here。
“相当慢”对你意味着什么?你确定感知到的缓慢是@数据库吗?
答案 1 :(得分:0)
so you think, sqlite should be scalable enough in general?
现实世界中没有“一般”情景。不,我不认为它可以很好地扩展到以文档为中心的应用程序,其中记录可以是500K。 SQLite未经过优化,无法在BUSY MULTIPLE CONCURRENT WRITERS SCENARIO中很好地扩展,其中“busy”是一个多变量函数,涉及每秒的写入次数和正在写入的记录的大小以及表中的索引数量。简而言之,写入操作的磁盘密集程度越高( ergo 耗时),它的规模就越小。换句话说,记录越大和/或表索引越重,每秒的写入次数就越少。而500K的记录确实是一个非常大的记录。 MVCC会为你提供更好的服务。