Questions tagged «database»

数据库是有组织的数据集合。它是模式,表,查询,报告,视图和其他对象的集合。数据通常以支持需要信息的流程的方式来组织,以对现实的各个方面进行建模。如果对设计数据库有疑问,请使用此标记。如果它与特定的数据库管理系统(例如MySQL)有关,请改用该标记。


8
数据库索引如何工作?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 鉴于索引随着数据集的增加而变得非常重要,有人可以解释索引在数据库不可知的级别是如何工作的吗? 有关查询索引字段的信息,请查看如何索引数据库列。

26
插入…值(SELECT…FROM…)
我正在尝试INSERT INTO使用来自另一个表的输入的表。尽管对于许多数据库引擎来说这是完全可行的,但我似乎总是很难记住当今SQL引擎(MySQL,Oracle,SQL Server,Informix和DB2)的正确语法。 是否有来自SQL标准(例如SQL-92)的Silver-bullet语法,该语法可让我插入值而无需担心基础数据库?

7
在关系数据库中存储分层数据有哪些选择?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 10个月前关闭。 好的概述 一般来说,您需要在快速读取时间(例如,嵌套集)或快速写入时间(邻接列表)之间做出决定。通常,您最终会得到以下最适合您的选项的组合。以下内容提供了一些深入的阅读: 嵌套间隔与邻接列表的另一比较:邻接列表,物化路径,嵌套集和嵌套间隔的最佳比较。 分层数据模型:幻灯片,其中对折衷和示例用法进行了很好的解释 在MySQL中表示层次结构:特别是对嵌套集的很好概述 RDBMS中的分层数据:我见过的最全面,组织最完整的链接集,但解释方式不多 选件 我知道的和一般功能: 邻接表: 列:ID,ParentID 易于实现。 廉价节点移动,插入和删除。 昂贵的查找级别,祖先和后代,路径 通过支持它们的数据库中的公用表表达式避免N + 1 嵌套集(又名修改后的预排序树遍历) 列:左,右 廉价祖先,后裔 O(n/2)由于易失性编码,非常昂贵的移动,插入,删除 桥接表(又名闭包表/ w触发器) 使用单独的联接表,并带有:祖先,后代,深度(可选) 便宜的祖先和后裔 写入O(log n)用于插入,更新,删除的成本(子树的大小) 标准化编码:适合联接中的RDBMS统计和查询计划程序 每个节点需要多行 沿袭列(又名物化路径,路径枚举) 栏:沿袭(例如/ parent / child / grandchild / etc ...) 通过前缀查询的廉价后代(例如LEFT(lineage, #) = '/enumerated/path') 写入O(log n)用于插入,更新,删除的成本(子树的大小) 非关系:依赖于数组数据类型或序列化的字符串格式 嵌套间隔 类似于嵌套集,但具有实数/浮点数/十进制数,因此编码不会不稳定(廉价的移动/插入/删除) …


30
如何快速重命名MySQL数据库(更改架构名称)?
在MySQL手册的MySQL涵盖这一点。 通常,我只是转储数据库,然后使用新名称重新导入它。对于大型数据库,这不是一个选择。显然RENAME {DATABASE | SCHEMA} db_name TO new_db_name; 做不好的事情,仅存在于少数几个版本中,并且总体而言是个坏主意。 这需要与InnoDB一起使用,后者存储的内容与MyISAM完全不同。
959 mysql  database  innodb  rename 

25
MyISAM与InnoDB [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我要说的是一个涉及大量数据库写入的项目(70%的插入和30%的读取)。这个比率还将包括我认为是一次读取和一次写入的更新。读取内容可能很脏(例如,读取时我不需要100%准确的信息)。 有问题的任务将是每小时进行超过一百万次数据库事务。 我已经在网上阅读了很多有关MyISAM和InnoDB之间差异的内容,对于我将用于此任务的特定数据库/表,MyISAM似乎是我的明显选择。从我看来,由于需要支持行级锁定,因此如果需要事务处理,InnoDB很好。 是否有人对这种负载(或更高负载)有任何经验?MyISAM是要走的路吗?


23
数据库,表和列的命名约定?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 每当我设计数据库时,我总是想知道是否有最佳方式在数据库中命名项目。我经常问自己以下问题: 表名应该是复数吗? 列名应为单数吗? 我应该为表格或列添加前缀吗? 我在命名项目时应该使用大小写吗? 是否有建议的指南来命名数据库中的项目?

6
MongoDB与Cassandra的比较
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 我正在评估什么是最好的迁移选项。 目前,我在分片的MySQL(水平分区)上,我的大部分数据存储在JSON Blob中。我没有任何复杂的SQL查询(自从对数据库进行分区以来,已经迁移了)。 现在,似乎MongoDB和Cassandra都是可能的选择。我的情况: 每个查询中的读取次数很多,常规写入的次数更少 不担心“大规模”的可扩展性 更关注简单的设置,维护和代码 最小化硬件/服务器成本

10
数据库水平和垂直缩放之间的差异
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4个月前关闭。 我遇到过许多NoSQL数据库和SQL数据库。有各种参数可以衡量这些数据库的优缺点,而可伸缩性就是其中之一。水平和垂直缩放这些数据库有什么区别?

10
Android上SQLite的最佳做法是什么?
在Android应用程序中的SQLite数据库上执行查询时,最佳做法是什么? 从AsyncTask的doInBackground运行插入,删除和选择查询是否安全?还是应该使用UI线程?我想数据库查询可能“繁重”,并且不应该使用UI线程,因为它可以锁定应用程序-导致应用程序无响应(ANR)。 如果我有几个AsyncTask,它们应该共享一个连接还是应该每个打开一个连接? 这些方案是否有最佳实践?
694 android  database  sqlite 


20
在SQL Server中删除记录后重置身份种子
我已将记录插入到SQL Server数据库表中。该表已定义了主键,并且自动增量标识种子设置为“是”。这样做主要是因为在SQL Azure中,每个表都必须定义一个主键和标识。 但是由于我必须从表中删除一些记录,所以这些表的标识种子将受到干扰,索引列(索引列(以1为增量自动生成)也将受到干扰)。 删除记录后如何重置标识列,以便该列按升序排列? 标识列不用作数据库中任何地方的外键。

5
多个索引与多列索引
我一直在向SQL Server 2005中的表添加索引,这让我开始思考。创建1个索引和定义多个列而不是要索引的每列有1个索引之间有什么区别? 有某些原因为什么要使用另一种方法? 例如 Create NonClustered Index IX_IndexName On TableName (Column1 Asc, Column2 Asc, Column3 Asc) 与 Create NonClustered Index IX_IndexName1 On TableName (Column1 Asc) Create NonClustered Index IX_IndexName2 On TableName (Column2 Asc) Create NonClustered Index IX_IndexName3 On TableName (Column3 Asc)

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.