Questions tagged «sqlite»

3
为什么不推荐使用Web SQL数据库?
我正在制作一个混合Android应用程序。 最初,我决定使用localStorage,花了两天后,我意识到它很奇怪,因此放弃了它。 然后,在花费了整整一天时间并实际上在Google Chrome中获取了输出之后,我选择了indexedDB,它没有在android应用的WebView中运行。 而且我从未使用过Web SQL数据库,因为它已被弃用。无论如何,我注意到PhoneGap仍然使用Web SQL,而android的浏览器支持它。 为什么首先不推荐使用Web SQL?现在使用Web SQL对我来说是一个好主意吗?


1
SQLite数据库的实际最大实际大小是多少?
根据有关SQLite适当用法的这篇文章,它说,尽管SQLite的限制为140 TB,但客户端/服务器RDBMS可能会更好地工作: SQLite数据库的大小限制为140 TB(2 47字节,128 TB)。即使可以处理更大的数据库,SQLite也会将整个数据库存储在单个磁盘文件中,而许多文件系统将文件的最大大小限制为小于此大小。因此,如果您正在考虑这种规模的数据库,那么最好考虑使用一个客户机/服务器数据库引擎,该引擎将其内容分布在多个磁盘文件中,甚至可能分布在多个卷中。 总的来说,我同意这一点,但是得知SQLite的最大限制如此之高,我感到很惊讶!根据我的经验,我已经使用了许多SQL Server数据库,其大小约为30-100GB。我还间接使用Oracle,Postgres或Cassandra处理更大的数据库。其中,至少就我所知,没有一个接近140TB。我不是DBA,因此根据我的直接经验,我认为这是“大笔”的事情。 对于数据库很小的情况,我只考虑过SQLite。最多几十兆。 阅读本文后,我仍然不相信要考虑将SQLite用于可能需要数百GB数据的任何事情。但是我想知道我是否一直在低估它的功能。在实际使用中,SQLite数据库的实际最大大小限制是多少?

2
内部使用网站:是否有针对SQLite的令人信服的案例?
许多Web框架(例如Flask或Django)都使用SQLite作为其默认数据库。 SQLite之所以引人注目,是因为它包含在python中,并且管理开销非常低。 但是,大多数高流量的公共生产站点最终都使用更重的数据库:mySQL,Oracle或postgresql。 问题: 假设: 站点流量适中,并且将同时进行对数据库的读/写访问 我们将结合使用SQLAlchemy和SQLite写锁(尽管此注释使我有些紧张) 该数据库可能包含60,000条记录 数据结构不需要在较重的数据库中发现的高级功能 对于作为中等流量内部公司工具的网站,是否存在令人信服的反对SQLite并发的案例?如果是这样,什么条件将导致SQLite出现并发问题? 我正在寻找已知的特定根本原因,而不是普遍的恐惧/未经证实的指责。

2
具有两个python进程访问它的SQLite:一次阅读,一次写作
我正在开发一个包含两个组件的小型系统:一个从互联网资源中轮询数据,然后将其转换为sql数据以将其持久化在本地;第二个从本地实例读取该sql数据,并通过json和一个平稳的api提供服务。 我本来打算使用postgresql保留数据,但是由于应用程序将要存储的数据量非常小,无法提供服务,因此我认为这太过分了。SQLite是否可以胜任?我喜欢占用空间小的想法,并且不需要为此任务维护另一台sql服务器,但是我担心并发性。 似乎在启用预写日志记录的情况下,可以在不将任何进程锁定在数据库之外的情况下同时进行SQLite数据库的读写。 如果只有一个SQLite实例读取并且另一个写入,则单个SQLite实例能否维持两个并发进程对其进行访问?我开始编写代码,但想知道这是否是SQLite的错误应用。

1
为什么Core Data sqlite表列以“ Z”开头?
我正在查看Core Data生成的sqlite表,并注意到所有表列均以“ Z”开头。我意识到这是一个实现细节,但是我很好奇为什么会这样,以及是否涉及设计决策。任何人碰巧知道或猜测为什么? 这是Core Data sqlite数据库的示例架构输出: sqlite> .schema 创建表ZPOST(Z_PK整数主键,Z_ENT整数,Z_OPT整数,ZPOSTID整数,ZUSER整数,ZCREATEDAT TIMESTAMP,ZTEXT VARCHAR); 创建表ZUSER(Z_PK整数主键,Z_ENT整数,Z_OPT整数,ZUSERID整数,ZAVATARIMAGEURLSTRING VARCHAR,ZUSERNAME VARCHAR); 创建表Z_METADATA(Z_VERSION整数主键,Z_UUID VARCHAR(255),Z_PLIST BLOB); 创建表Z_PRIMARYKEY(Z_ENT INTEGER主键,Z_NAME VARCHAR,Z_SUPER INTEGER,Z_MAX INTEGER);
10 ios  sqlite 

1
如果不接受在数字列中插入非数字值,SQLite会有用吗?
在SQLite中,以下语句将成功执行,并将字符串插入/更新到SALARY类型为的列中INTEGER: update employee set salary='TOO MUCH' where emp_id=1; 请注意,不会插入/更新零,而是实际的“ TOO MUCH”字符串,因此这与认证类型转换无关。 常见问题解答指出: 这是一个功能,而不是错误。SQLite使用动态类型。它不强制执行数据类型约束。任何类型的数据(通常)都可以插入任何列中。您可以将任意长度的字符串放入整数列,布尔列中的浮点数或字符列中的日期。您在CREATE TABLE命令中分配给列的数据类型不限制可以在该列中放入哪些数据。每列都可以容纳任意长度的字符串。(有一个例外:INTEGER PRIMARY KEY类型的列只能包含一个64位有符号整数。如果尝试将一个整数以外的任何内容放入INTEGER PRIMARY KEY列,则会导致错误。) 因此,这种行为显然是故意的,但是我想知道为什么 SQLite会有这种行为,因为我所知道的大多数其他SQL数据库的行为都大不相同,因此,当尝试将非数字字符串插入到数据库中时,它们将引发错误或将字符串转换为0一个数字列。 如果没有这种行为,SQLite库会不会有用呢? 这是设计使图书馆小而又快吗? 尝试在数字列中插入字符串时,SQLite库会明显变慢还是变大,以引起错误?
10 design  sqlite 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.