update temp_parent_rating_emails pre
set reminders_count = (select count(1) from vendor_rating_email vre where vre.parent_email_id = pre.email_id);
上面的查询在我的小型mysql数据库上运行良好,但挂在我们更大的暂存数据库上。有人知道为什么或如何更好地优化这一点吗?
我有一个正在尝试建立索引的数据库
我创建的索引如下:
CREATE INDEX <name> ON geoplanet_places(name(15));
当我运行以下查询时:
SELECT * FROM geoplanet_places WHERE name LIKE "vancouver%";
结果返回时间不到1秒
当我运行这个查询时(注意额外的'%‘通配符):
SELECT * FROM geoplanet_places WHERE name LIKE "%vancouver%";
结果返回时间大大增加,有时超过9秒。这与索引数据库之前
我有一个包含大约40条CREATE INDEX语句的文件。前段时间,我将这个文件输入到我的生产数据库中,它现在正在运行命令。
不久前,我意外地在我的生产数据库上运行了几个缓慢的查询,现在我担心我可能搞砸了工作。通常,当我运行一个慢得令人无法接受的查询时,我会重新启动MySQL,但我不确定我是否想这样做,因为我不知道在MySQL运行这些CREATE INDEX语句时这样做是否安全。
对于更多的上下文,如果我运行select * from information_schema.statistics where index_name like 'index_%',我通常会看到每隔几分
我正在学习索引,我想我应该尝试使用MySQL Sakila数据库进行一个实验。我有以下查询:
SELECT title, release_year
FROM film
WHERE release_year < 2010
AND rating = 'R';
这是我尝试的第一个索引:
CREATE INDEX idx_releaseYear ON film(rating);
当我运行查询时,MySQL解释返回了以下内容:
编辑:我对这些结果的解释是: MySQL使用索引(按等级排序)快速查找所有R级电影,然后检查索引返回的每一行的发行年份。
接下来,我创建了一个关于
我有一个巨大的MySQL数据库表(InnoDB),其中包含大约45,000,000个条目。它包含三个列X、Y和SCORE的相似性数据。(意思是:X与Y的相似度得分为0.562。)
现在我想在X上选择,分数> 0.8。
SELECT * FROM tableFOO WHERE X = x AND SCORE > 0.8;
但是这种方法需要很长的时间(~20秒)。
有没有一种方法可以更有效地选择双精度值?