标签: database

连接表性能的ORDER BY列

我有1:1关系的2个表(但将来可能会变成1:N关系),如下所示:

CREATE TABLE article (
   article_id INT,
   inserted DATETIME
) ENGINE InnoDB;

CREATE TABLE article_top (
   article_top_id INT,
   article_id INT,
   until DATETIME
) ENGINE InnoDB;
Run Code Online (Sandbox Code Playgroud)

我需要做的是选择文章依据;通过article_top.until DESC和之后article.inserted DESC(因此,“顶”的文章都在上面,其余的从最新分类到最旧)。

我执行以下查询,这很慢(当我跳过article_top.untilORDER BY子句中的时很快):

SELECT * FROM article 
LEFT JOIN article_top
ON article.article_id = article_top.article_id 
ORDER BY article_top.until DESC, article.inserted DESC
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

除了将两个表合并为一个表(丢失1:N关系的可能性)之外,我还可以做一些优化查询的事情吗?

我正在考虑向表中添加其他列,article并使用触发器对其进行更新。这样,我可以将索引添加到两个列中,并且排序应该更快。

还有其他方法可以优化查询吗?

谢谢

mysql sql database performance

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

现代DBMS是否包括短路布尔评估?

许多现代编程语言都有短路布尔评估,如下所示:

if (x() OR y())
Run Code Online (Sandbox Code Playgroud)

如果x()返回true,y()则永远不会评估.

现代DBMS(SQL Server,Sybase,Oracle,DB2等)上的SQL是否具有此属性?

特别是如果布尔语句的左侧是布尔常量,它是否会被短路?


相关:所有编程语言都有布尔短路评估吗?

sql database optimization

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

如何在Android上存储SQLite中的字符串集合?

我在应用程序中使用数据库时缺乏经验,所以我需要一些指导.

我有一个带有几个原始字段的Java对象,以及对Strings和ArrayList对象的几个引用.原语和字符串很好地映射到可用的SQLite字段,但我不确定如何持久保存ArrayLists.

我正在娱乐两个想法,其中一个是序列化ArrayLists并将它们存储在Text字段中,另一个是有一个指向arity 1的表的列,我可以在其中存储单个字符串,但是我我不确定如何在android中实现这一点.我对不同的方法持开放态度,但我不知道如何使用SQLite在java中实现后者,因此解决方案很可爱.谢谢.

java database sqlite android

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

SQLAlchemy使用SQLite丢失时区信息

我遇到一个问题,SQLAlchemy(版本0.6.4和0.6.8)datetime在使用SQLAlchemy DateTime类定义的列提交到SQLite数据库时丢失了来自对象的时区信息.(我意识到SQLAlchemy正在将其转换为字符串并返回,这是我认为是问题的一半).

由于代码比单词更响亮,我有以下示例/再现:

import datetime, pytz, sqlalchemy
from sqlalchemy import create_engine, Column, Integer, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///:memory:', echo=True)
Base = declarative_base()

Session = sessionmaker(bind=engine)
session = Session()

class Example(Base):
    __tablename__ = "example"
    id = Column(Integer, primary_key=True)
    date = Column(DateTime(timezone=True))

    def __init__(self, date):
        self.date = date

Base.metadata.create_all(engine)

aucklandtz = pytz.timezone('Pacific/Auckland')
exdatetime = datetime.datetime(2011,8,8,2,23)

print aucklandtz, exdatetime

# inject TZ to exdatetime:
injdatetime = aucklandtz.localize(exdatetime)

print injdatetime

newrecord = Example(injdatetime)
print …
Run Code Online (Sandbox Code Playgroud)

python database sqlite datetime sqlalchemy

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

用于构建数据库表单的开源选项

我想将一些用户从MS Access移到像MySQL,Postegres甚至SQLite这样的开源数据库上.将表从一个DB传输到另一个DB没有问题,但我需要能够为它们提供与用于输入数据的MS Access表单类似的UI.另外,我希望能够为它们提供引用表或查询的漂亮报告输出.

建议/可用的开源替代方案可以轻松构建和存储类似于MS Access的查询,表单和报告,而无需快速启动和运行所需的大量编程?

显然我立即针对Windows替代方案,但我不想将建议仅限于一个操作系统.

database forms ms-access open-source

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

Solr"实时"索引

我知道有几个类似的问题,但它们并没有提供一个简单的答案来解决手头的问题.对不起,如果你认为这是重复的,但我认为明确和可理解的答案会使许多人受益.所以,问题.

Solr索引更新能否自动化?如果可以的话,最佳的方法是什么?

这是一个简单的用例来澄清这个问题:我有一个数据库表,其中包含几列不同类型的数据.有一个用于管理数据的Web应用程序.我有单独的Solr服务器来索引上面提到的表中的指定列.如何在用户添加,删除或修改所述表中的数据时,Solr会注意到已更改并修改索引.

它必须是"实时"的.这意味着几秒钟后就会发生变化.当然,对于大量数据,它可以更多.

提前致谢

database indexing solr

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

LightSwitch内部数据库在哪里?

我刚刚下载了VS LightSwitch,我正在为自己做一个示例应用程序.我使用Create new table选项创建了一个新表,并插入了一些数据.所以在我插入3条记录之后,ID显然显示为3,这是正确的.

现在我想截断表中的数据.

我的问题是,内部表或内部数据库(ApplicationData)在哪里?

谢谢

database visual-studio-lightswitch

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

用于CouchDB的数据库查看器是什么?

我对CouchDB很新.我没有为CouchDB找到数据库查看器.如何在不操作原始HTTP消息的情况下查看CouchDB数据库?

理想情况下,该工具将满足以下要求:

  • 跨平台(主要是Windows或Linux)
  • 桌面应用程序或Web应用程序
  • 允许编辑文档,数据库等

database couchdb viewer

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

从现有数据库映射的Symfony2 Doctrine2(例外)

我已经有了一个MySQL数据库,因此我希望从中创建映射元数据existing database.

php app/console doctrine:mapping:convert xml ./src/MainBundle/Resources/config/doctrine/metadata/orm --from-database --force
Run Code Online (Sandbox Code Playgroud)

但是我遇到了以下异常

[Doctrine\ORM\Mapping\MappingException] 
Property "customerid" in "Accountcustomer" was already declared, but it must be declared only once
Run Code Online (Sandbox Code Playgroud)

我没有customerId在数据库中的任何其他位置使用任何主/复合键,但是我已经多次将它用作外键.

但是,我不知道customerId复合键或其他主键如何影响这一点.

database symfony doctrine-orm

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

如何将数据库从Filemaker迁移到Mysql?

我正在重建基于Symfony1.4和MySQL 5.1的ERP系统。挑战在于以前的系统是基于Filemaker Pro构建的,我必须将所有以前的数据迁移到当前系统。为此,我首先需要将所有数据移动到完整保留了先前模式结构的MySQL DB,然后可以通过根据需要编写脚本将数据映射到当前系统模式。

我应该如何进行第一步?是否有任何现有工具或流程可以做到这一点?

任何帮助将不胜感激!提前致谢!

mysql database migration filemaker database-migration

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