此外怎么办LEFT JOIN
,RIGHT JOIN
和FULL JOIN
适合吗?
为什么一个人不应该使用mysql_*
功能的技术原因是什么?(例如mysql_query()
,mysql_connect()
或mysql_real_escape_string()
)?
即使他们在我的网站上工作,为什么还要使用其他东西?
如果他们不在我的网站上工作,为什么我会收到错误
警告:mysql_connect():没有这样的文件或目录
鉴于索引在数据集大小增加时非常重要,有人可以解释索引在数据库无关的级别上的工作原理吗?
有关索引字段的查询的信息,请查看如何索引数据库列.
好的概述
一般来说,您要在快速读取时间(例如,嵌套集)或快速写入时间(邻接列表)之间做出决定.通常,您最终会得到最适合您需求的以下选项组合.以下提供了一些深入阅读:
选项
我知道和一般的功能:
O(n/2)
移动,插入,由于易失性编码而删除O(log n)
插入,更新,删除的成本(子树的大小)LEFT(lineage, #) = '/enumerated/path'
)O(log n)
插入,更新,删除的成本(子树的大小)什么SQL可用于列出表,以及SQLite数据库文件中这些表中的行 - 一旦我ATTACH
在SQLite 3命令行工具上附加了命令?
在MySQL手册的MySQL涵盖这一点.
通常我只是转储数据库并使用新名称重新导入它.对于非常大的数据库,这不是一个选项.显然RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
做坏事,只存在于少数几个版本中,并且整体上是一个坏主意.
我正在研究涉及大量数据库写入的项目,我会说(70%的插入和30%的读取).该比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,在读取时我不需要100%准确的信息).
有问题的任务将是每小时进行超过100万次数据库事务.
我在网上看到了一些关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是我的明显选择.从我似乎正在阅读的内容来看,如果需要事务处理,InnoDB很好,因为支持行级锁定.
有没有人有这种负载(或更高)的经验?MyISAM是走的路吗?
我无法完全掌握差异.你能描述这两个概念并使用现实世界的例子吗?
database database-design data-modeling identifying-relationship
每当我设计一个数据库时,我总是想知道是否有一种在我的数据库中命名项目的最佳方法.我经常问自己以下问题:
是否有任何建议的指南用于命名数据库中的项目?
database language-agnostic database-design naming-conventions
database ×10
sql ×5
mysql ×3
innodb ×2
performance ×2
ansi-sql-92 ×1
indexing ×1
inner-join ×1
join ×1
metadata ×1
myisam ×1
outer-join ×1
php ×1
rename ×1
sqlite ×1
syntax ×1
tree ×1