JOIN
查询下表,其中包含大量数据。使用java jdbc和jpa执行速度非常慢。
用例 用户界面可以选择交易者列表,类别和日期范围。如果我从下拉列表中选择1周日期范围和所有交易者,下面的查询是否会将1周库存表中的记录与来自stock_trader的所有记录连接起来?
STOCK
------------------------------------------
stock_id long | PRIMARY KEY AUTO_INCREMENT
stock_code | varchar(10)
stock_name |varchar(10)
created_date |DATETIME
category |varchar(10)
STOCK_TRADER
-----------------------------------------
stock_id | long
trader_name | FULLTEXT
SQL查询
Select * from STOCK st join stock_trader trad
on st.stock_id=trad.stock_id where st.created_date<CURRENT_TIMESTAMP()
and trad.trader_name in(:traderlist)
group by st.stock_id
交易者列表:从UI中选择的交易者列表
如果我使用下面的数据模型,请在stock_trader
中添加额外的列并加入多列,请评论性能提升。我可以期待以下查询的更快响应,该查询仅显示库存表中的1周记录和来自stock_trader的1周交易者。
如果将以下连接替换为视图并在java jdbc / jpa中对视图应用where子句,该怎么办?我发现视图使执行速度更快,但我担心它会加入整个数据集,因为子句是从UI动态应用的。如果这样表现会慢得多吗?
STOCK_TRADER
-----------------------------------------
stock_id | long
trader_name | FULLTEXT
created_date | DATETIME
SQL QUERY
Select * from STOCK st join stock_trader trad
on st.stock_id=trad.stock_id and
st.created_date =trad.created_date where st.created_date<CURRENT_TIMESTAMP()
and trad.trader_name in(:traderlist)
group by st.stock_id