MySQL i wolny INSERT INTO

0

Witam

Napisałem w C program który bardzo dużą ilość danych musi zapisywać w jak najszybszym czasie do bazy danych Mysql.
Powiedzmy że czasem przychodzą dane w tempie 2000 wpisów do bazy do wykonania na sekundę. Mój program w tym momencie
zaczyna gubić część danych.
Używam MySQL Connector/C do łączenia z bazą. Niestety na bazach danych aż tak się nie znam, żeby rozwiązać ten problem.

Czy mógłby ktoś nakierować mnie na jakieś rozwiązanie, gdzie operacje INSERT znacznie by się przyśpieszyło?

0

zrobić INSERT jedną operacją I/O?
INSERT INTO () VALUES (), (), (), (), ()

1

zmień tabelę na MyISAM. Jak to nie pomoże to pozostaje Ci keszować zapytania

0

maciejmt: Właśnie taki INSERT zrobiłem... i sprawdzałem - jest on dużo wolniejszy niż dane które przychodzą do programu - co powoduje ich gubienie od czasu do czasu.

Misiekd napisał(a)

zmień tabelę na MyISAM. Jak to nie pomoże to pozostaje Ci keszować zapytania

Pokombinuję - dzięki. Odpiszę niedługo jak efekty.

Pozdrawiam

0

zbieraj dane przez jakiś czas (1,2,3 sek.) i puszczaj wszystko w transakcji:

START TRANSACTION;
INSERT INTO () VALUES ();
...
...
INSERT INTO () VALUES ();
COMMIT;
0
Misiekd napisał(a)

zmień tabelę na MyISAM. Jak to nie pomoże to pozostaje Ci keszować zapytania

Dzięki bardzo wielkie - MyISAM pomogło. Znacznie przyśpieszyło wpisywanie do bazy - skąd ta różnica między szybkością INSERTów w InnoDB a MyISAM? Po Twojej odpowiedzi poczytałem o tych silnikach i z artykułów wywnioskowałem, że niby InnoDB powinno być szybsze.

Paweł Dmitruk napisał(a)

zbieraj dane przez jakiś czas (1,2,3 sek.) i puszczaj wszystko w transakcji:

START TRANSACTION;
INSERT INTO () VALUES ();
...
...
INSERT INTO () VALUES ();
COMMIT;

Dzięki, właśnie myślałem też wcześniej nad transakcjami - spróbuję również i tego rozwiązania - jestem ciekaw które będzie szybsze.

0

MyISAM nie ma transakcji,nie wspiera ACID i ma blokowanie na poziomie tabeli i dlatego jest taki szybki.

0

BlackHole powinno być najszybsze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1