标签: sqlite

什么是Sqlite用于?

我不知道这是多么权威,但我发现了这个:

http://www.sqlite.org/cvstrac/wiki?p=PerformanceConsiderations

与sqlite有很多连接似乎并不好.这似乎对Web和大多数具有多个用户的应用程序都不利.我很难想到当你不需要那么多连接时会使用什么sqlite.我能想到的每个程序都需要用户,有时需要很多,所以我使用数据库会不会允许那么多连接?我考虑过原型,但为什么我可以在连接到更大的数据库时使用它?嵌入式应用可能?

谢谢.

编辑:谢谢大家.我看下面推荐的页面,但对某些事情感到困惑:

在sqlite的适当用途下,它具有:

SQLite运行良好的情况

•网站

SQLite通常可以作为中低流量网站的数据库引擎(也就是所有网站的99.9%).当然,SQLite可以处理的Web流量大小取决于网站使用其数据库的程度.一般来说,每天点击次数少于100K的网站应该可以正常使用SQLite.100K点击/天的数字是一个保守估计,而不是一个硬上限.SQLite已被证明可以使用10倍的流量.

另一个RDBMS可以更好地工作的情况

•客户/服务器应用程序

如果您有许多客户端程序通过网络访问公共数据库,则应考虑使用客户端/服务器数据库引擎而不是SQLite.SQLite将在网络文件系统上运行,但由于与大多数网络文件系统相关的延迟,性能不会很好.此外,许多网络文件系统实现的文件锁定逻辑包含错误(在Unix和Windows上).如果文件锁定不能正常工作,则两个或多个客户端程序可能同时修改同一数据库的同一部分,从而导致数据库损坏.由于此问题是由底层文件系统实现中的错误引起的,因此SQLite无法阻止它.

一个好的经验法则是,在通过网络文件系统从多台计算机同时访问同一数据库的情况下,应避免使用SQLite.

问题:

我将在这里展示我的无知,但这两者之间的区别是什么?

sqlite connection

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

MySQL vs Firebird vs SQLite

我们将实施一个基于公司(非开源)的软件,我实在无法选择我将使用哪一个.我可以在这里看到它们之间的差异, 但是我需要更具体的信息,比如真的MySql对于非开源项目(基于这个博客)不是免费的,或者它们在部署中的比较如何?

编辑:我需要扩展我的问题.我们只是在现有项目中实现API.这将用作独立程序,但它是一个嵌入式系统项目,因此部署非常重要.我知道SQLite很容易部署,但我可以看到有一些缺点.你能否告诉我哪种情况可以根据这种情况更好地使用?

谢谢你们

mysql database sqlite firebird

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

拥有多个指数有哪些缺点?

我最近通过给SQLite一个很好的索引来加速一个复杂的查询.这样的结果让我想知道是否应该索引常用于JOIN或ORDER BY子句的许多其他字段.但是我不想过度热心并让它适得其反:我认为必须有一些理由创建索引,或者默认情况下每个字段都会被编入索引.

我在这种情况下使用SQLite,但当然也欢迎DBMS不可知的建议.

sql database sqlite indexing rdbms-agnostic

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

从一个数据库向另一个数据库插入100 000条记录的最快方法是什么?

我有一个移动应用程序.我的客户端有大量数据集~100,000条记录.它经常更新.我们同步时需要从一个数据库复制到另一个数据库.

我已将第二个数据库附加到main,并运行一个insert into table select * from sync.table.

这非常慢,我认为大约需要10分钟.我注意到日志文件逐步增加.

我怎样才能加快速度呢?

编辑1

我有索引,我有日记.运用

insert into table select * from sync.table
Run Code Online (Sandbox Code Playgroud)

它还需要10分钟.

编辑2

如果我运行像这样的查询

select id,invitem,invid,cost from inventory where itemtype = 1 
order by invitem limit 50 
Run Code Online (Sandbox Code Playgroud)

需要15-20秒.

表模式是:

CREATE TABLE inventory  
('id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
 'serverid' INTEGER NOT NULL DEFAULT 0,
 'itemtype' INTEGER NOT NULL DEFAULT 0,
 'invitem' VARCHAR,
 'instock' FLOAT  NOT NULL DEFAULT 0,
 'cost' FLOAT NOT NULL DEFAULT 0,
 'invid' VARCHAR,
 'categoryid' INTEGER  DEFAULT …
Run Code Online (Sandbox Code Playgroud)

c# sqlite compact-framework bulkinsert

17
推荐指数
2
解决办法
6308
查看次数

H2数据库与Android上的SQLite

由于Android中嵌入式SQLite数据库缺乏Unicode支持

我最感兴趣的是H2数据库与Android SQLite的性能和稳定性

你们是用它吗?我应该知道任何H2数据库的缺点吗?

database sqlite android h2 embedded-database

17
推荐指数
1
解决办法
1万
查看次数

startManagingCursor的目的是什么?

好的,文档声明它允许Activity管理游标的生命周期.但是我没有真正看到它的重点,因为当活动被销毁时,对新创建的游标的任何引用也应该被删除,然后光标本身在下一个垃圾收集周期中就会消失.那为什么要这么麻烦?

sqlite android cursor android-loadermanager android-cursorloader

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

如何通过ORDER构建一个SQLite查询到GROUP?

我有一个相当有趣的情况.我有一个充满地址和消息的SQLite数据库(地址不是唯一的;消息是).每条消息还有一个与之关联的日期.我想要做的是选择第一个消息的地址,消息,日期以及与该地址关联的消息数量.

所以,我想,"我可以通过集团的地址只有每个地址得到一个消息,然后按日期顺序这些,也获取地址栏的数量."

我这样做了,它有效......有点儿.它获取正确的计数,每个地址只获取一条消息,并按日期排序 - 但它不会选择该地址的最新消息.这似乎是武断的.

例如,我有三条消息(最早到最晚)来自地址Y的A,B,C和来自地址Z的三条消息D,E,F.查询可以获取消息B和E,然后按日期对它们进行排序.它应该获取消息C和F,并按日期对它们进行排序.

这是我到目前为止:

// Expanded version:
Cursor cursor = db.query(
    /* FROM */ "messages_database",
    /* SELECT */ new String[]{ "*", "COUNT(address) AS count" },
    /* WHERE */ null,
    /* WHERE args */ null,
    /* GROUP BY */ "address",
    /* HAVING */ null,
    /* ORDER BY */ "date DESC"
);

// Or, same code on one line:
Cursor cursor = db.query("messages_database", new String[]{ "*", "COUNT(address) AS count" …
Run Code Online (Sandbox Code Playgroud)

sql sqlite android greatest-n-per-group

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

SQLite中的UPDATE语法

我需要知道我是否可以在UPDATE语句中执行此操作:

UPDATE users SET ('field1', 'field2', 'field3') 
VALUES ('value1', 'value2', 'value3');
Run Code Online (Sandbox Code Playgroud)

或者类似的语法.我正在使用SQLite.

注意:

没有人理解我,我只是想知道是否可以设置单独的字段来分隔值.就这样.

sql sqlite sql-update

17
推荐指数
4
解决办法
6万
查看次数

删除sqlite的WAL文件是否安全?

我在iOS应用程序中有一个奇怪的问题,有时WAL文件变得很大(~1GB).看来还有其他人有问题(例如,当插入~5000行时,Core Data sqlite-wal文件获得MASSIVE(> 7GB)).

我最初的想法是在应用程序启动时删除WAL文件.从阅读关于此事的sqlite文档来看,这似乎没问题.但有人知道这样做的任何缺点吗?

我当然希望深入了解为什么WAL文件增长如此之大,但我现在无法深入了解它并希望在深入研究问题的同时加入解决方案.

值得指出的是,我的Core Data数据库更像是一个缓存.因此,如果我丢失了WAL中的数据并不重要.我真正需要知道的是,如果删除WAL,数据库是否会完全损坏?我的怀疑是否定的,否则WAL不能达到其目的之一.

sqlite core-data ios

17
推荐指数
5
解决办法
1万
查看次数

Swift:将CoreData作为数组获取

我想获取sqlite表中的所有已保存数据.

我现在正在这样做:

 func GetAllData() -> NSArray
{
    var error : NSError? = nil;
    var request : NSFetchRequest = NSFetchRequest(entityName: "Locations");
    let result : [AnyObject] = managedObjectContext!.executeFetchRequest(request, error:&error)!;
      var elements : NSMutableArray = NSMutableArray();
    for fetchedObject in result
    {
        elements.addObject(fetchedObject[0]);
    }
    print(elements);
    return elements;
}
Run Code Online (Sandbox Code Playgroud)

我在Objective-C中获取数据没有问题,但是我很快就得到它!

保存数据工作正常.我有两行"名称"和"类别".如何显示所有已保存的数据?

sqlite core-data ios swift

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