Ich suche ab und zu mit "Select * von Posts, wie"% http: //% 'order by id desc limit 10 "und Suche ein paar andere Stichworte. In letzter Zeit ist die Auswahl unglaublich langsam.Wirklich langsame Abfrage war früher sehr schnell. Erklären zeigt Zeilen = 1 auf lokalen Backup aber Zeilen = 2287359 auf Server
mysql> explain select * from posts where reply like "%http://%" order by id desc limit 1;
+----+-------------+-----------+-------+---------------+---------+---------+------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+-------+---------------+---------+---------+------+---------+-------------+
| 1 | SIMPLE | posts | index | NULL | PRIMARY | 4 | NULL | 2287347 | Using where |
+----+-------------+-----------+-------+---------------+---------+---------+------+---------+-------------+
1 row in set (0.00 sec)
auf meinem Netbook mit 1 gig RAM Der einzige Unterschied ist es, die „ROWS“ -Spalte als 1. Es gibt nur 1,3 mil Beiträge in meinem Netbook zeigt. Der Server hat 6 GB RAM und einen schnellen Prozessor. Was sollte ich optimieren, damit es nicht furchtbar langsam ist? Kürzlich habe ich einen Index zur Suche nach userId hinzugefügt, von dem ich nicht sicher bin, ob er eine gute Wahl war, aber ich habe ihn dem Backup- und Produktionsserver hinzugefügt, kurz bevor dieses Problem auftrat. Ich könnte mir vorstellen, dass es damit zusammenhängt, dass es aufgrund eines verpassten Tweaks nicht möglich ist, in Ram zu sortieren?
Es scheint auch langsam zu sein, wenn ich Sachen wie "lösche von den Pfosten, wo threadId = X" tun, weiß nicht, wenn verwandt.
Können Sie die CREATE-Anweisung für Ihre Tabelle (einschließlich Indizes) anzeigen? – enobrev