标签: sqlite

如何从sqlite读取datetime作为日期时间而不是Python中的字符串?

我正在使用Python 2.6.4中的sqlite3模块在SQLite数据库中存储日期时间.插入它非常简单,因为sqlite会自动将日期转换为字符串.问题是,当它读取它时它会以字符串形式返回,但我需要重建原始日期时间对象.我该怎么做呢?

python sqlite datetime

62
推荐指数
2
解决办法
5万
查看次数

在"DELETE FROM table"之后更改sqlite文件大小

我正在使用sqlite3文件.

首先,我进入了比较大的数据库,文件大小约为100 MB.

比我做的

$db->exec("DELETE FROM table");
Run Code Online (Sandbox Code Playgroud)

并只输入该数据库的一小部分.但文件大小仍然是100 MB.

删除内容时,如何更改sqlite文件大小?

sqlite

62
推荐指数
2
解决办法
2万
查看次数

SQLite按日期排序1530019888000

我的SQLite数据库中的每条记录都包含一个字段,其中包含以格式Date存储的字段.string'yyyy-MM-dd HH:mm:ss'

是否可以查询数据库以获取包含最新日期的记录?

sql sqlite sql-order-by android-sqlite

62
推荐指数
4
解决办法
7万
查看次数

如何从sqlite存储和检索blob

我在c ++,python和现在(也许)在C#中使用过sqlite.在所有这些中,我不知道如何将blob插入表中.如何在sqlite中存储和检索blob?

sqlite blob

61
推荐指数
5
解决办法
13万
查看次数

Chrome中的Sqlite

可以像使用firefox扩展一样使用与sqlite数据库交互的chrome扩展吗?你能给我一些建议或链接,有关开发chrome扩展与sqlite交互的更多信息吗?

谢谢

javascript sqlite google-chrome-extension

61
推荐指数
4
解决办法
10万
查看次数

Android中有多个表SQLite数据库适配器?

我正在阅读Android SQLite NotePad教程,该教程引用了创建数据库适配器类来创建和访问数据库表.在处理多表SQLite数据库时,最佳做法是为每个表创建不同的适配器类,还是为整个Android应用程序创建单个数据库适配器类?

我的应用程序使用多个表,我希望不必拥有一个庞大的适配器类.但问题是,每个适配器中的NotePad示例都有一个SQLiteOpenHelper的嵌套子类.访问第一个表时,一切正常.当我尝试访问第二个tble(来自不同的活动)时,我的应用程序崩溃了.

起初,我认为崩溃是由版本控制问题引起的,但两个适配器现在都具有相同的数据库版本,但它仍然崩溃.

以下是该表的一个数据库适配器的示例.其他适配器都遵循相同的格式,具有不同的实现.

public class InfoDBAdapter {
    public static final String ROW_ID = "_id";
    public static final String NAME = "name";

    private static final String TAG = "InfoDbAdapter";
    private static final String DATABASE_NAME = "myappdb";
    private static final String DATABASE_TABLE = "usersinfo";
    private static final int DATABASE_VERSION = 1;


    private static final String DATABASE_CREATE = "create table usersinfo (_id integer primary key autoincrement, "
            + NAME
            + " TEXT," + ");";

    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb; …
Run Code Online (Sandbox Code Playgroud)

sqlite android

60
推荐指数
2
解决办法
6万
查看次数

由于索引,SQLite插入速度会随着记录数量的增加而减慢

原始问题

背景

众所周知,SQLite 需要经过精细调整,以实现大约50k插入/秒的插入速度.这里有很多关于缓慢插入速度和大量建议和基准的问题.

还有声称SQLite可以处理大量数据,50 GB以上的报告不会导致正确设置出现任何问题.

我已经按照这里和其他地方的建议来实现这些速度,我很高兴35k-45k插入/秒.我遇到的问题是所有的基准测试只能显示<1m记录的快速插入速度.我所看到的是插入速度似乎与表格大小成反比.

问题

我的用例要求[x_id, y_id, z_id]在链接表中存储500米到1b元组()几年(1米行/天).值均为介于1和2,000,000之间的整数ID.有一个索引z_id.

前10米行的性能非常好,约35k插入/秒,但是当表有~20m行时,性能开始下降.我现在看到大约100个插入/秒.

桌子的大小不是特别大.对于20米行,磁盘上的大小约为500MB.

该项目是用Perl编写的.

这是SQLite中大型表的现实,还是有任何保密措施来维护 > 10m行的表的高插入率?

已知的解决方法,如果可能,我想避免

  • 删除索引,添加记录和重新索引:这可以作为一种解决方法,但在更新期间仍需要使用数据库时不起作用.在x分钟/天内完全无法访问数据库是行不通的
  • 将表分成较小的子表/文件:这将在短期内起作用,我已经尝试过它.问题是我需要能够在查询时从整个历史记录中检索数据,这意味着最终我将达到62表附件限制.附加,收集临时表中的结果,并且每个请求分离数百次似乎是很多工作和开销,但如果没有其他选择,我会尝试它.
  • 设置 SQLITE_FCNTL_CHUNK_SIZE:我不知道C(?!),所以我不想仅仅为了完成这项工作而学习它.我看不到使用Perl设置此参数的任何方法.

UPDATE

蒂姆的建议,一个指数,尽管SQLite的的说法,它能够处理大型数据集导致越来越缓慢插入时间,我进行以下设置的基准进行比较:

  • 插行:1400万
  • 提交批量大小:50,000条记录
  • cache_sizepragma:10,000
  • page_size实用语:4,096
  • temp_storepragma:记忆
  • journal_modepragma:删除
  • synchronouspragma:关闭

在我的项目中,与下面的基准测试结果一样,创建了基于文件的临时表,并使用了SQLite对导入CSV数据的内置支持.然后将临时表附加到接收数据库,并使用insert-select语句插入50,000行的集合 .因此,插入时间不会将文件反映到数据库插入时间,而是反映 表到表的插入速度.考虑CSV导入时间会使速度降低25-50%(非常粗略估计,导入CSV数据不需要很长时间).

显然有一个索引会导致插入速度随着表格大小的增加而减慢.

SQLite插图速度和表大小的图

从上面的数据可以清楚地看出,正确的答案可以分配给Tim的答案,而不是SQLite无法处理它的断言.显然,如果索引该数据集不是您的用例的一部分,它可以处理大型数据集.我一直在使用SQLite作为日志记录系统的后端,暂时 …

database sqlite optimization insert

60
推荐指数
2
解决办法
2万
查看次数

什么是sqlite的优秀OO C++包装器

我想为sqlite找到一个好的面向对象的C++(而不是C)包装器.人们推荐什么?如果您有多个建议,请将它们单独回复以进行投票.此外,请说明您是否有任何建议包装的经验以及您如何使用它.

c++ database sqlite

59
推荐指数
9
解决办法
3万
查看次数

游标适配器和sqlite示例

您好我正在寻找与sqlite一起使用游标适配器的示例代码?

database sqlite android android-layout android-cursoradapter

59
推荐指数
3
解决办法
11万
查看次数

如何在android中存储(位图图像​​)并从sqlite数据库中检索图像?

在我的项目中,我需要将图像存储到sqlite数据库中,还需要检索它以在我的android模拟器中显示.当我在解码编码字符串后直接显示它,我使用套接字从Java类中获取,图像显示在那里.但是,当我使用数据类型blob将字符串的字节数组代码存储到sqlite数据库中,然后使用该getblob()函数再次检索它时,它包含不同的值,并发生以下错误:

JAVA.lang.NULLPointerException: Factory returns null.
Run Code Online (Sandbox Code Playgroud)

我需要一个建议,将位图图像存储到sqlite数据库中,并从sqlite数据库中检索它.

sqlite android image bitmapimage

59
推荐指数
2
解决办法
14万
查看次数