随笔 - 394  文章 - 0  评论 - 946  阅读 - 143万 

目前手头有个查询:

复制代码
SELECT LPP.learning_project_pupilID, SL.serviceID, MAX(LPPO.start_date), SUM(LPPOT.license_mode_value) totalAssignedLicenses
          FROM t_services_licenses SL 
          INNER JOIN t_pupils_offers_services POS ON POS.service_licenseID = SL.service_licenseID 
          INNER JOIN j_learning_projects_pupils_offers LPPO ON LPPO.learning_project_pupil_offerID = POS.learning_project_pupil_offerID
          INNER JOIN j_learning_projects_pupils LPP ON LPPO.learning_project_pupilID = LPP.learning_project_pupilID
          INNER JOIN j_learning_projects_pupils_offers_tracking LPPOT ON LPPOT.pupil_offer_serviceID = POS.pupil_offer_serviceID
          INNER JOIN t_filters_items FI ON FI.itemID = LPP.learning_project_pupilID_for_filter_join  
          WHERE FI.filterID = '4dce2235-aafd-4ba2-b248-c137ad6ce8ca' 
          AND SL.serviceID IN ('OnlineConversationClasses', 'TwentyFourSeven')
          GROUP BY LPP.learning_project_pupilID, SL.serviceID
复制代码

查询非常慢,需要耗时半个多小时之多。

下面是表的一些详细信息:

t_filters_items表:

j_learning_projects_pupils_offers_tracking表:

j_learning_projects_pupils表:

j_learning_projects_pupils_offers表:

t_pupils_offers_services表:

 

t_services_licenses表:

执行计划如下:

 sql脚本如下:

复制代码
DROP TABLE IF EXISTS t_services_licenses;
CREATE TABLE t_services_licenses (
  service_licenseID varchar(36) NOT NULL,
  serviceID varchar(36) NOT NULL,
  disciplineID varchar(36) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  serial_key varchar(50) DEFAULT NULL,
  deleted tinyint(3) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (service_licenseID),
  KEY FK_t_services_licenses_serviceID (serviceID),
  KEY IDX_disciplineID (disciplineID),
  KEY IDX_deleted (deleted),
  CONSTRAINT FK_t_services_licenses_serviceID FOREIGN KEY (serviceID) REFERENCES p_services (serviceID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS t_pupils_offers_services;
CREATE TABLE t_pupils_offers_services (
  pupil_offer_serviceID varchar(36) NOT NULL,
  learning_project_pupil_offerID varchar(36) NOT NULL,
  service_licenseID varchar(36) NOT NULL,
  triggered_pupil_offer_serviceID varchar(36) DEFAULT NULL,
  triggered_right_of_use_typeID int(10) unsigned DEFAULT NULL,
  triggered_right_of_use_value bigint(20) unsigned DEFAULT NULL,
  PRIMARY KEY (pupil_offer_serviceID),
  KEY FK_t_pupils_offers_services_offer_serviceID (service_licenseID),
  KEY IDX_ID_SERVICE (learning_project_pupil_offerID,service_licenseID),
  CONSTRAINT FK_t_pupils_offers_services_lppoID FOREIGN KEY (learning_project_pupil_offerID) REFERENCES j_learning_projects_pupils_offers (learning_project_pupil_offerID) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT FK_t_pupils_offers_services_slID FOREIGN KEY (service_licenseID) REFERENCES t_services_licenses (service_licenseID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS j_learning_projects_pupils_offers;
CREATE TABLE j_learning_projects_pupils_offers (
  learning_project_pupil_offerID varchar(36) NOT NULL,
  learning_project_pupilID bigint(20) unsigned NOT NULL,
  offerID varchar(36) NOT NULL,
  start_date datetime NOT NULL,
  end_date datetime NOT NULL,
  deleted tinyint(3) unsigned NOT NULL DEFAULT '0',
  interruption_count int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (learning_project_pupil_offerID),
  KEY FK_j_learning_projects_pupils_offers_projID (learning_project_pupilID),
  KEY FK_j_learning_projects_pupils_offers_offerID (offerID),
  KEY IDX_start_date (start_date) USING BTREE,
  KEY IDX_end_date (end_date) USING BTREE,
  KEY IDX_deleted (deleted),
  CONSTRAINT FK_LPPO_LP FOREIGN KEY (learning_project_pupilID) REFERENCES j_learning_projects_pupils (learning_project_pupilID) ON DELETE CASCADE,
  CONSTRAINT FK_LPPO_O FOREIGN KEY (offerID) REFERENCES t_offers (offerID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS j_learning_projects_pupils;
CREATE TABLE j_learning_projects_pupils (
  learning_project_pupilID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  user_actorID varchar(36) NOT NULL,
  active tinyint(3) unsigned DEFAULT '1' COMMENT '1',
  disciplineID varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  deleted tinyint(3) unsigned NOT NULL DEFAULT '0',
  active_work_reminder tinyint(3) unsigned NOT NULL DEFAULT '1',
  enable_change_of_reminder_settings tinyint(3) unsigned NOT NULL DEFAULT '1',
  enable_objective_redefinition tinyint(3) unsigned NOT NULL DEFAULT '1',
  enable_sequence_removing tinyint(3) unsigned NOT NULL DEFAULT '1',
  send_detailed_report tinyint(3) unsigned NOT NULL DEFAULT '1',
  send_learning_path tinyint(3) unsigned NOT NULL DEFAULT '1',
  send_test_result tinyint(3) unsigned NOT NULL DEFAULT '1',
  weekly_availability_time bigint(20) unsigned NOT NULL DEFAULT '0',
  working_reminder_periodicityID tinyint(3) unsigned NOT NULL,
  working_reminder_periodicity_value bigint(20) unsigned NOT NULL DEFAULT '0',
  registration_date datetime NOT NULL,
  current_free_mode_learning_levelID bigint(20) unsigned DEFAULT NULL,
  enable_change_of_difficulty_settings tinyint(3) unsigned NOT NULL DEFAULT '0',
  was_activated tinyint(3) unsigned NOT NULL DEFAULT '0',
  was_connected tinyint(3) unsigned NOT NULL DEFAULT '0',
  snapshot_running tinyint(3) unsigned NOT NULL DEFAULT '0',
  visible tinyint(3) unsigned NOT NULL DEFAULT '1',
  tempID varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  learning_project_pupilID_for_filter_join varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  objectives_expected_time_on_formation smallint(5) unsigned NOT NULL DEFAULT '0',
  objectives_expected_time_enabled tinyint(3) unsigned NOT NULL DEFAULT '0',
  cecr_level tinyint(3) unsigned NOT NULL DEFAULT '1',
  enable_show_popup_phone_lesson_and_live_tutoring TINYINT(3) UNSIGNED NOT NULL DEFAULT '1',
  PRIMARY KEY (learning_project_pupilID),
  KEY user_actorID (user_actorID),
  KEY FK_j_learning_projects_pupils_level (current_free_mode_learning_levelID),
  KEY IDX_statuses (was_activated,was_connected,deleted,active),
  KEY IDX_LPP_TEMPID (tempID),
  KEY IDX_LPP_TEMPFILTERID (learning_project_pupilID_for_filter_join),
  KEY IDX_DAVA (deleted,active,visible,active_work_reminder),
  KEY IDX_discipline_v (disciplineID,visible) USING BTREE,
  CONSTRAINT FK_j_learning_projects_pupils_discipline FOREIGN KEY (disciplineID) REFERENCES p_disciplines (disciplineID),
  CONSTRAINT FK_j_learning_projects_pupils_j_users_actors FOREIGN KEY (user_actorID) REFERENCES j_users_actors (user_actorID),
  CONSTRAINT FK_j_learning_projects_pupils_level FOREIGN KEY (current_free_mode_learning_levelID) REFERENCES p_learning_levels (learning_levelID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS j_learning_projects_pupils_offers_tracking;
CREATE TABLE j_learning_projects_pupils_offers_tracking (
  learning_project_pupil_offer_trackingID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  pupil_offer_serviceID varchar(36) NOT NULL,
  license_mode_typeID int(10) unsigned NOT NULL,
  license_mode_value bigint(20) unsigned NOT NULL DEFAULT '0',
  effective_consumption_value bigint(20) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (learning_project_pupil_offer_trackingID),
  KEY FK_j_learning_projects_pupils_offers_tracking_posID (pupil_offer_serviceID),
  CONSTRAINT FK_j_learning_projects_pupils_offers_tracking_posID FOREIGN KEY (pupil_offer_serviceID) REFERENCES t_pupils_offers_services (pupil_offer_serviceID) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS t_filters_items;
CREATE TABLE t_filters_items (
  filterID varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  itemID varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  row_order bigint(20) unsigned NOT NULL DEFAULT '0',
  selected tinyint(3) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (filterID,itemID),
  CONSTRAINT FK_t_filters_items_ID FOREIGN KEY (filterID) REFERENCES t_filters (filterID) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码

 

posted on   程序诗人  阅读(448)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2012-08-14 ADPlus
2012-08-14 WPF换肤之八:创建3D浏览效果
2011-08-14 匿名方法的一些使用方法备忘
2011-08-14 Log4Net使用方法小记
2010-08-14 22个所见即所得在线 Web 编辑器
点击右上角即可分享
微信分享提示