Questions tagged «database»

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



5
微服务和数据库联接
对于将单一应用程序拆分为微服务的人们,您如何处理拆分数据库的难题。出于性能和简单性的原因,我从事的典型应用程序进行了很多数据库集成。 如果您有两个逻辑上不同的表(如果有的话,则是有界上下文),但是经常对大量数据进行汇总处理,那么在整体中,您很有可能避免面向对象,而是使用数据库的标准JOIN功能可在将聚合视图返回到您的应用程序层之前处理数据库上的数据。 您如何证明将此类数据拆分为微服务是合理的,因此可能需要您通过API(而不是数据库)“联接”数据。 我读过Sam Newman的《微服务》一书,在有关拆分Monolith的章节中,他举了一个“打破外键关系”的示例,他承认通过API进行联接会比较慢-但他继续说是否您的应用程序是否足够快,是否比以前慢? 这似乎有点不高兴吗?人们的经历是什么?您使用什么技术来使API联接的性能令人满意?


4
View的SELECT在FROM子句中包含一个子查询
我有两个表,我需要创建一个视图。这些表是: credit_orders(id, client_id, number_of_credits, payment_status) credit_usage(id, client_id, credits_used, date) 我使用以下查询来执行此操作。不带“创建视图”部分的查询效果很好,但带“创建视图”的查询则显示错误“视图的SELECT在FROM子句中包含子查询”。可能是什么问题和可能的解决方案: create view view_credit_status as (select credit_orders.client_id, sum(credit_orders.number_of_credits) as purchased, ifnull(t1.credits_used,0) as used from credit_orders left outer join (select * from (select credit_usage.client_id, sum(credits_used) as credits_used from credit_usage group by credit_usage.client_id) as t0 ) as t1 on t1.client_id = credit_orders.client_id where …
111 mysql  sql  database  views 

5
常见的MySQL字段及其适当的数据类型
我正在建立一个很小的MySQL数据库,该数据库存储名字,姓氏,电子邮件和电话号码,并且正在努力寻找每个字段的“完美”数据类型。我知道没有完美的答案,但是对于诸如此类的常用字段必须有某种通用约定。例如,我确定未格式化的美国电话号码太大,无法存储为未签名的int,它必须至少是bigint。 因为我确信其他人可能会觉得这很有用,所以我不想将我的问题仅局限于上面提到的领域。 哪些数据类型适用于常见的数据库字段?电话号码,电子邮件和地址等字段?
111 mysql  database  types 

6
从DynamoDB删除大量项目的推荐方法是什么?
我正在DynamoDB中编写一个简单的日志记录服务。 我有一个由user_id哈希和时间戳(Unix纪元int)范围作为关键字的日志表。 服务的用户终止其帐户后,无论范围值如何,我都需要删除表中的所有项目。 建议进行这种操作的方法是什么(请记住可能要删除数百万个项目)? 据我所知,我的选择是: 答:执行扫描操作,对每个返回的项目调用delete,直到没有剩余项目为止 B:执行BatchGet操作,再次对每个项目调用delete,直到没有剩余为止 这两个对我来说都很糟糕,因为它们将花费很长时间。 我理想地要做的是调用LogTable.DeleteItem(user_id)-不提供范围,而是让它为我删除所有内容。

17
多少数据库索引太多?
我正在一个具有相当大的Oracle数据库的项目中工作(尽管我的问题同样适用于其他数据库)。我们有一个Web界面,允许用户搜索几乎任何可能的字段组合。 为了使这些搜索快速进行,我们将索引添加到我们认为用户通常会在其上进行搜索的字段和字段组合。但是,由于我们并不真正了解客户将如何使用该软件,因此很难确定要创建哪些索引。 空间不是问题;我们有一个4 TB的RAID驱动器,我们只使用其中的一小部分。但是,我担心索引过多会导致性能下降。因为每次添加,删除或修改行时都需要更新这些索引,所以我认为在一个表上包含数十个索引是一个坏主意。 那么多少索引被认为太多呢?10个?25吗 50吗 还是我应该只介绍真正,非常普遍和显而易见的案例,而忽略其他所有内容?

24
数据库设计中真的需要外键吗?
据我所知,外键(FK)用于帮助程序员以正确的方式操作数据。假设程序员实际上已经在以正确的方式执行此操作,那么我们真的需要外键的概念吗? 外键还有其他用途吗?我在这里想念什么吗?

4
AWS MySQL RDS与AWS DynamoDB [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 我已经使用MySQL已有一段时间了,对它的结构和SQL查询等感到很满意。 当前正在AWS中构建新系统,我一直在研究DynamoDB。目前我对此只了解一点。 一个比另一个好吗? DynamoDB有什么优势? 从MySQL查询等到该扁平样式数据库的过渡是什么样的?

11
无法将类型为“ System.DBNull”的对象转换为类型为“ System.String”的对象
我的应用程式中出现上述错误。这是原始代码 public string GetCustomerNumber(Guid id) { string accountNumber = (string)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id)); return accountNumber.ToString(); } 我换成 public string GetCustomerNumber(Guid id) { object accountNumber = (object)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidCRM, CommandType.StoredProcedure, "spx_GetCustomerNumber", new SqlParameter("@id", id)); if (accountNumber is System.DBNull) { return string.Empty; } else { return accountNumber.ToString(); } } 有没有更好的办法解决这个问题?
109 c#  asp.net  database  null 

7
如何在不加载内容的情况下在EntityFramework中计算行数?
我正在尝试确定如何使用EntityFramework 计算表上的匹配行。 问题在于每一行可能有许多兆字节的数据(在二进制字段中)。当然,SQL应该是这样的: SELECT COUNT(*) FROM [MyTable] WHERE [fkID] = '1'; 我可以加载所有行,然后找到Count: var owner = context.MyContainer.Where(t => t.ID == '1'); owner.MyTable.Load(); var count = owner.MyTable.Count(); 但这是完全无效的。有没有更简单的方法? 编辑:谢谢,所有。我已将数据库从专用附件中移出,以便可以进行性能分析;这会有所帮助,但会引起我意想不到的混乱。 而我的真实数据是深一点,我会用卡车运送托盘的案件的资料 -我不想让卡车离开除非有至少一个项目在里面。 我的尝试如下所示。我不了解的部分是CASE_2从不访问DB服务器(MSSQL)。 var truck = context.Truck.FirstOrDefault(t => (t.ID == truckID)); if (truck == null) return "Invalid Truck ID: " + truckID; var …


12
phpMyadmin中的最大执行时间
当我尝试在phpMyadmin中执行(某些)查询时,出现此错误 致命错误:第140行的C:\ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php中超过了60秒的最大执行时间 因为我有一个很大的表(超过900万条记录) 我已经编辑了文件C:\ xampp \ php \ php.ini 并将“最大执行时间”的值从60更改为1000,然后重新启动PHP并仍然出现相同的错误。 有什么办法吗?

4
为什么在Hibernate中需要事务才能进行只读操作?
为什么在Hibernate中需要事务才能进行只读操作? 以下事务是否在数据库中设置了锁定? 从数据库获取示例代码: Transaction tx = HibernateUtil.getCurrentSession().beginTransaction(); // why begin transaction? //readonly operation here tx.commit() // why tx.commit? I don't want to write anything 我可以session.close() 代替使用tx.commit()吗?

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.