我有一个MySQL查询(UBU10.04,Innodb,核心i7,16 Ubu内存,固态硬盘,MySQL参数优化):
SELECT
COUNT(DISTINCT subscriberid)
FROM
em_link_data
WHERE
linkid in (SELECT l.id FROM em_link l WHERE l.campaignid = '2900' AND l.link != 'open')
表em_link_data大约有700万行,em_link有几千行。此查询大约需要18秒才能完成。但是,如果我替换子查询的结果并执行以下操作:
SELEC
我有一个包含3个字段的MySQL表:
位置
变量
价值
我经常使用以下查询:
SELECT *
FROM Table
WHERE Location = '$Location'
AND Variable = '$Variable'
ORDER BY Location, Variable
我的表中有超过一百万行,查询有点慢。如果我添加了一个字段VariableLocation,这是变量和位置的组合,它会提高查询速度吗?我将能够将查询更改为:
SELECT *
FROM Table
WHERE VariableLoca
考虑到MySQL中的这个SQL查询:
SELECT * FROM tableA WHERE tableA.id IN (SELECT id FROM tableB);
MySQL对tableA中的每一行执行子查询SELECT id FROM tableB多次吗?
有没有一种方法可以使sql在不使用变量或存储过程的情况下运行得更快?
为什么这通常比使用LEFT JOIN慢
我正在将数据迁移到MySql (5.7.26)数据库(32 on ram)中,在AWS上作为托管服务运行。在导入数据时,我需要使用内存表查找将CSV的一个列映射到另一个值;因此,我的加载数据类似于以下内容:
LOAD DATA LOCAL INFILE 'file.csv'
INTO TABLE table_1(col_1, @var1)
SET col_2 = (select mapped_value from table_2 where id = @var1)
table_2是一个带有3.4MM行的2列(id,mapped_value)内存表.
在没有子查询的情况下导入CS
最近,我将MySQL版本从5.5.8改为5.6.23,并遇到了一些查询性能问题。在旧的MySQL中,查询是在合理的时间内执行的,但是在新的server+mysql服务器中,则会变得没有响应。Linux命令
linux~ top
执行查询时显示mysql >100% wcpu。如果单独执行每个子查询,结果将在几秒钟内获取。此时,mysql和apache需要重新启动才能继续工作。
因此,我的问题是优化下一个查询:
SELECT concat_ws('##', pos.name,
( SELECT COUNT(*) FROM nalogi n
WHERE n.oth
我遇到了MySQL查询运行速度极慢的问题。每次更新大约需要2分钟。 以下是查询: UPDATE msn
SET is_disable = 1
WHERE mid IN
(
SELECT mid from link
WHERE rid = ${param.rid}
); 所以我的问题是,如果子查询的结果是0或NULL,我想知道UPDATE语句的性能会受到怎样的影响。因为我认为这个过程可能很慢,因为子查询的结果是0或NULL。 在此之前非常感谢。
执行此查询需要相当长的时间。如何对其进行优化?
SELECT user, count(tweet) FROM tweet WHERE 1 = 1 GROUP BY user
我的数据库结构如下:
DATE | USER | TWEET | ID
我想要一个查询,以找到每个用户的推文数量。MYSQL数据库的大小约为3 GB。
这个问题在这里也存在: .但没有回答。
一个类似的情况发生在我身上,就像发生在这个问题的作者身上一样:
replays表有4M行
players表有4000万行
该查询使用where exists,完成该查询需要大量时间(70):
select * from `replays`
where exists (
select * from `players`
where `replays`.`id` = `players`.`replay_id`
and `battletag_name` = 'test')
order by `i
当配置文件是参与者时,此查询将获取具有最多证据记录的配置文件。有没有办法让它在mysql查询中更快?
SELECT profiles.*, count(*) AS counted_profiles
FROM `profiles`
INNER JOIN (SELECT ev.actor_id
FROM evidences AS ev
WHERE ev.actor_type = 'Profile') AS ev2
ON ev2.actor_id = profiles.id
GROUP BY ev2.actor_id
ORD
我在mysql数据库中有一个查询,它只返回50条记录,但执行时间为18秒。
SELECT DISTINCT a.UniqueNo, a.TorrentFilename, d.DataValue As Size
FROM (SELECT DISTINCT aa.UniqueNo, aa.TorrentFilename, aa.UploadDate
FROM TorrentList aa INNER JOIN
UploadList b
ON aa.UniqueNo = b.UniqueNo INNER JOIN
Mini
这是我的桌子:
CREATE TABLE IF NOT EXISTS `test_dates` (
`date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `test_log` (
`id` int(10) unsigned NOT NULL,
`timest` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `test_dates`
ADD PRIMARY KEY (`d
我有一个查询,它可以很好地处理MySQL,但是如果我在Oracle中执行它,我会得到以下错误:
SQL Error: ORA-01779: cannot modify a column which maps to a non key-preserved table
01779. 00000 - "cannot modify a column which maps to a non key-preserved table"
*Cause: An attempt was made to insert or update columns of a join view whic
假设你有这样的查询..。
SELECT T.TaskID, T.TaskName, TAU.AssignedUsers
FROM `tasks` T
LEFT OUTER JOIN (
SELECT TaskID, GROUP_CONCAT(U.FirstName, ' ',
U.LastName SEPARATOR ', ') AS AssignedUsers
FROM `tasks_assigned_users` TAU
INNER JOIN `users` U ON (
一周前,我们将数据库从mySQL8转换为MariaDB10,现在出现了严重的性能问题。我们找出了原因:我们经常在select语句和ORDER BY中处理子查询。下面是一个示例:
SELECT id, (SELECT id2 FROM table2 INNER JOIN [...] WHERE column.foreignkey = table.id) queryResult
FROM table
WHERE status = 5
ORDER BY column
LIMIT 10
想象一下,如果table中有1.000.000个条目会受到status = 5的影响。
mySQL8中发生的事情:执
假设我有一个非常简单的桌子,像这样:
CREATE TABLE `t1` (
`key_part1` INT UNSIGNED NOT NULL,
`key_part2` INT UNSIGNED NOT NULL,
`value` TEXT NOT NULL,
PRIMARY KEY (`key_part1`, `key_part2`)
) ENGINE=InnoDB
使用此表,我希望发出如下查询:
SELECT *
FROM `t1`
ORDER BY `key_part1` ASC, `key_part2` DESC
LIMIT 1
我曾希望这个查询中的ORDER BY能
我有两个表(页面和注释),大约每个13万行.
我想列出没有任何注释的页面(外键是comments.page_id)
如果我执行正常的左侧外部联接,那么运行需要超过750秒的。(130 k^2= 17B)然而,如果我执行相同的联接,但使用表的子查询,则只需1秒即可。
服务器版本:5.6.44-日志- MySQL社区服务器(GPL):
查询1.正常连接,750+秒
SELECT p.id
FROM `pages` AS p
LEFT JOIN `comments` AS c
ON p.id = c.page_id
WHERE c.page_id IS NULL
GROUP BY 1
查询
我们最近做了一个大的服务器更新,在从MySQL5.0迁移到5.5.40的过程中,有几个在旧服务器上运行良好的查询,现在把所有的东西都磨得嘎然而止。经过一些调查之后,我发现了触发问题的查询的以下最小示例:
SELECT
(SELECT date FROM results
WHERE person_id = people.id
ORDER BY results.date DESC limit 1
) AS date
FROM people
WHERE people.boss_id = 123;
一些基本信息:
people和result
我有一个疑问:
select SQL_NO_CACHE id from users
where id>1 and id <1000
and id in ( select owner_id from comments and content_type='Some_string');
(请注意,它缺少用于我的sphinx索引的实际大型查询(表示问题))该查询大约需要3.5秒(修改范围为id =1.5000表示关于15 secs)。
users表有大约35000个条目,注释表有大约8000个条目。
对上述查询的解释:
explain select SQL_NO_
我有一个mySQL表hands,其中每个条目代表玩家在特定扑克手中的表现。重要的栏目是player和net。我希望建立一个“高分”页面,展示最好的球员基于总赢利的能力,过滤基于游戏类型,时间等。我已经获得了以下查询:
SELECT player,sum(net) AS profit FROM hands GROUP BY player ORDER BY profit DESC
不幸的是,到目前为止,我有很多记录,超过200万条,而且这个查询非常慢。我已经在"player“上建立了一个索引,但执行时间仍然超过7秒。有没有希望提高mySQL的速度,或者我必须以不同的方式来构造这个页面?如果
我正在MYSQL中尝试执行这个查询。
SELECT FirstName,LastName
CONCAT(COALESCE(Address1, ''),
COALESCE(Address2, '')) AS Address2,
(SELECT GROUP_CONCAT(EmpDept ' ') FROM EMP_DEPT
USE INDEX (EMP_DEPT_IDX)
WHERE EMP_DEPT.EMP_ID = EMP.EMP_ID) AS DEPT,
COUNT(PIN) AS PIN,
请在mysql中不使用子查询将以下查询转换为联接查询
SELECT u.id, u.name, u.avatar, u.slug, u.location
FROM user_registration as u
WHERE u.id <>'3' AND u.id NOT IN (SELECT f.user_id FROM followers as f WHERE f.follower_id ='3')
order by id
我正在运行一个向下过滤的聚合查询,希望得到一些关于如何获得更好的查询响应时间的反馈。
查询(运行,但平均为400+秒):
select data_date,sum(closeprice) from moving_avgs
where
symbol in (select distinct symbol from moving_avgs
where
ma200_close >= 5.00 and
ma200_volume >= 400000 and
我有这个脚本来获取帖子:
$totalrows = 60;
$sql = "SELECT
posts.Tags as tags,
posts.OwnerUserId as postsid,
posts.Id as postid,
posts.Body as body,
posts.Title as title,
users.Id as userid,
users.DisplayName as usersname
FROM posts
JOIN users ON posts.OwnerUserId = users.Id
JOIN (select po
我有一个MySQL数据库(InnoDB),表users有一个username列。在Rails网站上,我有一个功能,可以让用户以他们的用户名搜索某个人。在打字时,网站会提示用户正在搜索的是谁(打印前w/引导)。目前我正在使用MySQL,SELECT `username` FROM users WHERE `username` LIKE 'the_query%' LIMIT 15;中的查询
存在的问题是速度。该表大约有500,000行,这样的查询似乎需要大约秒,这在动态生成猜测时太慢了。我能做些什么来提高绩效呢?100毫秒以下的是合适的。也许还有比使用MySQL来处理搜索更好的方法
尽管标题列是通过使用以下查询添加为索引的:
ALTER TABLE Recipe ADD INDEX Title_idx (Title)
MySQL没有将该索引用于此查询:
SELECT * FROM Recipe
WHERE Title LIKE '%cake%';
我使用了EXPLAIN关键字,关键字段是NULL。
如何解决这个问题?我必须改进这个查询。
这个查询不起作用
SELECT * FROM Catalogue WHERE Catalogue.ID IN (
SELECT ID_catalogue FROM Categories WHERE Categories.Product_type='xxx'
)
错误代码: 1064在第2行的“从类别中选择ID_catalogue”(ID_catalogue=‘xxx’)附近有一个错误
好的,那是因为我使用的是一个非常老的MySQL版本。
我想得到的是
SELECT * FROM Catalogue WHERE Product_type='xxx' OR
我正在读“高性能MySQL",O‘’Reilly,第二版。第122页:
MySQL不能在索引中执行类似的操作。等
在同一页中,后面的示例是(对参与者、标题、prod_id有一个索引):
EXPLAIN SELECT * FROM products JOIN ( SELECT prod_id FROM products WHERE actor='SEAN CARREY' AND title LIKE '%APOLLO%' ) AS t1 ON (t1.prod_id=pr
假设有一个列作为学生表现的详细信息的表。
Student(name,subject,marks,verdict('pass'/'fail')).
我需要在这个表格中有另一栏,那就是某一位学生不及格的科目的分数之和。
在MySQL中,我可以写到:
select *,
select (sum(marks) from Student where name=s.name and verdict='fail')
from Student s;
但它在蜂巢不起作用。
错误:不支持的subquery表达式无效子查询。SELECT中的子查询只能是顶级表达式。
下面是我的两个MySQL查询,您能指导我根据MYSQl DATABase使用哪个查询最好吗
下面是我的两个sql查询
查询1)
select cast(sum(G1.amount)as decimal(8,2)) as YTDRegularPay,cast(sum(b1.amount)as decimal(8,2))as YTDBonusPay
from tbl_employees_swc_grosswagedetails g1,tbl_employees_swc_grosswagedetails b1
where g1.empid=b1.empid
and g1.PayYear
我在我们的遗留系统中编写了一个查询。(使用MySQL 5.5),随着数据的增长,下面提到的查询花费了大量的时间。在我们的系统中,大约有2,000,000,000 (20亿行)大约650 GB的数据。表相对于每天都进行分区。(这意味着上面的查询是从30个分区获取数据)。
将16 to分配给innodb_buffer_pool_size。
查询-1
SELECT *
FROM
( SELECT a,b,c,d,e,f,g,h,i,j,k,l
FROM TEST
WHERE START_TIME between '2013-11-14 00:00:01
我很难用MySQL InnoDB优化器来优化请求。以下查询(查询1)高效运行:
explain select * from ah_problems
where rnid in (6022342, 6256614, 5842714, 6302489)
and fieldid in (5,6);
计划(计划1)如下:
id select_type table type possible_keys key key_len ref rows Extra
= ====== =========== ===== =======
问题摘要
使用MySql 5.6,我注意到组合Select查询(例如select x.a from X x where x.b in (select y.b from Y y where y.c = 'something'))比使用第二个查询的in子句中的第一个查询的结果要慢得多。而且,我尝试使用Join语句而不是嵌套查询(受此站点上其他帖子的影响)并没有产生任何性能改进。
我知道这是MySql的一个常见问题,我在这里读过很多关于这个问题的帖子,并且尝试了一些解决方案,这些解决方案显然适用于其他海报,而不是针对我。
此查询:
select ADSH_ from SECSub w