From domenico.lorusso a pleiade.it Tue Oct 9 12:05:47 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Tue, 09 Oct 2007 12:05:47 +0200 Subject: [Db] [MySql] Partitioning Message-ID: <470B527B.1060709@pleiade.it> è stato introdotto dalla versione 5 vero? Nella 4.1 non l'ho trovato ma magari l'hanno nascosto bene :-D -- Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From simone a tomato.it Tue Oct 16 10:51:46 2007 From: simone a tomato.it (Simone Fumagalli) Date: Tue, 16 Oct 2007 10:51:46 +0200 Subject: [Db] Mettere query in "pausa" Message-ID: <47147BA2.1080203@tomato.it> Ciao a tutti. Ho una necessità. Ho un'applicazione dove *più* utenti vanno a fare delle operazioni (insert/update/delete) su una tabella. Ho poi uno script che ogni 5 minuti prende i dati di questa tabella e fa delle operazioni. Mentre lo script elabora i dati della tabella questi non possono essere modificati dagli utenti. Questo ovviamente rallenta il lavoro degli utenti. C'è un modo per mettere le query di update/insert/delete in "pausa" e farle eseguire solo quando lo script ha finito di elaborare la tabella ? Ciao e grazie Simone From domenico.lorusso a pleiade.it Tue Oct 16 10:56:49 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Tue, 16 Oct 2007 10:56:49 +0200 Subject: [Db] Mettere query in "pausa" In-Reply-To: <47147BA2.1080203@tomato.it> References: <47147BA2.1080203@tomato.it> Message-ID: <47147CD1.5090202@pleiade.it> Simone Fumagalli ha scritto: > C'è un modo per mettere le query di update/insert/delete in "pausa" e > farle eseguire solo quando lo script ha finito di elaborare la tabella ? > lock table? -- Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From simone a tomato.it Tue Oct 16 11:01:46 2007 From: simone a tomato.it (Simone Fumagalli) Date: Tue, 16 Oct 2007 11:01:46 +0200 Subject: [Db] Mettere query in "pausa" In-Reply-To: <47147CD1.5090202@pleiade.it> References: <47147BA2.1080203@tomato.it> <47147CD1.5090202@pleiade.it> Message-ID: <47147DFA.8000704@tomato.it> Domenico L. wrote: > lock table? Potrebbe funzionare se lo script durasse pochi secondi. Il punto è che lo script gira per circa 2 minuti e se metto in lock la tabella la percezione dell'utente è quella che il sistema si è bloccato in quanto gli script rimarrebbero "appesi" sino a quando la tabella è in lock. -- Simone From michel a ziobudda.net Tue Oct 16 11:09:50 2007 From: michel a ziobudda.net (Davide Michel 'ZioBudda' Morelli) Date: Tue, 16 Oct 2007 11:09:50 +0200 Subject: [Db] Mettere query in "pausa" In-Reply-To: <47147DFA.8000704@tomato.it> References: <47147BA2.1080203@tomato.it> <47147CD1.5090202@pleiade.it> <47147DFA.8000704@tomato.it> Message-ID: <47147FDE.4020506@ziobudda.net> Simone Fumagalli ha scritto: > Domenico L. wrote: > >> lock table? >> > > Potrebbe funzionare se lo script durasse pochi secondi. > > Il punto è che lo script gira per circa 2 minuti e se metto in lock la > tabella la percezione dell'utente è quella che il sistema si è bloccato > in quanto gli script rimarrebbero "appesi" sino a quando la tabella è in > lock. > Solo uno spunto Re: How to check if table is locked Posted by: *KimSeong Loh* () Date: July 06, 2005 07:48PM You can create a user defined lock with GET_LOCK(str,timeout), see [dev.mysql.com ] Do a get_lock with timeout 0, before your LOCK TABLE and release_lock after your UNLOCK TABLES. Another thread running the get_lock will return a value 0 to indicate the locks is being held by another thread. You have to be consistant to make this work, and it will not work if any thread LOCK TABLES without calling get_lock first. M. -- Michel 'ZioBudda' Morelli michel a ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: 0200619074 Telefono Cell: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel a ziobuddalabs.it JABBER: michel a gmail.com -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20071016/acafa24d/attachment.html From domenico.lorusso a pleiade.it Tue Oct 16 11:23:01 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Tue, 16 Oct 2007 11:23:01 +0200 Subject: [Db] Mettere query in "pausa" In-Reply-To: <47147DFA.8000704@tomato.it> References: <47147BA2.1080203@tomato.it> <47147CD1.5090202@pleiade.it> <47147DFA.8000704@tomato.it> Message-ID: <471482F5.90807@pleiade.it> Simone Fumagalli ha scritto: > Domenico L. wrote: > >> lock table? >> > > Potrebbe funzionare se lo script durasse pochi secondi. > > > Vediamo tu ogni 5 minuti fai girare un processo che blocca (rallenta) tutto per 2 minuti... Secondo me il problema è progettuale Quello script non deve girare o deve essere velocizzato, versione e tipo di db? Ma poi che fa questo script? ciao -- Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Tue Oct 16 11:27:00 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue, 16 Oct 2007 11:27:00 +0200 Subject: [Db] full text search e soglia del 50% Message-ID: <471483E4.4070404@vezz.it> Ciao a tutti, sto lavorando su un database con le tabelle in formato myISAM e con alcuni indici full text. Come specificato qui http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html The 50% threshold has a significant implication when you first try full-text searching to see how it works: If you create a table and insert only one or two rows of text into it, every word in the text occurs in at least 50% of the rows. As a result, no search returns any results. Be sure to insert at least three rows, and preferably many more. Users who need to bypass the 50% limitation can use the boolean search mode; see Section 11.8.1, ?Boolean Full-Text Searches? . In soldoni, se cerco una parola che è presente in più del 50% dei record non mi viene ritornato nessun risultato. Mi va anche bene, però vorrei sapere QUANDO entra in funzione questa cosa della soglia per poter dire all'utente che la sua ricerca è troppo generica. L'esempio che fanno è questo, ma non c'è differenza tra queste due query... mysql> *|SELECT * FROM articles|* -> *|WHERE MATCH (title,body)|* -> *|AGAINST ('MySQL' IN NATURAL LANGUAGE MODE);|* Empty set (0.00 sec) mysql> *|SELECT * FROM articles|* -> *|WHERE MATCH (title,body)|* -> *|AGAINST ('rfiewrnf' IN NATURAL LANGUAGE MODE);|* Empty set (0.00 sec) La prima non ritorna risultati per via della soglia, la seconda invece non ritorna risultati perché non ce ne sono. Qualcuno sa come ricavare questa informazione? Saluti Marcello From cristiano a verondini.it Tue Oct 16 15:59:46 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue, 16 Oct 2007 14:59:46 +0100 Subject: [Db] Mettere query in "pausa" References: <47147BA2.1080203@tomato.it> Message-ID: <002701c80ffc$d33bdc70$6301a8c0@IdeaFutura.local> Scusa, prima dici: > C'è un modo per mettere le query di update/insert/delete in "pausa" e > farle eseguire solo quando lo script ha finito di elaborare la > tabella ? Poi però: > Potrebbe funzionare se lo script durasse pochi secondi. > Il punto è che lo script gira per circa 2 minuti e se metto in lock la > tabella la percezione dell'utente è quella che il sistema si è bloccato > in quanto gli script rimarrebbero "appesi" sino a quando la tabella è in > lock. Il che è ovviamente in contrasto. Se vuoi 'accodare' le richieste degli utenti ed attendere il completamento dello script batch, allora per forza di cose questi sperimenteranno un significativo delay (ed aggiungerei, inaccettabile). Ora, come suggerisce Domenico, è evidente che c'è un problema progettuale di mezzo. Innanzitutto, questo script che gira ogni 5 minuti, deve davvero manipolare per due minuti la tabella *ogni volta*? Che genere di elaborazione sta effettuando? Quindi magari se ci illustri il problema che devi risolvere possiamo pensare a qualche soluzione alternativa ... Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From cristiano a verondini.it Tue Oct 16 16:06:48 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue, 16 Oct 2007 15:06:48 +0100 Subject: [Db] full text search e soglia del 50% References: <471483E4.4070404@vezz.it> Message-ID: <003501c80ffe$91f15040$6301a8c0@IdeaFutura.local> > La prima non ritorna risultati per via della soglia, la seconda invece > non ritorna risultati perché non ce ne sono. > Qualcuno sa come ricavare questa informazione? Che io sappia non hai modo, se non con query multiple. Se il threshold del 50% ti infastidisce puoi sempre, come suggerito dal testo della pagina da te citata: > Users who need to bypass the 50% limitation can use the boolean > search mode; see Section 11.8.1, ?Boolean Full-Text Searches? Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From simone a tomato.it Tue Oct 16 15:49:31 2007 From: simone a tomato.it (Simone Fumagalli) Date: Tue, 16 Oct 2007 15:49:31 +0200 Subject: [Db] Mettere query in "pausa" In-Reply-To: <002701c80ffc$d33bdc70$6301a8c0@IdeaFutura.local> References: <47147BA2.1080203@tomato.it> <002701c80ffc$d33bdc70$6301a8c0@IdeaFutura.local> Message-ID: <4714C16B.7030808@tomato.it> Ciao, più che "in pausa" le query devono essere messe "in coda". Lo script in batch elabora i dati della tabella e genera dei files, il punto è che i dati durante tutto il periodo dell'elaborazione non possono cambiare. Quello che volevo era quindi accodare le SQL ed eseguirle a elaborazione finita. Ho pensato ad una tabella in cui inserire le SQL e farle eseguire a fine script ... ma non so, se voi avete altre soluzioni Adesso il sistema avvisa gli utenti che c'è in corso l'elaborazione e che non possono effettuare modifiche. Spero di aver chiarito il tutto ... -- Simone From cristiano a verondini.it Tue Oct 16 16:58:15 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue, 16 Oct 2007 15:58:15 +0100 Subject: [Db] Mettere query in "pausa" References: <47147BA2.1080203@tomato.it><002701c80ffc$d33bdc70$6301a8c0@IdeaFutura.local> <4714C16B.7030808@tomato.it> Message-ID: <009401c81004$fe1260b0$6301a8c0@IdeaFutura.local> > Quello che volevo era quindi accodare le SQL ed eseguirle a > elaborazione finita. Ho pensato ad una tabella in cui inserire le SQL > e farle eseguire a fine script ... ma non so, se voi avete altre > soluzioni > > Adesso il sistema avvisa gli utenti che c'è in corso l'elaborazione e > che non possono effettuare modifiche. > > Spero di aver chiarito il tutto ... Ok, riassumo per vedere se ho capito bene: (1) gli script degli utenti devono fare operazioni su questa tabella (2) uno script in background deve elaborare facendo (di fatto) il locking della tabella (3) nel caso in cui lo script dell'utente deve agire mentre sta lavorando lo script in background, è accettabile mettere in coda le richieste In questo caso io farei così: (1) le query dei client vengono messe in coda *sempre* (tabella, file, ...) (2) lo script in background, prima di fare le sue operazioni, applica le richieste che si ritrova in coda (2) lo script in background fa il locking della tabella prima delle operazioni e lo libera al termine (in questo modo non rischio sovrapposizioni) -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Tue Oct 16 16:04:18 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue, 16 Oct 2007 16:04:18 +0200 Subject: [Db] full text search e soglia del 50% In-Reply-To: <003501c80ffe$91f15040$6301a8c0@IdeaFutura.local> References: <471483E4.4070404@vezz.it> <003501c80ffe$91f15040$6301a8c0@IdeaFutura.local> Message-ID: <4714C4E2.5040304@vezz.it> Cristiano Verondini ha scritto: >> La prima non ritorna risultati per via della soglia, la seconda invece >> non ritorna risultati perché non ce ne sono. >> Qualcuno sa come ricavare questa informazione? >> > > Che io sappia non hai modo, se non con query multiple. Se il threshold > Credo che questa però sia una mancanza importante... ci dovrebbe essere un modo per diversificare i casi, nessun risultato e troppi risultati sono due casi molto diversi e dovrebbero essere gestiti diversamente. > del 50% ti infastidisce puoi sempre, come suggerito dal testo della pagina > da te citata >> Users who need to bypass the 50% limitation can use the boolean >> search mode; see Section 11.8.1, ?Boolean Full-Text Searches? >> Solo che volevo usare 'IN NATURAL LANGUAGE MODE' che per il tipo di ricerca che devo fare è più adatto. L'alternativa è ricompilare MySql disabilitando la faccenda della soglia, ma ti promettono poi un calo drammatico delle prestazioni e della qualità di ricerca. Penso che alla fine userò la ricerca boolean. Ciao e grazie Marcello From cristiano a verondini.it Tue Oct 16 17:07:46 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue, 16 Oct 2007 16:07:46 +0100 Subject: [Db] full text search e soglia del 50% References: <471483E4.4070404@vezz.it><003501c80ffe$91f15040$6301a8c0@IdeaFutura.local> <4714C4E2.5040304@vezz.it> Message-ID: <00a001c81006$51b4c9f0$6301a8c0@IdeaFutura.local> > Credo che questa però sia una mancanza importante... ci dovrebbe > essere un modo per diversificare i casi, nessun risultato e troppi > risultati sono due casi molto diversi e dovrebbero essere gestiti > diversamente. Si, sono d'accordo. > Solo che volevo usare 'IN NATURAL LANGUAGE MODE' che per il tipo di > ricerca che devo fare è più adatto. > L'alternativa è ricompilare MySql disabilitando la faccenda della > soglia, ma ti promettono poi un calo drammatico delle prestazioni e > della qualità di ricerca. > Penso che alla fine userò la ricerca boolean. Puoi comunque usare la ricerca boolean come fosse in natural language. Giusto stai attento ad eliminare gli operatori che potrebbero essere inseriti (oppure lasciali, in fondo in questo modo è anche più potente). Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Tue Oct 16 16:19:05 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue, 16 Oct 2007 16:19:05 +0200 Subject: [Db] full text search e soglia del 50% In-Reply-To: <00a001c81006$51b4c9f0$6301a8c0@IdeaFutura.local> References: <471483E4.4070404@vezz.it><003501c80ffe$91f15040$6301a8c0@IdeaFutura.local> <4714C4E2.5040304@vezz.it> <00a001c81006$51b4c9f0$6301a8c0@IdeaFutura.local> Message-ID: <4714C859.3010204@vezz.it> Cristiano Verondini ha scritto: > > Si, sono d'accordo. > Stasera vado a ravanare nella community a vedere se c'è qualcosa a riguardo. > >> Penso che alla fine userò la ricerca boolean. >> > > Puoi comunque usare la ricerca boolean come fosse in natural language. > Giusto stai attento ad eliminare gli operatori che potrebbero essere > inseriti (oppure lasciali, in fondo in questo modo è anche più potente). > Pensavo proprio di lasciarli.. in fondo non si fanno guai, e magari qualcuno li usa pure :) Ciao Marcello From simone a tomato.it Tue Oct 16 16:17:47 2007 From: simone a tomato.it (Simone Fumagalli) Date: Tue, 16 Oct 2007 16:17:47 +0200 Subject: [Db] Mettere query in "pausa" In-Reply-To: <009401c81004$fe1260b0$6301a8c0@IdeaFutura.local> References: <47147BA2.1080203@tomato.it><002701c80ffc$d33bdc70$6301a8c0@IdeaFutura.local> <4714C16B.7030808@tomato.it> <009401c81004$fe1260b0$6301a8c0@IdeaFutura.local> Message-ID: <4714C80B.5040106@tomato.it> Si, la cosa funziona ed è come l'avevo implementata adesso. Solo che ora in base all'esecuzione dello script o meno in background eseguo le query direttamente o le metto in coda. Pensavo ci fosse un modo per far gestire la cosa direttamente a MySQL ... ma non penso sia possibile. Ciao e grazie -- Simone From giacomofazio a gmail.com Mon Oct 22 15:52:20 2007 From: giacomofazio a gmail.com (Giacomo Fazio) Date: Mon, 22 Oct 2007 15:52:20 +0200 Subject: [Db] MySQL o PostgreSQL? In-Reply-To: <76b86d490710220536u521804far704748c70de45c0c@mail.gmail.com> References: <76b86d490710220536u521804far704748c70de45c0c@mail.gmail.com> Message-ID: <76b86d490710220652r3292b791o3c08ec6ce0407db8@mail.gmail.com> Salve a tutti, vado subito al dunque. Mi occupo di bioinformatica, devo realizzare un database contenente diverse informazioni su geni, RNA e altre cosette di questo tipo, non credo comunque di dover realizzare un numero elevato di tabelle, al massimo una decina e ciascuna senza troppe colonne. Per quanto riguarda il database da utilizzare sono indeciso se scegliere MySQL o PostgreSQL. So che sono simili e per certi versi concorrenti, ho sentito parlare meglio di PostgreSQL ma so che MySQL è più utilizzato. Quindi non so proprio quale scegliere. Inoltre ci sarebbe la possibilità di mettere tutto quanto su Grid, per sfruttare gli aspetti positivi del calcolo distribuito, quale dei due database lavora meglio con Grid? Ci sono comunque alternative a MySQL e a PostgreSQL senza ricorrere ai database professionali che costano un sacco di soldi e le cui funzioni avanzate non credo mi serviranno? Grazie l3golas -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20071022/146ca348/attachment.htm From domenico.lorusso a pleiade.it Mon Oct 22 16:57:36 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Mon, 22 Oct 2007 16:57:36 +0200 Subject: [Db] MySQL o PostgreSQL? In-Reply-To: <76b86d490710220652r3292b791o3c08ec6ce0407db8@mail.gmail.com> References: <76b86d490710220536u521804far704748c70de45c0c@mail.gmail.com> <76b86d490710220652r3292b791o3c08ec6ce0407db8@mail.gmail.com> Message-ID: <471CBA60.4080300@pleiade.it> Giacomo Fazio ha scritto: > Salve a tutti, vado subito al dunque. Mi occupo di bioinformatica, > devo realizzare un database contenente diverse informazioni su geni, > RNA e altre cosette di questo tipo, non credo comunque di dover > realizzare un numero elevato di tabelle, al massimo una decina e > ciascuna senza troppe colonne. Per quanto riguarda il database da > utilizzare sono indeciso se scegliere MySQL o PostgreSQL. So che sono > simili e per certi versi concorrenti, ho sentito parlare meglio di > PostgreSQL ma so che MySQL è più utilizzato. Quindi non so proprio > quale scegliere. Allora Mysql è più diffuso quindi ottieni più supporto, ma è ancora lungi dall'essere un dbms professionale, forse la versione 6 ci si avvicinerà, ne consegue che pgsql è meglio ( a patto di avere un po' di dimestichezza con linux e i dbms in genere). Però dipende cosa devi farci, per cose elementari non noteresti la differenza > Inoltre ci sarebbe la possibilità di mettere tutto quanto su Grid, per > sfruttare gli aspetti positivi del calcolo distribuito, quale dei due > database lavora meglio con Grid? Per il grid non ti so dire, ma fai conto che Oracle che ha buttato fuori una versione che ha grid nel suo nome in realtà nulla ha a che vedere con il calcolo distribuito. Le prove sul campo dicono che un dbms distriuito in maniera classica ha un calo pressoché verticale di performance, servono soluzioni ad hoc (niente kondor). Naturalmente nulla ti vieta di recuperare i dati in un qualsiasi linguaggio e far girare il task di elaborazione in maniera distribuita. > Ci sono comunque alternative a MySQL e a PostgreSQL senza ricorrere ai > database professionali che costano un sacco di soldi e le cui funzioni > avanzate non credo mi serviranno? Uhm... non credo ci sia nulla di migliore... anche se ci sono alcuni progetti di db che magari hanno funzionalità più interessanti ma non ti so indirizzare. Ciao -- Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From simone a tomato.it Tue Oct 23 17:28:35 2007 From: simone a tomato.it (Simone Fumagalli) Date: Tue, 23 Oct 2007 17:28:35 +0200 Subject: [Db] Impostare variabile lc_time_names in modo permanente. Message-ID: <471E1323.80106@tomato.it> Ciao, in MySQL devo cambiare il valore della variabile lc_time_names. Adesso facendo un SELECT @@lc_time_names; ottengo -> "en_EN" Se eseguo SET lc_time_names = 'it_IT'; la varibile si setta a it_IT ma alla fine della sessione ritorna a "en_EN" Sapete se c'è un modo per cambiarla in modo definitivo. Grazie -- Simone Fumagalli From domenico.lorusso a pleiade.it Wed Oct 24 09:46:34 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed, 24 Oct 2007 09:46:34 +0200 Subject: [Db] Impostare variabile lc_time_names in modo permanente. In-Reply-To: <471E1323.80106@tomato.it> References: <471E1323.80106@tomato.it> Message-ID: <471EF85A.9020600@pleiade.it> Simone Fumagalli ha scritto: > Ciao, in MySQL devo cambiare il valore della variabile lc_time_names. > > Adesso facendo un SELECT @@lc_time_names; ottengo -> "en_EN" > > Se eseguo SET lc_time_names = 'it_IT'; la varibile si setta a it_IT ma > alla fine della sessione ritorna a "en_EN" > > Sapete se c'è un modo per cambiarla in modo definitivo. scusami non ho tempo di cercare, ma nel manuale c'è tutta una sezione sui parametri di connessione / partenza lì dovresti torvare quello che fa per te -- Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.]