Mam problem z InnoDB (tabela była początkowo MyISAM, ale zamieniłem ją na InndoB jakiś czas temu); Próbuję uruchomić tę kwerendę:Niepoprawny plik klucza z MySQL
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
INNER JOIN rss_feeds AS feeds ON posts.blog_id=feeds.id
WHERE
feeds.blog_language=1
ORDER BY
posts.post_date_db DESC
LIMIT
10;
otrzymuję ten błąd:
Query : SELECT posts.id,posts.post_title FROM rss_posts AS posts INNER JOIN vw_rss_feeds AS feeds ON posts.blog_id=feeds.id WHER...
Error Code : 126
Incorrect key file for table '/tmp/#sql_7375_0.MYI'; try to repair it
Nie mogę przeprowadzić naprawę na stołach zaangażowanych; jednak uruchomiłem CHECK na obu tabelach & wydają się dobrze. Mam również odbywa się optymalizować obu tabelach & TAKŻE przebudowanych tabele wykonując poniżej ..
INSERT INTO new_table SELECT * FROM old_table;
I potem przemianowany na nową tabelę do starej nazwy tabeli ..... ale mam ten problem nadal występuje .
Aby spróbować & dowiedzieć się, co było przyczyną jej stół usunąłem kod w zapytaniu Odwoływanie się do „rss_feeds” tabeli .... więc teraz kwerenda wygląda następująco ..
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
ORDER BY
posts.post_date_db DESC
LIMIT
10;
który pracował.
Problem jest więc związany z tabelą rss_feeds.
Więc pomyślałem, że zamieniłbym stół z powrotem na MyISAM &, wykonałbym naprawę &, a następnie przerzucił z powrotem na InnoDB ..... działało tymczasowo, wróciło do normy ... potem znowu się zepsuło ... ... naprawił to ponownie, zepsuł się ponownie ... teraz naprawa w ogóle nie działa.
Teraz wiem, wiem ...... Szukałem już tego problemu w Google ...... Zauważyłem, że WIĘKSZOŚĆ czasu, w którym występuje problem, za mało miejsca w Katalog tymczasowy MySQL .... ale już mam gospodarza, aby zmienić katalog temp na coś z dużo więcej przestrzeni & problem pozostaje.
Myślę, że GOSPODARZ jest winien & it NADAL jest problemem z katalogiem tymczasowym; czemu? Ponieważ po tym, jak znów go uruchomiłem, zacząłem dodawać dane do tabeli rss_posts ponownie &, więc JOIN otrzyma WIĘKSZE & MySQL znów będzie brakować miejsca .... co o tym myślisz?
Dziękuję - na pewno jest wystarczająco dużo miejsca na dysku; Zasadniczo stwierdzono, że gospodarz .. „W"/var/tmp przegroda wykorzystuje ten sam obszar jak '/', a jego użycie jest informacja komunikatu, jak następuje; /dev/sda3 130G 289g 442 g 32%/ Więc nie powinno być żadnych problemów z przestrzenią. " Chociaż zastanawiam się, czy może/var/tmp/dir nie jest ograniczony? Jeśli to nawet możliwe. Zapytanie, które tam masz - to w zasadzie tylko 10 ostatnich postów z ostatnich 30 dni? – Brett
Prawidłowo. Możesz parametryzować "30", aby było nieco szersze. Jednak niezależnie od dostępnego miejsca na dysku, jeśli stale sortujesz całą tabelę na 10 wierszy, możesz napotkać problemy z skalowaniem i wydajnością. –
Tak ... masz rację. Dziękuję bardzo! – Brett