我的公司最近进行了一次数据库升级,从Mysql5升级到Mysql8,我们的一些查询已经大大放缓。(从几秒钟到30分钟后超时)。
我唯一的想法是,数据库设置一定有问题,但是如果一些熟悉的人能够查看这个查询,看看是否可以改进它,那就太好了。
select sd.*,
sd.transactionDate as transactionDate,
r.id as resellerId,
max(pa.id) as platformAccountId,
op.paymentTypeId as paymentTypeId,
u
我使用hibernate注释和Mysql作为数据库。我有两张表,一张是买方表,另一张是CashReceipt。CashReciept在Purchaser表上有一个引用键。
那么,我如何删除特定买方的CashReceipt记录呢?
我尝试过这个查询
session.createQuery("Delete FROM CashReceipt cr LEFT JOIN cr.purchase p WHERE p.id=:sid")
.setInteger("sid", purchase.getId()).executeUpdate();
在医院的数据库里工作。我有一张病人表,另一张表包含医疗记录。医疗记录表,有patient_id。由于系统中的错误,许多患者被插入了两次或更多,具有相同的id。我正在尝试执行一个mysql查询,该查询允许我删除/检查患者表中重复的患者,但前提是patient_id不在医疗记录表中。
如下所示:
(select * from patients group by id having count(id)>1 as p)
where patient_id not in (select patient_id from history)
上面的查询是象征性的,它不起作用。
该表在InnoDB表中。这里有一些可能会有帮助的信息。
EXPLAIN SELECT COUNT(*) AS y0_ FROM db.table this_ WHERE this_.id IS NOT NULL;
+----+-------------+-------+-------+---------------+---------+---------+------+---------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | re
我有两张桌子。(MySQL数据库)事件:
id | title | ...
Event_participate:
event_id | user_id | confirmed
confirmed为0/1列。我想查找指定用户参与的事件。我的SQL查询是:
SELECT *, COALESCE(SUM(ep.confirmed), 0) AS count_members
FROM event e
LEFT JOIN event_participate ep ON e.id = ep.event_id
GROUP BY ep.event_id
HAVING (
ep.user_id = 6
)
我
我有两张桌子如下所示
我在两个表上都有如下所示的综合索引:
users表有一个复合索引:(login_type_id,language_id,enabled,level) 地址表有一个复合索引:(user_id,city_id,enabled)
我想执行以下查询
select * from users u
left join address adr
on u.id = adr.user_id
where u.login_type_id = 1
and u.langauge_id = 1
and u.enabled = true
and adr.city_id in (1,2,3,4,
我正在使用mysql工作台和mysql服务器来查询数据库。我有两个表t1和t2,其中有一个列t1_name和t2_name。t2有300万张唱片,t1有100万张。
我需要选择所有t2_names,其中t2_names不等于t1_name,也不等于t1_name的子字符串。当我尝试下面的查询时:
SELECT DISTINCT `t2_name`
FROM `t2`, `t1`
`t2`.`t2_name` NOT LIKE CONCAT('%',`t1`.`t1_name`,'%'));
我知道这个错误:
mysql错误代码: 1066。非唯一表/别名:
我在一个数据库里有两张桌子。一个是产品数据,另一个是产品图像。我必须在我的页面索引中设置一个滑块,并且会有特定的图像(比如有50%折扣的产品,或者类似的东西)。我将对数据库中的产品表进行查询,以获取正在出售的产品的id
$query1="SELECT id FROM products WHERE price<'100'";
$query2=mysql_query($query1);
$idSales=mysql_fetch_array($query2);
所以,现在我有了一个数组,上面有我感兴趣的产品的id,麻烦来了。我如何处理mysql_fetch_ar
我有一个MySQL数据库。我有一张桌子,大约有200000行。
我正在查询这个表以获取最新的data.Query
select *
from `db`.`Data`
where
floor = "floor_value" and
date = "date_value" and
timestamp > "time_value"
order by
timestamp DESC
limit 1
获取数据需要花费大约9秒的时间,当表中的行数较少时,取数据不需要这么长时间。有人能帮助我如何减少查询所需的时间吗?