我正在使用Java和Spring开发REST来管理采购和客户。在我的MySQL数据库中,我有一个表Purchase,它有一个列来存储唯一的ticketId。这不是主键。
当添加新的采购(通过执行PUT请求)时,我将根据请求中提供的数据创建一个新的采购,获取最大ticketId,将其增加一个,并将其存储在数据库中。主键是自动递增的.
这是我的密码:
@Transactional
public boolean saveNewPurchase(PurchaseDTO data) {
Purchase p = createPurchaseFromData(data);
Long idTicke
我想在数据库中建模以下场景:
我有一个包,由独立的Activities和Hotel组成
一揽子方案P:
A3Hotel H Activities A1,A2
Activities和Hotel是独立的实体,它们在实体的定义时定义了自己的价格。
当一个实体被添加到包中时,它的价格可以改变(只有specific to the package)。因此,每一套活动/旅馆都将有一个独特的价格。
例如(Defining activities and hotel)
A1 - 10$
A2 - 20$
H1 - 100$
(Adding activities and hotel to package)
Pac
如果我想将每种产品类型的销售价格与相应产品类型中每种商品的销售价格进行比较,下面是获取它的代码:
SELECT product_type, product_name, sale_price
FROM Product AS P1
WHERE sale_price > (SELECT AVG(sale_price)
FROM Product AS P2
WHERE P1.product_type = P2.product_type
GROUP BY product_typ
我正在寻找关于分布式系统的最佳架构组织的技巧,其特点如下:
在一台或多台计算机上,每分钟将提供一系列编码文件(大约每分钟100个文件或1Gb / min)。
必须在集群中处理这些文件才能对它们进行解码。每个文件在几个表中生成行。有不止一种编码类型。
每个文件只能处理一次。
这些表行需要插入到数据库中。
数据库是分布式的,并且已经可以在云中使用。
到目前为止,我正在评估两种可能性:
使用停靠群集处理编码的文件并将数据插入数据库。
- Drawback: time spent to insert data in the database is greate
出于测试目的,我有一个非常基本的Azure SQL Warehouse设置,DWU100。它有一个包含6000万行的表。我运行以下表单的查询:
SELECT
SUM(TheValue), GroupId
FROM
[dbo].[Fact_TestTable]
GROUP BY
GroupId
运行此查询需要5秒钟。
在DTU250SQL数据库上运行相同的查询(价格相当),我得到的执行时间为1秒。
我假设我可以做一些事情来加速这一过程,有谁能建议我做些什么来改善这一点?
上面的group by GroupId只是一个例子,我不能假设人们总是按某个特定的列进行分组。