Леший Posted July 13, 2010 Report Posted July 13, 2010 Vopšem, ir pieprasījums INSERT DELAYED INTO table (fields) VALUES (values1), (values2), ... Tagad dažu iemesli dēļ ir jāpāriet uz InnoDB, bet tur INSERT DELAYED nestrādā. Kā var panākt līdzīgu efektu uz Inno? Quote
Леший Posted July 13, 2010 Author Report Posted July 13, 2010 Tu nepareizi saprati, man vajag InnoDB tabulai, ar kuru tiek izmantots DELAYED. Man principā vienalga, ja tas tiek panākts ar ne-MySQL iespējam, galvēnais, lai būtu iespēja palaist to insertu no PHP tā, lai var turpināt strādāt. Quote
Vebers Posted July 13, 2010 Report Posted July 13, 2010 Izravē no sources tos DELAYED un viss būs cool. Pēc principa MyISAM tikai vajag tos delayed, jo pie insert myisam noloko visu tabulu, bet innoDB tikai konkrētu row`u. Tapēc tas DELAYED kā tāds nav nepieciešams. Quote
Леший Posted July 13, 2010 Author Report Posted July 13, 2010 Vebers, tabula ir milzīga (ap 116kk ierakstu), un jebkurš inserts ir vismaz 0.5 sekundes. Manā gadījumā tur ir līdz 20 insertiem, līdz ar to, pieprasījums aizņem 10 sekundes. Quote
bubu Posted July 13, 2010 Report Posted July 13, 2010 Vai esi noskaidrojis, kas tajās 0.5 sekundēs aizņem vislielāko laiku šim vaicājumam? Quote
marrtins Posted July 13, 2010 Report Posted July 13, 2010 (edited) Tu nepareizi saprati, man vajag InnoDB tabulai, ar kuru tiek izmantots DELAYED. Man principā vienalga, ja tas tiek panākts ar ne-MySQL iespējam, galvēnais, lai būtu iespēja palaist to insertu no PHP tā, lai var turpināt strādāt. Nē, es sapratu. Vienīgi no tā delayed innodb tabulai nav nekādas jēgas. Vebers jau pateica kāpēc. 116k ierakstu - tāds pirdiens vien ir ;) Drīzāk paskaties, vai buferi ir adekvāti sakonfigurēti, galvenais, innodb_buffer_pool_size. innodb_flush_method kāds ir? Vispār - konfigu studijā. Edited July 13, 2010 by marrtins Quote
Леший Posted July 13, 2010 Author Report Posted July 13, 2010 tak lasi uzmanīgi, nevis 116k, bet 116kk Quote
bubu Posted July 13, 2010 Report Posted July 13, 2010 Miljonu jau parasti apzīmē ar M, nevis kk. kk izskatās pēc drukas kļūdas :) Quote
Kaklz Posted July 18, 2010 Report Posted July 18, 2010 Droši vien tabulas struktūra/sadzejotie indeksi šeit arī varētu dot kaut kādu nojausmu, kas tieši ir pie vainas. Te kā reiz atceros kāda nu jau pie mums vairs nestrādājoša kolēģa veikumu ar tabulu, kurā bija ~100 kolonas un ~50 dažādi indeksi :) Quote
codez Posted July 19, 2010 Report Posted July 19, 2010 uztaisi background procesu, kurš no ilgo kveriju rindas ņem kverijus un izpilda. Kad tev atnāk pieprasījums ar 20 ilgiem kverijiem, samet tos mazā tabuliņā un izsauc background procesu, kurš izpilda šo kverijus. Savukārt background process, ja iet jau kāds cits tāds bg process, pātraucās, jo šos kverijus varēs izpildīt jau ejošais bg process. Var arī pašā request-a PHP skriptā pārbaudīt, ja process iet, tad neko, ja neiet, tad palaiž procesu. Pats bg process ciklā skatās vai rindā stāv kveriji, ja nē, tad iziet, ja ir tad paņem vienu un izpilda. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.