SELECT
merchant.name,
store.name,
transaction.storeID
FROM merchant
JOIN store
ON merchant.id = store.merchantId
JOIN transaction
ON transaction.storeId= store.id ORDER by merchant.id asc LIMIT 100;
在这里,您将获得1-100个值。
SELECT
merchant.name,
store.name,
transaction.storeID
FROM merchant
JOIN store
ON merchant.id = store.merchantId
JOIN transaction
ON transaction.storeId= store.id ORDER by merchant.id asc LIMIT 100 OFFSET 20;
3条答案
按热度按时间rslzwgfq1#
在这里,您使用了数据的规范化,并且您有三个表,这是很好的,但是使用更多的规范化意味着在接收数据时会对性能造成影响。因此,您可以在这里使用***分页***。要在MySQL中使用分页,您可以使用
LIMIT
和OFFSET
关键字。您可以使用以下方法:在这里,您将获得1-100个值。
在这里,您将获得21-120个值
muk1a3rh2#
Transaction表不应包括merchantId列。数据模型不应允许两个对象之间存在多个路径
ipakzgxi3#
使用两步流程几乎总是“更糟”:
最好是执行某种
JOIN
或EXISTS
,将它们组合成一个查询,而且速度可能快一倍。INDEXes
对性能至关重要。但是索引应该根据将要执行的查询(尤其是SELECT
、UPDATE
和DELETE
)来设计。(也就是说,不要简单地“索引每一列”。)在一个有适当索引的百万行表中查找一行几乎与在一个百行表中查找一行一样快。