У меня немного сложный запрос. У меня здесь объединено несколько таблиц. И каждая таблица прошла индексацию. Но когда я запускаю запрос объяснения, он показывает, что TenderTransactions TT не индексируется, знаете ли вы какую-либо причину.
select RTI.Base_Currency_Id as BASE_CURRENCY_ID,
RTI.Location_Id as LOCATION_ID,
TT.Acquirer_Id as ACQUIRER_ID,
TT.Acquirer_Group_Id as ACQUIRER_GROUP_ID,
TT.Acquirer_Group_Hierarchy_Id as ACQUIRER_GROUP_HIERARCHY_ID,
A.Description as ACQUIRER_DESCRIPTION,
RTI.Terminal_Number as TERMINAL_NUMBER,
RTI.Transaction_Number as TRANSACTION_NUMBER,
RTI.Completed_Date_Time as COMPLETED_DATE_TIME,
TT.Customer_Id as CUSTOMER_ID,
TT.Customer_Surname as CUSTOMER_SURNAME,
TT.Card_Entry_Method as CARD_ENTRY_METHOD,
-TT.Base_Value as BASE_VALUE,
TT.Currency_Id as FOREIGN_CURRENCY_ID,
-TT.Value as FOREIGN_VALUE,
TT.Card_Number as CARD_NUMBER,
TT.Card_Number_Hashed as CARD_NUMBER_HASHED,
TT.Card_Number_Mangled as CARD_NUMBER_MANGLED,
TT.Encrypted_Data as ENCRYPTED_DATA,
TT.Key_Id as KEY_ID,
CT.Description as CARD_TYPE_DESCRIPTION,
TT.Merchant_Id as MERCHANT_ID
from 2_7_rc1_em.TenderTransactions TT
INNER JOIN 2_7_rc1_em.RetailTransactionIds RTI ON TT.Transaction_Key = RTI.Transaction_Key
inner join ( select COUNT(*) as CARD_COUNT,
TTIn.Card_Number as CARD_NUMBER,
TTIn.Card_Number_Hashed as CARD_NUMBER_HASHED from 2_7_rc1_em.TenderTransactions TTIn
inner join 2_7_rc1_em.RetailTransactionIds RTIIn on TTIn.Transaction_Key = RTIIn.Transaction_Key where ('' = '' or RTIIn.Region_Group_Id = '')
and ('' = '' or RTIIn.Region_Group_Hierarchy_Id = '')
and ('' = '' or RTIIn.Location_Id = '')
and ('' = '' or RTIIn.Device_Id = '')
and ('' = '' or TTIn.Acquirer_Id = '')
and ('' = '' or TTIn.Acquirer_Group_Id = '')
and ('' = '' or TTIn.Acquirer_Group_Hierarchy_Id = '')
and ('' = '' or TTIn.User_Id = '')
and ('' = '' or TTIn.Customer_Id = '')
and ('' = '' or TTIn.Card_Entry_Method = '')
and ((TTIn.Card_Number != '' and TTIn.Card_Number != '-') or (TTIn.Card_Number_Hashed != '' and TTIn.Card_Number_Hashed != '-') or (TTIn.Card_Number_Mangled != '' and TTIn.Card_Number_Mangled != '-'))
and (('' = '' or TTIn.Card_Number = '') or ('' = '' or TTIn.Card_Number_Hashed = ''))
and (0 = 0 or TTIn.Base_Value >= 0)
and (0 = 0 or TTIn.Base_Value = 0)
and (0 = 0 or RTIIn.Transaction_Number 0))
and (RTIIn.Completed_Date_Time >= '2023-10-30 00:00:00')
and (RTIIn.Completed_Date_Time = 0)
and (0 = 0 or ABS(TT.Base_Value) >= 0)
and (0 = 0 or ABS(TT.Base_Value) = 0)
and (0 = 0 or RTI.Transaction_Number 0))
and (RTI.Completed_Date_Time >= '2023-10-30 00:00:00')
and (RTI.Completed_Date_Time
Подробнее здесь: [url]https://stackoverflow.com/questions/79147925/mysql-inner-join-does-not-use-index[/url]
У меня немного сложный запрос. У меня здесь объединено несколько таблиц. И каждая таблица прошла индексацию. Но когда я запускаю запрос объяснения, он показывает, что TenderTransactions TT не индексируется, знаете ли вы какую-либо причину. [code]select RTI.Base_Currency_Id as BASE_CURRENCY_ID, RTI.Location_Id as LOCATION_ID, TT.Acquirer_Id as ACQUIRER_ID, TT.Acquirer_Group_Id as ACQUIRER_GROUP_ID, TT.Acquirer_Group_Hierarchy_Id as ACQUIRER_GROUP_HIERARCHY_ID, A.Description as ACQUIRER_DESCRIPTION, RTI.Terminal_Number as TERMINAL_NUMBER, RTI.Transaction_Number as TRANSACTION_NUMBER, RTI.Completed_Date_Time as COMPLETED_DATE_TIME, TT.Customer_Id as CUSTOMER_ID, TT.Customer_Surname as CUSTOMER_SURNAME, TT.Card_Entry_Method as CARD_ENTRY_METHOD, -TT.Base_Value as BASE_VALUE, TT.Currency_Id as FOREIGN_CURRENCY_ID, -TT.Value as FOREIGN_VALUE, TT.Card_Number as CARD_NUMBER, TT.Card_Number_Hashed as CARD_NUMBER_HASHED, TT.Card_Number_Mangled as CARD_NUMBER_MANGLED, TT.Encrypted_Data as ENCRYPTED_DATA, TT.Key_Id as KEY_ID, CT.Description as CARD_TYPE_DESCRIPTION, TT.Merchant_Id as MERCHANT_ID from 2_7_rc1_em.TenderTransactions TT INNER JOIN 2_7_rc1_em.RetailTransactionIds RTI ON TT.Transaction_Key = RTI.Transaction_Key inner join ( select COUNT(*) as CARD_COUNT, TTIn.Card_Number as CARD_NUMBER, TTIn.Card_Number_Hashed as CARD_NUMBER_HASHED from 2_7_rc1_em.TenderTransactions TTIn inner join 2_7_rc1_em.RetailTransactionIds RTIIn on TTIn.Transaction_Key = RTIIn.Transaction_Key where ('' = '' or RTIIn.Region_Group_Id = '') and ('' = '' or RTIIn.Region_Group_Hierarchy_Id = '') and ('' = '' or RTIIn.Location_Id = '') and ('' = '' or RTIIn.Device_Id = '') and ('' = '' or TTIn.Acquirer_Id = '') and ('' = '' or TTIn.Acquirer_Group_Id = '') and ('' = '' or TTIn.Acquirer_Group_Hierarchy_Id = '') and ('' = '' or TTIn.User_Id = '') and ('' = '' or TTIn.Customer_Id = '') and ('' = '' or TTIn.Card_Entry_Method = '') and ((TTIn.Card_Number != '' and TTIn.Card_Number != '-') or (TTIn.Card_Number_Hashed != '' and TTIn.Card_Number_Hashed != '-') or (TTIn.Card_Number_Mangled != '' and TTIn.Card_Number_Mangled != '-')) and (('' = '' or TTIn.Card_Number = '') or ('' = '' or TTIn.Card_Number_Hashed = '')) and (0 = 0 or TTIn.Base_Value >= 0) and (0 = 0 or TTIn.Base_Value = 0) and (0 = 0 or RTIIn.Transaction_Number 0)) and (RTIIn.Completed_Date_Time >= '2023-10-30 00:00:00') and (RTIIn.Completed_Date_Time = 0) and (0 = 0 or ABS(TT.Base_Value) >= 0) and (0 = 0 or ABS(TT.Base_Value) = 0) and (0 = 0 or RTI.Transaction_Number 0)) and (RTI.Completed_Date_Time >= '2023-10-30 00:00:00') and (RTI.Completed_Date_Time