标签: database

4506
推荐指数
24
解决办法
228万
查看次数

为什么我不应该在PHP中使用mysql_*函数?

为什么一个人不应该使用mysql_*功能的技术原因是什么?(例如mysql_query(),mysql_connect()mysql_real_escape_string())?

即使他们在我的网站上工作,为什么还要使用其他东西?

如果他们不在我的网站上工作,为什么我会收到错误

警告:mysql_connect():没有这样的文件或目录

php mysql database

2432
推荐指数
12
解决办法
21万
查看次数

数据库索引如何工作?

鉴于索引在数据集大小增加时非常重要,有人可以解释索引在数据库无关的级别上的工作原理吗?

有关索引字段的查询的信息,请查看如何索引数据库列.

sql database indexing performance database-indexes

2335
推荐指数
8
解决办法
82万
查看次数

插入...值(SELECT ... FROM ...)

我正在尝试INSERT INTO使用另一个表的输入表.虽然这对于许多数据库引擎来说完全可行,但我似乎总是很难记住当时SQL引擎的正确语法(MySQL,Oracle,SQL Server,InformixDB2).

是否有来自SQL标准的银弹语法(例如,SQL-92)允许我插入值而不用担心底层数据库?

sql database syntax database-agnostic ansi-sql-92

1340
推荐指数
24
解决办法
243万
查看次数

在关系数据库中存储分层数据有哪些选项?

好的概述

一般来说,您要在快速读取时间(例如,嵌套集)或快速写入时间(邻接列表)之间做出决定.通常,您最终会得到最适合您需求的以下选项组合.以下提供了一些深入阅读:

选项

我知道和一般的功能:

  1. 邻接清单:
    • 列:ID,ParentID
    • 易于实施.
    • 便宜节点移动,插入和删除.
    • 昂贵的找到水平,血统和后代,路径
    • 在支持它们的数据库中通过公用表表达式避免使用N + 1
  2. 嵌套集(又名修改的预订树遍历)
    • 列:左,右
    • 便宜的血统,后代
    • 非常昂贵的O(n/2)移动,插入,由于易失性编码而删除
  3. 桥表(又名闭包表/ w触发器)
    • 使用单独的连接表:祖先,后代,深度(可选)
    • 廉价的血统和后代
    • 写入O(log n)插入,更新,删除的成本(子树的大小)
    • 规范化编码:适用于连接中的RDBMS统计信息和查询规划器
    • 每个节点需要多行
  4. 谱系列(又名物化路径,路径枚举)
    • 专栏:血统(例如/父母/孩子/孙子/等......)
    • 廉价后代通过前缀查询(例如LEFT(lineage, #) = '/enumerated/path')
    • 写入O(log n)插入,更新,删除的成本(子树的大小)
    • 非关系型:依赖于Array数据类型或序列化字符串格式
  5. 嵌套间隔
    • 像嵌套集一样,但是使用实数/浮点数/小数,这样编码就不易变(廉价的移动/插入/删除)
    • 有实/浮/十进制表示/精度问题
    • 矩阵编码变体为"自由"添加了祖先编码(物化路径),但增加了线性代数的诡计.
  6. 平表
    • 修改的Adjacency List,为每条记录添加Level和Rank(例如排序)列.
    • 便宜迭代/分页
    • 昂贵的移动和删除
    • 好用:线程讨论 - 论坛/博客评论
  7. 多个谱系列
    • 列:每个谱系级别一个,指向根目录的所有父级,从项目级别向下的级别设置为NULL
    • 便宜的祖先,后代,水平
    • 便宜的插入,删除,移动的叶子 …

sql database tree relational-database hierarchical-data

1281
推荐指数
7
解决办法
23万
查看次数

如何列出使用ATTACH打开的SQLite数据库文件中的表?

什么SQL可用于列出表,以及SQLite数据库文件中这些表中的行 - 一旦我ATTACH在SQLite 3命令行工具上附加了命令?

sql database sqlite metadata

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

如何快速重命名MySQL数据库(更改模式名称)?

在MySQL手册的MySQL涵盖这一点.

通常我只是转储数据库并使用新名称重新导入它.对于非常大的数据库,这不是一个选项.显然RENAME {DATABASE | SCHEMA} db_name TO new_db_name; 做坏事,只存在于少数几个版本中,并且整体上是一个坏主意.

这需要与InnoDB一起使用,InnoDB的存储方式与MyISAM完全不同.

mysql database innodb rename

919
推荐指数
29
解决办法
118万
查看次数

MyISAM与InnoDB

我正在研究涉及大量数据库写入的项目,我会说(70%的插入和30%的读取).该比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,在读取时我不需要100%准确的信息).
有问题的任务将是每小时进行超过100万次数据库事务.

我在网上看到了一些关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是我的明显选择.从我似乎正在阅读的内容来看,如果需要事务处理,InnoDB很好,因为支持行级锁定.

有没有人有这种负载(或更高)的经验?MyISAM是走的路吗?

mysql database performance myisam innodb

853
推荐指数
16
解决办法
29万
查看次数

识别和非识别关系之间有什么区别?

我无法完全掌握差异.你能描述这两个概念并使用现实世界的例子吗?

database database-design data-modeling identifying-relationship

773
推荐指数
8
解决办法
39万
查看次数

数据库,表和列命名约定?

每当我设计一个数据库时,我总是想知道是否有一种在我的数据库中命名项目的最佳方法.我经常问自己以下问题:

  1. 表名应该是复数吗?
  2. 列名应该是单数吗?
  3. 我应该为表格或列添加前缀吗?
  4. 我应该在命名项目中使用任何案例吗?

是否有任何建议的指南用于命名数据​​库中的项目?

database language-agnostic database-design naming-conventions

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