标签: database

什么更快,MySQL中的SELECT DISTINCT或GROUP BY?

如果我有一张桌子

CREATE TABLE users (
  id int(10) unsigned NOT NULL auto_increment,
  name varchar(255) NOT NULL,
  profession varchar(255) NOT NULL,
  employer varchar(255) NOT NULL,
  PRIMARY KEY  (id)
)
Run Code Online (Sandbox Code Playgroud)

我希望获得所有独特的profession字段值,更快(或推荐):

SELECT DISTINCT u.profession FROM users u
Run Code Online (Sandbox Code Playgroud)

要么

SELECT u.profession FROM users u GROUP BY u.profession
Run Code Online (Sandbox Code Playgroud)

mysql sql database group-by distinct

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

好的PHP ORM库?

PHP有一个很好的对象关系映射库吗?

我知道PDO/ADO,但它们似乎只提供数据库供应商之间差异的抽象,而不是域模型和关系模型之间的实际映射.我正在寻找一个PHP库,其功能类似于Hibernate为Java和NHibernate为.NET做的方式.

php database orm

268
推荐指数
12
解决办法
32万
查看次数

是否有SQLite的.NET/C#包装器?

我有点想在C#.Net中使用SQLite,但我似乎无法找到合适的库.有吗?一个正式的?有没有其他方法可以使用SQLite而不是使用包装器?

.net c# database sqlite

267
推荐指数
6
解决办法
11万
查看次数

Android中使用的SQLite版本?

Android中使用的SQLite版本是什么?

原因:我想知道如何处理模式迁移.较新的SQLite版本支持"ALTER TABLE"SQL命令,这将节省我不得不复制数据,删除表,重新创建表和重新插入数据.

database migration sqlite schema android

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

PHP中的正确存储库模式设计?

前言:我正在尝试在具有关系数据库的MVC架构中使用存储库模式.

我最近开始用PHP学习TDD,并且我意识到我的数据库与我的应用程序的其余部分非常接近.我已经阅读了有关存储库和使用IoC容器将其"注入"我的控制器的内容.很酷的东西.但是现在有一些关于存储库设计的实际问题.考虑以下示例.

<?php

class DbUserRepository implements UserRepositoryInterface
{
    protected $db;

    public function __construct($db)
    {
        $this->db = $db;
    }

    public function findAll()
    {
    }

    public function findById($id)
    {
    }

    public function findByName($name)
    {
    }

    public function create($user)
    {
    }

    public function remove($user)
    {
    }

    public function update($user)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

问题#1:字段太多

所有这些find方法都使用select all fields(SELECT *)方法.但是,在我的应用程序中,我总是试图限制我获得的字段数量,因为这通常会增加开销并减慢速度.对于那些使用这种模式的人,你如何处理这个?

问题#2:方法太多了

虽然这个类现在看起来不错,但我知道在现实世界的应用程序中我需要更多的方法.例如:

  • findAllByNameAndStatus
  • findAllInCountry
  • findAllWithEmailAddressSet
  • findAllByAgeAndGender
  • findAllByAgeAndGenderOrderByAge
  • 等等.

如您所见,可能存在非常长的可能方法列表.然后,如果您添加上面的字段选择问题,问题就会恶化.在过去,我通常只是将所有这些逻辑放在我的控制器中:

<?php

class MyController
{
    public function users()
    {
        $users = User::select('name, email, status') …
Run Code Online (Sandbox Code Playgroud)

php database repository repository-pattern laravel

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

实体框架和连接池

我最近开始在我的.NET 4.0应用程序中使用Entity Framework 4.0,并对与池化相关的一些事情感到好奇.

  1. 据我所知,连接池由ADO.NET数据提供程序管理,在我的情况下是MS SQL服务器.当您实例化新的实体context(ObjectContext)时,这是否适用,即无参数new MyDatabaseModelEntities()

  2. a)为应用程序创建全局实体上下文(即一个静态实例)或b)使用using块为每个给定操作/方法创建和公开实体上下文有哪些优点和缺点.

  3. 我应该了解的某些场景的任何其他建议,最佳实践或常用方法?

.net database ado.net entity-framework connection-pooling

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

SQL中的TRUNCATE和DELETE有什么区别

我在响应写了一个回答这个问题的错误到一个问题有关的区别TRUNCATEDELETE,但我认为这是一个耻辱不共享,所以我会后我自己的答案,以我自己的问题...的是,即使道德?:)

编辑:如果您的答案是平台特定的,请指出.

sql database truncate

263
推荐指数
12
解决办法
41万
查看次数

如何在git(版本控制)下放置数据库?

我正在做一个Web应用程序,我需要为一些重大更改创建一个分支,事实是,这些更改需要更改数据库模式,所以我想将整个数据库放在git下.

我怎么做?是否有一个特定的文件夹,我可以保存在git存储库下?我怎么知道哪一个?我怎么能确定我正在放置正确的文件夹?

我需要确定,因为这些变化不向后兼容; 我搞不起搞砸了.

我的数据库是PostgreSQL

编辑:

有人建议进行备份并将备份文件置于版本控制下而不是数据库中.说实话,我发现真的很难吞下去.

一定有更好的方法.

更新:

好的,所以没有更好的方法,但我仍然不太相信,所以我会稍微改变一下这个问题:

我想把整个数据库置于版本控制之下,我可以使用什么数据库引擎,以便我可以将实际数据库置于版本控制而不是转储?

sqlite会对git友好吗?

由于这只是开发环境,我可以选择我想要的任何数据库.

EDIT2:

我真正想要的不是跟踪我的开发历史,而是能够从我的"新的激进变化"分支切换到"当前的稳定分支",并且能够例如修复一些错误/问题等等.稳定的分支.这样,当我切换分支时,数据库自动神奇地变得与我当前所在的分支兼容.我真的不太关心实际数据.

database git postgresql version-control

263
推荐指数
8
解决办法
12万
查看次数

什么是OLTP和OLAP.他们之间有什么区别?

其实他们的意思是什么?我找到的关于他们的所有文章都没有给我一个想法,或者我的知识太不足以理解它.

有人会给我一些资源,我可以从头学到这些资源.

database olap database-design oltp database-schema

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

客户端IP地址的最大长度

可能重复:
IPv6地址的文本表示的最大长度?

作为存储客户端IP地址的数据库列的最大大小,您会建议什么?我现在把它设置为16,但是我可以获得比IPv6更长的IP地址吗?

sql database database-design

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