database-optimization相关内容

InnoDB是否有静态表?

我正在阅读MySQL文档,并且想知道 MyISAM的“静态”表格格式也适用于InnoDB吗?如果我使用 CHAR 而不是 VARCHAR ,而实际长度在0到100个字符之间变化,或者是使用 VARCHAR(100)更好? 解决方案 InnoDB确实具有以下优点:宽度行,并且将表中的所有列声明为固定宽度可能会有一些好处。主要优点是页面中的所有“孔”都可以重复用于任何插入,因为所有行的长度均相 ..
发布时间:2020-09-30 23:15:20 数据库

如何将一个Doctrine实体保存到两个数据库表(MySQL优化所需)

在数据库中,有一个表 file 和一个表 file_content 。 file 表存储文件的元数据,例如 name , mime 等。 file_content 存储带有文件内容的Blob。我不会将blob与元数据存储在同一表中,仅出于性能方面的考虑。 对于项目的“版本2”,我正在研究Doctrine( 2.3)。对我来说,“文件”似乎是一个实体,具有诸如 name , mime ,扩展, ..
发布时间:2020-06-11 01:57:10 PHP

以下哪个SQL查询会更快?两个表的联接还是连续的查询?

我在这里有两个表: ITEMS ID |详情| ..... |所有者 用户: ID | NAME | .... 其中 ITEMS.OWNER = USERS.ID 我正在列出项目以及它们各自的所有者名称。为此,我可以在两个表上使用联接,也可以选择所有的ITEMS并遍历它们,进行SQL查询以检索该ITEM所有者的元组。就像这样: 1个具有 ..
发布时间:2020-06-11 01:57:06 PHP

如果将INT列更改为MEDIUMINT,我将节省多少大小?

我正在学习如何通过为列重新选择正确的数据类型来优化数据库,并且我想知道如果选择 MEDIUMINT 可以节省多少大小(3个字节)而不是 INT (4个字节) AFAIK-如果我错了,请纠正我-我需要数据库大小尽可能小以适合RAM,以减少硬桌面请求。数据库的大小由表大小+索引大小组成 假设我有一个 INT 列, 10'000'000行和一个B-Tree索引,如果将列的数据类型从 INT ..
发布时间:2020-06-11 01:57:05 数据库

SQL中的Delete语句非常慢

我有这样的语句正在超时: 从[表]中删除[COL]输入('1 ','2','6','12','24','7','3','5') 我尝试一次执行以下操作: 从[表]删除[ COL] IN('1') 到现在为止仍是22分钟。 表中有260,000行,为四列。 有人对为什么这样做有任何想法吗?这么慢,如何加快速度? 我在[WOL]上确 ..
发布时间:2020-06-11 01:57:02 数据库

插入新的数据库条目是否比检查该条目是否首先存在快?

曾经有人告诉我,仅运行插入并让插入失败比检查数据库条目是否存在然后插入是否丢失要快. 我还被告知,大多数数据库都针对读而不是写进行了大量优化,所以快速检查不会比慢速插入快吗? 这是预期的碰撞次数的问题吗? (即,仅当条目已存在的可能性很小时,插入它才会更快.)它是否取决于我正在运行的数据库类型?因此,是否有一种方法会不断向我的错误日志中添加插入错误,这是不好的做法吗? 谢谢. ..
发布时间:2020-05-22 02:06:10 数据库

GAE数据存储支持急切的抓取?

假设我想显示书籍及其作者列表。在传统的数据库设计中,我会发出一个查询来从 Book 表中检索行以及相关的 Author 表,这是一个被称为渴望获取的步骤。这样做是为了避免可怕的 N + 1选择问题:如果 Author 记录被懒惰地恢复,我的程序将不得不发出一个单独的查询对于每位作者,可能与列表中的书籍数量一样多。 Google App Engine数据存储提供了类似的机制,还是N + 1选择 ..

将用户认证详细信息存储在单独的表中的优点

但是,我应该将身份验证详细信息存储在另一个表格中(用户名称,用户名,姓氏,地址等) ,密码),并通过用户ID链接两个表? 这有多少点? 是否更安全? 或者只是添加额外的代码? 解决方案 不,根本不是。 更安全吗? 如果有人可以访问您的用户表,他们可以肯定地访问任何其他表的密码,所以没有。 还是添加额外的编码? p> 很多。 $ \\ code> ..
发布时间:2017-03-22 02:16:24 其他数据库

通过重连接优化MySQL查询

我目前正在运行一个网站,可以在列表中追踪最新的分数和评分。该列表有数千个经常更新的条目,列表应该可以通过这些分数和评分列进行排序。 我的SQL获取此数据目前看起来像(大致): SELECT e。*,SUM(sa.amount)AS分数,AVG(ra.rating)AS评级 FROM entries e LEFT JOIN score_adjustments sa ON sa.e ..
发布时间:2017-03-21 23:18:34 数据库

从mysql数据库计数行的最佳方法

在使用mysql查询遇到缓慢的加载时间问题后,我现在查找计数行数的最佳方法。我已经愚蠢地使用 mysql_num_rows()函数来做到这一点,现在意识到这是一个最糟糕的方式做到这一点。 我实际上是做一个分页在PHP中的页面。 我发现了几种方法来计算行数。 表类型是MyISAM 所以问题现在是 这是最好的,更快的计数 - 1。 `SELECT count(*)FROM ..
发布时间:2017-03-18 23:45:02 数据库

应该将主键添加到innodb表吗?

我有一些innodbs只有2 int列,它们是其他表的主键的外键。 例如一个表是user_items,它有2列, 我应该添加第三列到这样的表,并使其成为主要的 解决方案 添加第三个ID列只是为了添加ID列没有意义。事实上,当插入或删除行时,它只是增加了处理开销(索引维护)。 主键不一定是“ID列”。 如果您只允许一个用户和项目之间关联(一个用户不能被分配两次相同的项 ..

在Postgres中加快缓慢SELECT DISTINCT查询的解决方案

查询基本上是: SELECT DISTINCT“my_table”。“foo”from“my_table”WHERE ... 假设我100%确定 DISTINCT 部分的查询是它运行缓慢的原因,我省略了查询的其余部分,以避免混淆,因为它是不同部分的慢度,我主要关注(distinct总是一个慢的来源。)。 / p> 有问题的表有250万行数据。 DISTINCT ..
发布时间:2017-03-17 17:05:58 其他数据库

我如何知道何时索引一个列,以及什么?

在各种ORM的文档中,他们总是提供一种创建索引的方法。他们总是提到要确保为效率创建适当的索引,就像这是一个非手写SQLer的固有知识,需要使用ORM。我对索引的理解(在PK之外)基本上是:如果你计划根据列的内容做 LIKE 查询(即搜索),你应该使用一个完整的该列的文本索引。关于索引我还应该知道什么(主要是关于效率)?我觉得在我的门口有一个知识的世界,但有一个巨大的折叠鼠标垫卡在它下面,所以我不能 ..
发布时间:2017-03-17 15:33:06 其他数据库

MYSQL数据库优化使用索引

我正在致力于 LearnBiz模拟,这是一家自费资助的初创公司,可以模拟管理教育。 (a)我们的网站目前约有16k人。目前,数据库的大小是30mb,总共大约90个表,并且每个表可以具有在5到50列之间的任何地方。我们在数据库中的所有表,反复有新的插入,删除或更新行。但不会添加任何列。它使用索引技术创建任何问题吗?有几个其他论坛和视频,表明即使插入或删除一行将使索引无用! (b)我们的网 ..
发布时间:2017-03-16 20:55:47 PHP

一个大查询与许多小查询?

我想知道,在带宽和整体效率方面,哪个选项是最贵的。 假设我有一个类客户端在我的应用程序中,并且在我的数据库中有一个表客户端 $ 更好地有一个静态函数 Client.getById ,它检索整个客户端记录或许多( Client.getNameById , 如果单个记录有 lot em>字段,我最终在当前脚本中使用一两个,是否仍然更好地检索一切,并决定在应用程序内如何处理所有的数据? ..