- 定位问题
- 最慢查询
- 最多查询
- 实例优化
实例1:
selecta.date_str,a.shopCode,a.add_car_pv,(selectb.shop_typefromdp_shop bwherea.shopCode = b.shop_code) shop_typefromdp_car_copy aorder bya.sjopCode,a.add_car_pv,a.date_strdp_car_copy: 197wdp_shop:3.2W
执行时间:35.437 s
优化:(方式:1.硬件 ,2.MySQL服务器优化【操作系统】,3.sql本身优化,4.反范式设计优化,5.索引优化)
步骤一:SQL本身【关联子查询 -> 关联查询】
selecta.date_str,a.shopCode,a.add_car_pv,b.shop_typefromdp_car_copy a,dp_shop bwherea.shopCode = b.shop_codeorder bya.sjopCode,b.shop_type,a.add_car_pv,a.date_str
执行时间:13.920 s
步骤二:反范式化设计【适当增加冗余,提高查询速度】空间换时间
两表冗余为单表:selecta.date_str,a.shopCode,a.add_car_pv,a.shop_typefromdp_car_copy2 aorder bya.sjopCode,a.shop_type,a.add_car_pv,a.date_str
执行时间:6.701 s
步骤三:索引【】
create index idx_query //创建索引on dp_copy2(date_str,shopCode,shop_type,add_car_pv)
执行步骤二SQL
执行时间:7.795 s
selecta.date_str,a.shopCode,a.add_car_pv,a.shop_typefromdp_car_copy2 awherea.date_str > '2018-01-01',and a.date_str <= '2018-08-10'order bya.sjopCode,a.shop_type,a.add_car_pv,a.date_str数据:16w
执行时间:0.881 s
