我有一个大约有4000万行(包括索引在内的37 GB数据)的MySQL数据库。在数据库上执行的任务主要是读取,每一两个月更新一次数据库。我希望查询延迟不超过50ms。我混淆了b/w Cassandra和MySQL,所以考虑到以下几个方面寻找一些指导。
1.)查询将不会有任何'JOINS‘,但它可以在多个字段上,并可选择包含'OR’子句。主键不是只有一个字段,而是多个字段。该查询如下所示:
SELECT * FROM routes
WHERE origin='XYZ' AND (destination='ABC' OR destination=
我想知道哪种方法更好(在性能方面)
A) 1个数据库,包含4个表
或
B) 2个数据库(同一服务器),每个数据库有2个表。
表的大小和用法大致相似,因此数据库1上的2个表与数据库2上的2个表的用法/大小相似
这些表可以有+500,000条记录,并且每个数据库上的2个表是不相关的(它们之间没有连接查询等)
提前感谢您的评论
我当前正在运行此查询:
SELECT t.videolink, t.userid, t.tag
FROM (SELECT * FROM tagstrend ORDER BY timestamp DESC) AS t
WHERE t.timestamp > ?
GROUP BY t.tag
ORDER BY SUM(t.tagcount) DESC
LIMIT ?, 20;
我正在做的是在运行查询的其余部分之前颠倒从中选择的表的顺序,因为当我使用"GROUP BY“时,我需要它来获取顶部的结果,这是数据库中最近
我在上创建了一个试用帐户,并从SmarterAsp部署了我的数据库。
当我在SmarterAsp\MyDatabase上运行pivot查询时,结果出现在2秒中。
然而,在Azure\MyDatabase上运行相同的查询花费了94秒。
我使用SQL Server 2014 Management Studio (试用版)连接到服务器并运行查询。
速度上的差异是不是因为我的账号是试用账号?
与我的问题相关的一些信息
查询为:
ALTER procedure [dbo].[Pivot_Per_Day]
@iyear int,
@imonth int,
@iddepartment int
as
de
我有3个查询结束在限制1从一个数据库大约17万记录。
如果我单独运行这3个查询有什么不同吗?还是使用UNION来组合所有3个查询会提高速度?当前,查询返回结果的速度很慢。
因此,最终结果将从数据库返回3条记录。
我现在的问题是:
select * from table where cat = '%1%' and brand like '%example%' limit 1;
select * from table where cat = '%2%' and brand like '%example2%' limit 1;
sele
我有一个查询,它返回一个需要存储在表中的1400万个结果,SELECT查询本身在2分钟内返回,但是INSERT语句需要超过30分钟(这是不可接受的)。我们正在Azure数据库中运行此操作,该数据库目前设置为高级层数据库,我需要将此过程全部保存在SQL (不导出到文件等)中。
示例查询:
SELECT
v.Param1,
v.Param2,
lt.Param3,
lt.Param4
INTO #tempTable
FROM <View> v
join LargeTable lt
on lt.nVarCharCol = v.nVarCharCol
INSERT INTO
你能帮我优化这个查询吗?我需要删除子查询,因为它的性能很糟糕。
select LICENSE,
(select top 1 SERVICE_KEY
from SERVICES
where SERVICES.LICENSE = VEHICLE.LICENSE
order by DATE desc, HOUR desc)
from VEHICLE
问题是,我可以在相同的日期和时间拥有两个服务,因此我无法编写一个等效的SQL来避免子查询。
查询在一个遗留数据库上运行,在这个数据库中,我不能修改它的元数据,而且它根本没有任何索引。这就是