Ich habe diese update
query:Verständnis ERKLÄREN Spaltenindex zu erstellen, basierend auf
explain UPDATE
qanda AS ans1
JOIN qanda AS ans2 ON ans2.related = ans1.related
JOIN qanda AS ques ON ans2.related = ques.id
SET ans1.acceptedanswer = IF(ans1.id <> 3, 0, IFNULL(ans1.acceptedanswer, 0)^b'1'),
ans1.aadate = IF(ans1.id <> 3, ans1.aadate, 4353)
WHERE ques.author_id = 29
AND ans2.id = 3
AND ans2.author_id = 31
AND (ques.amount IS NULL or ans1.acceptedanswer IS NULL)
Und hier ist das Ergebnis seiner EXPLAIN
:
+------+-------------+-------+-------+---------------------------+---------+---------+-------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+-------------+-------+-------+---------------------------+---------+---------+-------+------+-------------+
| 1 | SIMPLE | ans2 | const | PRIMARY,author_id,related | PRIMARY | 4 | const | 1 | NULL |
| 2 | SIMPLE | ques | const | PRIMARY,author_id | PRIMARY | 4 | const | 1 | NULL |
| 3 | SIMPLE | ans1 | ALL | related | NULL | NULL | NULL | 4 | Using where |
+------+-------------+-------+-------+---------------------------+---------+---------+-------+------+-------------+
Es sollte meinen Tisch nur zu beachten, ist, die 4 Zeilen von Daten.
Gut ist meine Struktur in Ordnung? Oder sollte ich einen solchen Index für eine solche Spalte erstellen?
werfen Sie eine Tonne von Zeilen mit einer Test-DB, die erhebliche Zeilenanzahl hat. Jetzt bist du nicht. Im Moment ist deine Erklärung bedeutungslos. – Drew