Ich habe eine Produktionsdatenbank in AWS, aber die gleiche Datenbank in localhost ist viel schneller (25s VS 7s), einige Nachforschungen habe ich eine Diskrepanz in der gleichen SQL gefunden:Verschiedene key_len Ergebnisse in der gleichen Datenbank (verschiedene Umgebungen)
In AWS =====> key_len = 8 und Extra = Verwenden wo.
In localhost ==> key_len = 5 und Extra = Indexbedingung verwenden.
lief ich in beiden Standorten vor:
OPTIMIZE TABLE invoice;
Wahrscheinlich ist es ein Konfigurationsproblem, aber ich bin verloren.
Weitere Informationen:
Mysql Version in AWS: 5.5.46
Mysql Version in Localhost: 5.6.24
in AWS erklären:
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: i
type: range
possible_keys: PRIMARY,IDX_5FD82ED84DD79520
key: IDX_5FD82ED84DD79520
key_len: 8
ref: NULL
rows: 847
filtered: 100.00
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: p
type: ref
possible_keys: UNIQ_848ABB8F2989F1FD
key: UNIQ_848ABB8F2989F1FD
key_len: 5
ref: ontrocrm.i.id
rows: 1
filtered: 100.00
Extra: Using where
erklären in localhost:
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: i
type: range
possible_keys: PRIMARY,IDX_5FD82ED84DD79520
key: IDX_5FD82ED84DD79520
key_len: 5
ref: NULL
rows: 847
filtered: 100.00
Extra: Using index condition
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: p
type: ref
possible_keys: UNIQ_848ABB8F2989F1FD
key: UNIQ_848ABB8F2989F1FD
key_len: 5
ref: ontrocrm.i.id
rows: 1
filtered: 100.00
Extra: NULL
Tabelle erstellen ist das gleiche in beiden, ist man ein Backup von der anderen:
CREATE TABLE `invoice` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` int(11) NOT NULL,
`whenCreated` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_number` (`number`),
KEY `IDX_5FD82ED84DD79520` (`whenCreated`)
)
Vielen Dank, sehr nützliche Antwort. – Cyrus