我有一个查询
SELECT *
FROM tbl_auction_listing
JOIN tbl_user ON tbl_auction_listing.user_id = tbl_user.user_id
JOIN tbl_subject ON tbl_auction_listing.subject_id = tbl_subject.subject_id
JOIN tbl_medium ON tbl_auction_listing.medium_id = tbl_medium.medium_id
JOIN tbl_style ON tbl_auction_listing.style_id = tbl_style.style_id
WHERE tbl_auction_listing.item_number = '2736503389’
导致网站速度出现问题,有时会导致网站崩溃。我将它拆分成多个查询会更好吗?
索引
tbl_auction_listing 0 PRIMARY 1 auction_listing_id A 18739 BTREE
tbl_auction_listing 1 Listing - subject_id 1 subject_id A 32 YES BTREE
tbl_auction_listing 1 Listing - medium_id 1 medium_id A 32 YES BTREE
tbl_auction_listing 1 Listing - style_id 1 style_id A 38 YES BTREE
tbl_auction_listing 1 Listing - colour_id 1 colour_id A 30 YES BTREE
tbl_auction_listing 1 Listing - user_id 1 user_id A 1441 BTREE
tbl_auction_listing 1 Listing - price_id 1 price_id A 20 YES BTREE
tbl_auction_listing 1 Listing - status 1 status A 8 YES BTREE
答案 0 :(得分:2)
你可以:
1.增加Web服务器的默认http请求时间
2.在tbl_auction_listing.item_number上建立索引
3.缓存一些不太容易改变的表格
4.增加应用程序和数据库服务器上的sql查询超时
5.对数据库进行非规范化
答案 1 :(得分:0)
不,将此查询分解为多个查询会不会更好。
最好将索引添加到数据库中以加快查询速度。每个子表都应在其主键上有一个索引。例如,tbl_style
应该有tbl_style(style_id)
的索引,依此类推。
您的索引“方向错误”。它们应该在引用表本身上,而不是(或不仅仅)在主表上。