下面的查询使用下面的查询格式查找一个id,但似乎我已经为所有列建立了索引,但执行花费了54.3秒-1.2分钟的时间,有人能帮上忙吗?

-你在说什么?

select 
  op.ord_prod_id 
FROM 
  ordered_product op, 
  payment_type pt, 
  account a, 
  service s, 
  payment_method pm, 
  acct_order ao, 
  acct_order_item aoi 
WHERE 
  (
    (
      op.type = 1 
      OR op.type = 2
    ) 
    AND (
      pt.description = 'Levis' 
      AND op.validity_end_date < '2022-09-18 11:24:08 Etc/GMT' 
      AND op.validity_end_date >= '2022-09-18 00:00:00 Etc/GMT' 
      AND op.acct_status_id = 1 
      AND op.is_Renewable = 'T' 
      AND a.bu_id = 103
    )
  ) 
  AND pm.type_id = pt.id 
  AND s.acct_id = a.acct_id 
  AND op.serv_id = s.serv_id 
  AND ao.pay_meth_id = pm.pay_method_id 
  AND aoi.order_id = ao.order_id 
  AND aoi.ord_prod_id = op.ord_prod_id 
ORDER BY 
  op.validity_end_date ASC

解释计划

*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: pt
   partitions: NULL
         type: ref
possible_keys: PRIMARY,idx_pmttype_descrip,idx_description
          key: idx_pmttype_descrip
      key_len: 32
          ref: const
         rows: 1
     filtered: 100.00
        Extra: Using index; Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: pm
   partitions: NULL
         type: ref
possible_keys: PRIMARY,payment_method_type_id,Idx_type_id,idx_type_id_zip_code_last_digits
          key: payment_method_type_id
      key_len: 10
          ref: ccbuser.pt.id
         rows: 3297
     filtered: 100.00
        Extra: Using index
*************************** 3. row ***************************
           id: 1
  select_type: SIMPLE
        table: ao
   partitions: NULL
         type: ref
possible_keys: PRIMARY,idx_pay_meth_id
          key: idx_pay_meth_id
      key_len: 11
          ref: ccbuser.pm.pay_method_id
         rows: 2
     filtered: 100.00
        Extra: Using index
*************************** 4. row ***************************
           id: 1
  select_type: SIMPLE
        table: aoi
   partitions: NULL
         type: ref
possible_keys: idx_accttorderitem_orderid,idx_ord_prod_id
          key: idx_accttorderitem_orderid
      key_len: 10
          ref: ccbuser.ao.order_id
         rows: 1
     filtered: 100.00
        Extra: NULL
*************************** 5. row ***************************
           id: 1
  select_type: SIMPLE
        table: op
   partitions: NULL
         type: eq_ref
possible_keys: PRIMARY,idx_ord_prod_servid,idx_ord_prod_statprod,idx_ordprod_type,idx_ord_prod_ve_date,idx_ord_prod_acct_status_id,idx_combo,idx_is_renewable,idx_validity_package_ind_acct_status
          key: PRIMARY
      key_len: 10
          ref: ccbuser.aoi.ord_prod_id
         rows: 1
     filtered: 5.00
        Extra: Using where
*************************** 6. row ***************************
           id: 1
  select_type: SIMPLE
        table: s
   partitions: NULL
         type: eq_ref
possible_keys: PRIMARY,idx_service_acctid
          key: PRIMARY
      key_len: 10
          ref: ccbuser.op.serv_id
         rows: 1
     filtered: 100.00
        Extra: NULL
*************************** 7. row ***************************
           id: 1
  select_type: SIMPLE
        table: a
   partitions: NULL
         type: eq_ref
possible_keys: PRIMARY,idx_account_buidasid,idx_combo,idx_bu_id,idx_1
          key: PRIMARY
      key_len: 10
          ref: ccbuser.s.acct_id
         rows: 1
     filtered: 5.00
        Extra: Using where
7 rows in set, 11 warnings (0.03 sec)

我已经给了表演警告;

*************************** 1. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 11:24:08 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 2. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 00:00:00 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 3. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 11:24:08 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 4. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 11:24:08 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 5. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 11:24:08 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 6. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 11:24:08 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 7. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 00:00:00 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 8. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 00:00:00 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 9. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 00:00:00 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 10. row ***************************
  Level: Warning
   Code: 1292
Message: Incorrect datetime value: '2022-09-18 00:00:00 Etc/GMT' for column 'validity_end_date' at row 1
*************************** 11. row ***************************
  Level: Note
   Code: 1003
Message: /* select#1 */ select 
  .`op`.`ord_prod_id` AS `ord_prod_id` 
from 
  `ordered_product` `op` 
  join `payment_type` `pt` 
  join `account` `a` 
  join `service` `s` 
  join `payment_method` `pm` 
  join `acct_order` `ao` 
  join `acct_order_item` `aoi` 
where 
  (
    (
      `op`.`ord_prod_id` = `aoi`.`ord_prod_id`
    ) 
    and (
      `aoi`.`order_id` = `ao`.`order_id`
    ) 
    and (
      `ao`.`pay_meth_id` = `pm`.`pay_method_id`
    ) 
    and (
      `s`.`serv_id` = `op`.`serv_id`
    ) 
    and (
      `a`.`acct_id` = `s`.`acct_id`
    ) 
    and (
      `pm`.`type_id` = `pt`.`id`
    ) 
    and (
      `op`.`is_Renewable` = 'T'
    ) 
    and (
      `pt`.`description` = 'Credit Card'
    ) 
    and (
      (`op`.`type` = 1) 
      or (`op`.`type` = 2)
    ) 
    and (
      `op`.`validity_end_date` < '2022-09-18 11:24:08 Etc/GMT'
    ) 
    and (
      `op`.`validity_end_date` >= '2022-09-18 00:00:00 Etc/GMT'
    ) 
    and (
      `op`.`acct_status_id` = 1
    ) 
    and (`a`.`bu_id` = 103)
  ) 
order by 
  `op`.`validity_end_date`

所有行都扫描一行,其中一些行扫描3k,我是否必须对上面的行使用str_to_date函数,有什么方法可以提高性能吗?

表 struct :

       Table: ordered_product
Create Table: CREATE TABLE `ordered_product` (
  `acct_status_id` decimal(22,0) NOT NULL,
  `anual_prepay_ind` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `bill_end_date` datetime DEFAULT NULL,
  `bill_start_date` datetime DEFAULT NULL,
  `equip_id` decimal(22,0) DEFAULT NULL,
  `ord_prod_id` decimal(22,0) NOT NULL,
  `package_id` decimal(22,0) DEFAULT NULL,
  `package_ind` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `parent_ord_prod_id` decimal(22,0) DEFAULT NULL,
  `prod_id` decimal(22,0) DEFAULT NULL,
  `quantity` decimal(38,0) DEFAULT NULL,
  `remove_flag` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `serv_id` decimal(22,0) NOT NULL,
  `srv_end_date` datetime DEFAULT NULL,
  `srv_start_date` datetime DEFAULT NULL,
  `split_prod_id` decimal(22,0) DEFAULT NULL,
  `term` decimal(22,0) DEFAULT NULL,
  `type` decimal(22,0) DEFAULT NULL,
  `tax_charged` decimal(20,6) DEFAULT NULL,
  `comments` varchar(4000) DEFAULT NULL,
  `reason_code_id` decimal(20,0) DEFAULT NULL,
  `price_charged` decimal(20,2) DEFAULT NULL,
  `validity_period` varchar(20) DEFAULT NULL,
  `validity_duration` decimal(38,0) DEFAULT NULL,
  `validity_end_date` datetime DEFAULT NULL,
  `coupon_amount` decimal(20,2) DEFAULT NULL,
  `coupon_code` varchar(100) DEFAULT NULL,
  `applied_wallet_amount` decimal(20,2) DEFAULT NULL,
  `applied_rate_type` varchar(100) DEFAULT NULL,
  `partner_domain` varchar(100) DEFAULT NULL,
  `is_Renewable` varchar(1) DEFAULT NULL,
  `coupon_external_id` varchar(256) DEFAULT NULL,
  `validity_extended_date` datetime DEFAULT NULL,
  `cancellation_date` datetime DEFAULT NULL,
  `rec_indicator` varchar(1) DEFAULT NULL,
  `suspend_start_date` datetime DEFAULT NULL,
  `suspend_end_date` datetime DEFAULT NULL,
  `suspend_duration` decimal(20,0) DEFAULT NULL,
  `commitment_end_date` datetime DEFAULT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `contact_id` varchar(30) DEFAULT NULL,
  `subscription_status_id` decimal(22,0) DEFAULT NULL,
  `bu_charged_currency_id` decimal(38,0) DEFAULT NULL,
  `currency_code` varchar(200) DEFAULT NULL,
  `legacy_id` varchar(200) DEFAULT NULL,
  `app_service_id` varchar(200) DEFAULT NULL,
  `app_channel_name` varchar(200) DEFAULT NULL,
  `applied_prod_rate_id` decimal(22,0) DEFAULT NULL,
  `applied_prod_rate_in_charged_currency_id` decimal(22,0) DEFAULT NULL,
  `applied_prod_price` decimal(22,0) DEFAULT NULL,
  `bill_to_parent` varchar(1) DEFAULT NULL,
  PRIMARY KEY (`ord_prod_id`),
  KEY `idx_ord_prod_servid` (`serv_id`),
  KEY `idx_ord_prod_statprod` (`acct_status_id`,`prod_id`,`package_id`),
  KEY `idx_ord_prod_bs_date` (`bill_start_date`),
  KEY `idx_ord_prod_be_date` (`bill_end_date`),
  KEY `ordered_product_modified_ts` (`modified_ts`),
  KEY `idx_ordprod_type` (`type`),
  KEY `idx_ord_prod_ve_date` (`validity_end_date`),
  KEY `idx_ord_prod_prod_id` (`prod_id`),
  KEY `idx_ord_prod_srv_start_date` (`srv_start_date`),
  KEY `idx_ord_prod_pack_id` (`package_id`),
  KEY `idx_ord_prod_acct_status_id` (`acct_status_id`),
  KEY `idx_ord_prod_validity_extend_dt` (`validity_extended_date`),
  KEY `idx_remove_flag` (`remove_flag`),
  KEY `idx_ord_prod_srv_end_date` (`srv_end_date`),
  KEY `idx_subscription_status_id` (`subscription_status_id`),
  KEY `idx_coupon_code` (`coupon_code`),
  KEY `idx_parent_ord_prod_id` (`parent_ord_prod_id`),
  KEY `idx_combo` (`type`,`serv_id`),
  KEY `idx_is_renewable` (`is_Renewable`),
  KEY `idx_package_ind` (`package_ind`),
  KEY `idx_validity_package_ind_acct_status` (`validity_end_date`,`package_ind`,`acct_status_id`),
  KEY `idx_legacyid` (`legacy_id`),
  KEY `idx_cancellation_date` (`cancellation_date`),
  KEY `idx_suspend_start_date` (`suspend_start_date`),
  KEY `idx_suspend_end_date_validity_end_date_combo` (`suspend_end_date`,`validity_end_date`,`acct_status_id`,`is_Renewable`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


       Table: payment_type
Create Table: CREATE TABLE `payment_type` (
  `auto_pay_capable_ind` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `can_post_credit_ind` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `check_number_ind` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `description` varchar(30) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `display_order` decimal(22,0) NOT NULL,
  `id` decimal(22,0) NOT NULL,
  `requires_gateway_ind` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `display_name` varchar(30) DEFAULT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `image_url` varchar(4096) DEFAULT NULL,
  `short_code` varchar(20) DEFAULT NULL,
  `payment_group` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_pmttype_descrip` (`description`),
  KEY `idx_display_name` (`display_name`),
  KEY `idx_description` (`description`),
  KEY `idx_payment_group` (`payment_group`),
  KEY `idx_modified_ts` (`modified_ts`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


       Table: account
Create Table: CREATE TABLE `account` (
  `acct_id` decimal(22,0) NOT NULL,
  `acct_status_id` decimal(22,0) NOT NULL,
  `acct_type_id` decimal(22,0) DEFAULT NULL,
  `attach_bill_cycle` char(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `bb_acct_id` varchar(256) DEFAULT NULL,
  `bill_del_type_id` decimal(22,0) DEFAULT NULL,
  `acct_bill_mode` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `bu_id` decimal(22,0) NOT NULL,
  `acct_comment` varchar(500) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `compliment_acct` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `contact_id` decimal(22,0) NOT NULL,
  `corporate_id` decimal(22,0) DEFAULT NULL,
  `create_date` datetime NOT NULL,
  `customer_id` varchar(100) DEFAULT NULL,
  `direct_acct` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `do_not_auto_script` char(5) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `email_inv_format` varchar(25) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `external_id_prefix` varchar(6) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `external_id_suffix` varchar(25) DEFAULT NULL,
  `inter_pic_id` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `intra_pic_id` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `legacy_id` decimal(22,0) DEFAULT NULL,
  `parent_id` decimal(22,0) DEFAULT NULL,
  `partner_id` decimal(22,0) DEFAULT NULL,
  `psa_acct_id` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `acct_reg_num` varchar(25) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `sales_method` varchar(100) DEFAULT NULL,
  `shipping_add_id` decimal(22,0) DEFAULT NULL,
  `tax_exempt` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `tax_number` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `tv_dma_id` varchar(30) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `status_change_date` datetime DEFAULT NULL,
  `external_creation_date` date DEFAULT NULL,
  `sales_person` varchar(200) DEFAULT NULL,
  `offer_type` varchar(50) DEFAULT NULL,
  `cancel_reasons_id` int(38) DEFAULT NULL,
  `acct_addl_info_id` decimal(38,0) DEFAULT NULL,
  `vpn_id` decimal(22,0) DEFAULT NULL,
  `verified` varchar(1) DEFAULT NULL,
  `verified_channel` varchar(50) DEFAULT NULL,
  `active_logins_count` decimal(20,0) DEFAULT NULL,
  `acct_role_id` decimal(20,0) DEFAULT NULL,
  `mso_id` varchar(200) DEFAULT NULL,
  `mso_name` varchar(200) DEFAULT NULL,
  `anonymized` varchar(1) DEFAULT NULL,
  `parental_control` varchar(1) DEFAULT NULL,
  `act_state_id` decimal(38,0) DEFAULT NULL,
  `verified_date` datetime DEFAULT NULL,
  `complaintmode_acct` varchar(1) DEFAULT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `mobile_verified` varchar(1) DEFAULT NULL,
  `acct_sub_type_id` decimal(22,0) DEFAULT NULL,
  `created_by` decimal(22,0) DEFAULT NULL,
  `ip_address` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`acct_id`),
  KEY `idx_account_customer_id` (`customer_id`),
  KEY `idx_account_buidasid` (`bu_id`,`acct_status_id`),
  KEY `idx_account_bbaccountid` (`bb_acct_id`),
  KEY `idx_create_date` (`create_date`),
  KEY `idx_contact_id` (`contact_id`),
  KEY `idx_attach_bill_cycle` (`attach_bill_cycle`),
  KEY `idx_act_state` (`act_state_id`),
  KEY `idx_accountt_legacyid` (`legacy_id`),
  KEY `account_modified_ts` (`modified_ts`),
  KEY `idx_account_acctroleid` (`acct_role_id`),
  KEY `idx_extrnl_suffix` (`external_id_suffix`),
  KEY `idx_extrnl_prefix` (`external_id_prefix`),
  KEY `idx_combo` (`bu_id`,`psa_acct_id`),
  KEY `idx_bu_id` (`bu_id`),
  KEY `idx_acct_reg_num` (`acct_reg_num`),
  KEY `idx_acct_stat_id` (`acct_status_id`),
  KEY `account_idx_combo4` (`tax_number`,`acct_id`,`contact_id`,`bu_id`),
  KEY `idx_1` (`bu_id`,`customer_id`),
  KEY `idx_acct_type_id` (`acct_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1



       Table: service
Create Table: CREATE TABLE `service` (
  `acct_id` decimal(22,0) NOT NULL,
  `acct_status_id` decimal(22,0) DEFAULT NULL,
  `do_not_auto_script` char(5) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `end_date` datetime DEFAULT NULL,
  `last_billed` datetime DEFAULT NULL,
  `loc_id` decimal(22,0) DEFAULT NULL,
  `serv_id` decimal(22,0) NOT NULL,
  `start_date` datetime NOT NULL,
  `type` decimal(22,0) DEFAULT NULL,
  `suspend_start_date` date DEFAULT NULL,
  `suspend_end_date` date DEFAULT NULL,
  `pending_suspension_date` date DEFAULT NULL,
  `reactivation_date` date DEFAULT NULL,
  `suspend_duration` decimal(20,0) DEFAULT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`serv_id`),
  KEY `idx_service_acctid` (`acct_id`),
  KEY `idx_service_locid` (`loc_id`),
  KEY `service_modified_ts` (`modified_ts`),
  KEY `idx_service_modified_ts` (`modified_ts`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


       Table: payment_method
Create Table: CREATE TABLE `payment_method` (
  `account_number` varchar(200) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `bob_id` decimal(22,0) DEFAULT NULL,
  `closed_date` datetime DEFAULT NULL,
  `pay_method_id` decimal(22,0) NOT NULL,
  `start_date` datetime NOT NULL,
  `type_id` decimal(22,0) NOT NULL,
  `credit_card_type_id` decimal(22,0) DEFAULT NULL,
  `expiration_date` datetime DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `pay_meth_type_id` decimal(22,0) NOT NULL,
  `security_code` varchar(100) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `str_addr` varchar(250) DEFAULT NULL,
  `zip_code` varchar(10) DEFAULT NULL,
  `acct_type_id` decimal(22,0) DEFAULT NULL,
  `bank_name` varchar(512) DEFAULT NULL,
  `bank_phone` varchar(15) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `rtn` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `city` varchar(100) DEFAULT NULL,
  `drivers_license` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `email` varchar(256) DEFAULT NULL,
  `sent_out` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `ssn` varchar(30) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `state` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `country` varchar(30) DEFAULT NULL,
  `storage_token` varchar(200) DEFAULT NULL,
  `payer_id` varchar(50) DEFAULT NULL,
  `last_digits` varchar(4) DEFAULT NULL,
  `ref_number` varchar(50) DEFAULT NULL,
  `phone_number` varchar(20) DEFAULT NULL,
  `dc_code` varchar(20) DEFAULT NULL,
  `xid` varchar(250) DEFAULT NULL,
  `eci` varchar(5) DEFAULT NULL,
  `cavv` varchar(250) DEFAULT NULL,
  `ucaf_authentication_data` varchar(250) DEFAULT NULL,
  `ucaf_collection_ind` varchar(5) DEFAULT NULL,
  `subscription_id` varchar(50) DEFAULT NULL,
  `effort_id` decimal(10,0) DEFAULT NULL,
  `receipt_data` longtext,
  `transaction_id` varchar(512) DEFAULT NULL,
  `org_transaction_id` varchar(512) DEFAULT NULL,
  `tax_area_id` varchar(30) DEFAULT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `nick_name` varchar(100) DEFAULT NULL,
  `iin` varchar(8) DEFAULT NULL,
  `allow_unlimited` tinyint(1) DEFAULT NULL,
  `name_of_bank` varchar(100) DEFAULT NULL,
  `card_number` varchar(100) DEFAULT NULL,
  `pin` varchar(20) DEFAULT NULL,
  `card_finger_print` varchar(200) DEFAULT NULL,
  `card_issuer_country` varchar(30) DEFAULT NULL,
  `card_service_provider` varchar(512) DEFAULT NULL,
  PRIMARY KEY (`pay_method_id`),
  KEY `payment_method_modified_ts` (`modified_ts`),
  KEY `idx_pmtmethod_transid` (`transaction_id`),
  KEY `idx_payment_method_start_dt` (`start_date`),
  KEY `payment_method_start_date` (`start_date`),
  KEY `payment_method_bob_id` (`bob_id`),
  KEY `payment_method_type_id` (`type_id`),
  KEY `idx_pm_accountno` (`account_number`),
  KEY `idx_exp_date` (`expiration_date`),
  KEY `idx_org_transaction_id` (`org_transaction_id`),
  KEY `idx_transaction_id` (`transaction_id`),
  KEY `Idx_bob_id` (`bob_id`),
  KEY `idx_account_number` (`account_number`),
  KEY `Idx_type_id` (`type_id`),
  KEY `i_modified_ts` (`modified_ts`),
  KEY `idx_last_digits` (`last_digits`),
  KEY `idx_ref_number` (`ref_number`),
  KEY `ix_refer_num` (`ref_number`),
  KEY `idx_zipcode` (`zip_code`),
  KEY `idx_card_fingerprint` (`card_finger_print`),
  KEY `idx_phone_number` (`phone_number`),
  KEY `idx_type_id_zip_code_last_digits` (`type_id`,`zip_code`,`last_digits`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


       Table: acct_order
Create Table: CREATE TABLE `acct_order` (
  `acct_id` decimal(22,0) NOT NULL,
  `ao_wf_instance_id` decimal(22,0) DEFAULT NULL,
  `comm` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `comment_id` decimal(38,0) DEFAULT NULL,
  `external_status` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `house_hold_user` varchar(60) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `legacy_id` varchar(200) DEFAULT NULL,
  `modify_date` datetime NOT NULL,
  `order_id` decimal(22,0) NOT NULL,
  `promise_date` datetime NOT NULL,
  `remove_flag` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `serv_id` decimal(22,0) DEFAULT NULL,
  `txn_id` decimal(22,0) DEFAULT NULL,
  `workflow_instance_id` decimal(22,0) DEFAULT NULL,
  `external_order_id` varchar(200) DEFAULT NULL,
  `ref_number` varchar(200) DEFAULT NULL,
  `pmt_profile_id` varchar(2048) DEFAULT NULL,
  `pay_meth_id` decimal(22,0) DEFAULT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `txn_summary_id` int(38) DEFAULT NULL,
  `country` varchar(10) DEFAULT NULL,
  `recon_required` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`order_id`),
  KEY `idx_acctorder_acctid` (`acct_id`),
  KEY `idx_acctorder_wfiid` (`workflow_instance_id`),
  KEY `idx_acctorder_servid` (`serv_id`),
  KEY `idx_ao_mod_dt` (`modify_date`),
  KEY `idx_ext_id` (`external_order_id`),
  KEY `acct_order_modified_ts` (`modified_ts`),
  KEY `idx_pmt_profile_id` (`pmt_profile_id`),
  KEY `idx_ref_number` (`ref_number`),
  KEY `idx_pay_meth_id` (`pay_meth_id`),
  KEY `idx_txn_id` (`txn_id`),
  KEY `idx_promise_date` (`promise_date`),
  KEY `idx_modified_ts` (`modified_ts`),
  KEY `idx_ao_wf_instance_id` (`ao_wf_instance_id`),
  KEY `idx_acct_id_legacy_id` (`acct_id`,`legacy_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


       Table: acct_order_item
Create Table: CREATE TABLE `acct_order_item` (
  `modify_date` datetime NOT NULL,
  `ord_prod_id` decimal(22,0) NOT NULL,
  `order_id` decimal(22,0) NOT NULL,
  `order_item_id` decimal(22,0) NOT NULL,
  `modified_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`order_item_id`),
  KEY `idx_accttorderitem_orderid` (`order_id`),
  KEY `idx_ord_prod_id` (`ord_prod_id`),
  KEY `acct_order_item_modified_ts` (`modified_ts`),
  KEY `idx_acct_order_item_modified_ts` (`modified_ts`),
  KEY `idx_modified_ts` (`modified_ts`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

请查看上面的表格 struct .

推荐答案

根据您的查询设计的索引将使查询速度更快.(但如果它是错的,它不会纠正它,只是说说而已.)

您可以根据以下条件筛选您的ordered_product表:

  • 类型(两个值)
  • 描述(相等)
  • Account_Status_id(相等)
  • 可续订(等同)(_R)
  • 有效性_结束_日期(日期范围)

因此,try 使用所有相等匹配列后跟范围列的索引.MySQL可以随机访问第一个符合条件的列,然后按顺序扫描它.快地.

CREATE INDEX desc_stat_renew_date ON ordered_product
     (description, acct_status_id, is_Renewable, validity_end_date);

要了解这一点,请参阅马库斯·维纳德的优秀https://use-the-index-luke.com/分.

Pro tip如果/当您迁移到另一台服务器计算机时,在列或表名中使用大小写混合可能会导致混淆.躲开!

Mysql相关问答推荐

MariaDB字段+1

如何计算具有权重属性的记录数

MySQL 8.0 可以在 Select 语句中返回 JSON 对象数组吗?

MySQL如何将字符串列表与子查询进行比较

使用sql查找源和最终目的地

有人可以帮我用 R 编程解决这个问题吗?

如何计算每行的剩余金额?

MySQL - 单词边界的正则表达式,不包括下划线(连接标点符号)

如何知道 Select 查询花费了多少时间?

了解 SQL 中的元组语法

WHERE SQL 语句中的列顺序是否重要

如何通过未知列中的唯一值有效地更新 MySQL 行

如何将表的链接列转换为 SQL 中的行?

Laravel classloader.php 错误打开流失败:没有这样的文件或目录

MySQL:低基数/ Select 性列=如何索引?

MySQL - 基于同一表中的行求和列值

MySQL 连接运算符

如何将 mysqldump 的输出拆分为较小的文件?

如何将数组存储到mysql中?

MySQL - 重复表