当我测试这个查询时,大约需要17 - 20秒才能完成。
UPDATE ex_hotel_temp
SET specialoffer='1'
WHERE hid IN
(SELECT hid
FROM ex_dates
WHERE offer_id IS NOT NULL
OR xfory_id IS NOT NULL
OR long_id IS NOT NULL
OR early_id IS NOT NULL
GROUP BY hid)
虽然这是一个在晚上运行的cronjob来对数据库进行一
我是在生产MySQL中运行的应用程序的新维护者。以前的维护者留下的文档很少,而且是不可接触的。
我面临的问题是,执行以下请求大约需要10秒:
SELECT COUNT(*) FROM `users` WHERE (`active` = TRUE AND `deleted_at` IS NULL);
users表中有大约17万条记录,没有索引。
对此请求的解释命令:
mysql> EXPLAIN SELECT COUNT(*) FROM `users` WHERE (`active` = TRUE AND `deleted_at` IS NULL);
+----+-------------
这是桌子。
CREATE TABLE `refdata` (
`id` VARCHAR(36) NOT NULL COLLATE 'utf8_unicode_ci',
`uid` INT NOT NULL,
`data` TEXT NOT NULL COLLATE 'utf8_unicode_ci',
`ref_akid` TEXT NOT NULL COLLATE 'utf8_unicode_ci',
`ref_version` VARCHAR(16) NOT NULL COLLATE 'utf8
以下是我的情况:
我得到了超过10G的网络日志(大约3000万行),我主要是在各种条件下搜索它。
例如:
select * from tbl
where ip = '123.123.12.3'
and agent = 'mozillar'
and body like '%script%'
随着数据越来越大,一个简单的查询需要几分钟,所以我尝试用MySQL集群创建一些分布式数据库。
我在Google上构建了一个管理服务器、一个SQL (api)服务器和4个数据节点。它们每个实例有2个CPU和8GB。
问题:
当我试图从一个.sql文件
这是我的桌子
CREATE TABLE IF NOT EXISTS `results_stock_all` (
`Result_Id` varchar(50) NOT NULL,
`Stock_Date` date NOT NULL,
`Stock_Code` varchar(20) NOT NULL,
`Prev_Close` float(10,3) NOT NULL DEFAULT '0.000',
`Open` float(10,3) NOT NULL DEFAULT '0.000',
`Close` float(10,3) NOT
我的生产系统运行在最新的MsSQL上,但是当有很多行(10M+)时,简单select语句的性能非常差。
在MsSQL中没有哈希索引(据我所知),所以在我的问题中,我比较了运行在同一台机器上的MySQL社区数据库和MSSQL 2017,但MySQL在windows虚拟机下运行的除外。
在示例脚本中,我创建了1亿行并执行它。在MS中,性能非常差,以至于简单的查询花费了将近2秒时间。在MySQL中,查询花费了0.0011秒。我假设MySQL应该比免费的MySQL更好,所以我希望我错过了一些索引。
有人能告诉我如何用MsSQL创建更有效的索引吗?
测试表MSSQL:
drop table if exi
我有一些使用视图的查询,这些查询的运行速度比我预期的要慢得多,因为所有相关的表都被索引了(而且也不是那么大)。
我希望我能解释这一点:
我的主查询看起来像这样(大大简化了)
select [stuff] from orders as ord
left join calc_order_status as ors on (ors.order_id = ord.id)
calc_order_status是一个视图,定义如下:
create view calc_order_status as
select ord.id AS order_id,
(sum(itm.items * itm.item_p
我有一个开发服务器,它有一些访问数据的问题,用户报告说有时候太慢了。设置如下:
* virtual server;
* 4 virtual CPU;
* 8 GB of virtual memory ;
* 80 GB of virtual HD (the real HD is a SDD one), I had still 36 GB available;
* OS Debian 9;
* Mysql 5.6.47;
为了避免网络和Web应用程序的所有问题,我只需直接在安装Mysql的主机上进行查询。我已经启用了慢速查询的日志记录,并找到了最慢的查询。这个查询从一个表开始,我在下面报告:
C
我有以下问题:
SELECT k from
tbl t
WHERE
(LOWER( col1 ) LIKE '9000000003%')
AND
(col2=12334534 )
order by t.col1 ASC
LIMIT 0,50
tbl大约有187000行
当我把WHERE和ORDER BY放在一起时,这个查询非常慢(我不能等到它完成)。但是,如果删除ORDER BY或LIKE条件查询,则在可行的时间内运行。
当我将查询分成两个查询时,这个查询也执行得相当快:
SELECT k from (
select * from
tbl t
WHERE
(LO
SELECT links.*
FROM links
INNER JOIN (
SELECT keywords_links.link_id
FROM keywords_links
INNER JOIN keywords ON keywords_links.keyword_id = keywords.id
WHERE keywords.keyword
IN ("facebook", "google", "apple")
GROUP BY keywords_links.link_id
) t
ON links.id =
我有一个具有以下属性的表:
+-----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO
我有以下MySQL查询:
SELECT k.strNaam
FROM klant AS k
INNER JOIN project AS p ON p.iKlantID = k.iKlantID
LEFT JOIN klant_factuurregels AS kfr ON kfr.iJobID = p.iProjectID
WHERE p.iFactuurID = '49'
OR kfr.iFactuurID = '49'
这个查询需要超过0.5秒的时间来加载,但是我在while循环中使用它,所以效率很低。
提前感谢
编辑 MySQL查询,并在EXPLAIN
这里的第一个问题,所以要友善:-)
我曾经在我所有的服务器上使用MySQL,因为Cent OS 7现在带有MariaDB,所以我试了一试。看起来一切都很好,除了一个查询,MySQL在毫秒内执行,而MariaDB需要几秒钟:(
SELECT * FROM (
SELECT id, date_start FROM matches
WHERE matches.type =5409
AND matches.status =10
AND matches.date_start >= '2016-02-01'
AND matches.date_
我正在使用Server 2017。我在中将整个MySQL Sakila数据库创建到我的数据库中。我目前正忙于各种功能,特别是在以下几个方面:
DECLARE EXIT HANDLER FOR NOT FOUND RETURN NULL;
这是我的尝试,没有我提到的行,似乎查询没有错误。
CREATE FUNCTION inventory_held_by_customer (@p_inventory_id INT)
RETURNS int
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @v_customer_id INT;
DECLARE EXIT HA
我不明白为什么MySQL的求和速度这么慢,小于400行。U和t都有索引并快速返回行。
SELECT sum(t) FROM `s_table`
WHERE `u` LIKE 'dogs%'
AND `t`> 10000
查询花费了3.5299
如果删除查询的和部分。
SELECT t FROM `s_table`
WHERE `u` LIKE 'dogs%'
AND `t`> 10000
查询耗时0.0090秒,返回397行。
因此,397行的总和需要超过3秒!
然后我试了。
SELECT SU
我昨天对我的服务器进行了更新,以便跟踪用户页面查看情况。这些页面视图被发送到一个数据库,在该数据库中记录它们的ip地址、时间和被查看的页面。
在我的每个页面的底部,我现在有一个复杂的SQL语句,它通过检查页面所查看的内容来确定要显示哪些页面。
无论如何,由于某种原因,我的SQL正在随机地为这个查询创建一个表。
以下是查询:
SELECT
*
FROM posts
LEFT JOIN impressions ON
impressions.ID = posts.ID AND impressions.time > '1444400410' AND (`ip
当我向联接添加第二层抽象时(即首先加入一个连接的表),查询时间将乘以1000 x。
mysql> SELECT xxx.content.id, columns.stories.title, columns.stories.date
-> FROM xxx.content
-> LEFT JOIN columns.stories on xxx.content.contentable_id = columns.stories.id
-> WHERE columns.stories.title IS NOT NULL
-> AND xx
我想知道,理论中的哪个代码需要更长的时间:
1.
$query = "SELECT Something1, Something2 FROM base WHERE SomeCondition";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
//We do something with $row[0] and row[1]
}
2.
$query = "SELECT Something1 FROM base WHERE SomeCondition&
可能重复:
可能是数据库nOOb的问题。
我们的应用程序有如下所示的表
表WF
Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| children | text