| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Vælge felter indtil X antal sekunder  Fra : Martin | 
  Dato :  16-05-07 10:43 |  
  |   
            Hej!
 
 Jeg har en tabel med en 3-4000 rækker.
 I den tabel har jeg nogle kolonner - 1 af kolonnerne er en length som er 
 en længde af filen skrevet i sekunder.
 
 Nu vil jeg gerne vælge nogle rækker ud indtil længden er over 1800 sekunder.
 
 Jeg tænkte noget i stil med
 SELECT length AS newlength FROM ... WHERE length+newlength < 1800
 
 DB: MySQL 4.1
  
            
             |   |   
            
        
 
            
         
           Carsten Pedersen (16-05-2007) 
         
	
            | Kommentar Fra : Carsten Pedersen | 
  Dato :  16-05-07 11:25 |  
  |   
            Martin wrote:
 > Hej!
 > 
 > Jeg har en tabel med en 3-4000 rækker.
 > I den tabel har jeg nogle kolonner - 1 af kolonnerne er en length som er
 > en længde af filen skrevet i sekunder.
 > 
 > Nu vil jeg gerne vælge nogle rækker ud indtil længden er over 1800
 > sekunder.
 > 
 > Jeg tænkte noget i stil med
 > SELECT length AS newlength FROM ... WHERE length+newlength < 1800
 > 
 > DB: MySQL 4.1
 
 SET @a:=0;
 SELECT *, @a:=@a+length
 FROM tblname
 WHERE @a<1800
 
 Dette kræver et fuldt gennemløb af tabellen ved hver forespørgsel,
 så hvis du ikke forventer at finde mere end nogle få rækker før du
 når til de 1800 bør du måske vælge en anden metode.
 
 / Carsten
  
            
             |   |   
            
        
 
            
         
           Martin (16-05-2007) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  16-05-07 13:01 |  
  |   
            Carsten Pedersen wrote:
 > Dette kræver et fuldt gennemløb af tabellen ved hver forespørgsel,
 > så hvis du ikke forventer at finde mere end nogle få rækker før du
 > når til de 1800 bør du måske vælge en anden metode.
 
 Jeg regner kun med at få en 10-20 resultater inden de 1800 sekunder er nået.
 
 Og på en tabel som vokser temmelig stærkt (vokset med 2000 rækker inden 
 for 2 uger) dog er det noget der skal køres via cronjob - så hastigheden 
 er nok ikke vildt afgørende.
 
 Dog skal cronjobbet køres ca. hvert 10. minut - så nok ikke den mest 
 optimale løsning
  
            
             |   |   
            
        
 
            
         
            Peter Brodersen (16-05-2007) 
         
	
            | Kommentar Fra : Peter Brodersen | 
  Dato :  16-05-07 14:08 |  
  |   
            On Wed, 16 May 2007 14:01:09 +0200, Martin <maaNO@SPAMscandesigns.dk>
 wrote:
 
 >> Dette kræver et fuldt gennemløb af tabellen ved hver forespørgsel,
 >> så hvis du ikke forventer at finde mere end nogle få rækker før du
 >> når til de 1800 bør du måske vælge en anden metode.
 >
 >Jeg regner kun med at få en 10-20 resultater inden de 1800 sekunder er nået.
 >
 >Og på en tabel som vokser temmelig stærkt (vokset med 2000 rækker inden 
 >for 2 uger) dog er det noget der skal køres via cronjob - så hastigheden 
 >er nok ikke vildt afgørende.
 
 Der er lidt en lignende problemstilling i indlægget
 <news:f208ji$2k2$1@news.klen.dk>
 
 Du kan overveje at flytte logikken over i applikationen. Derudover kan
 du så hive fx 10 ud ad gangen, eller have en anden øvre grænse, fx
 blot de 50 nyeste (begrænsning med LIMIT eller WHERE).
 
 -- 
 - Peter Brodersen
   Kendt fra Internet
  
            
             |   |   
            
        
 
            
         
             Martin (16-05-2007) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  16-05-07 16:38 |  
  |   
            Peter Brodersen wrote:
 > Du kan overveje at flytte logikken over i applikationen. Derudover kan
 > du så hive fx 10 ud ad gangen, eller have en anden øvre grænse, fx
 > blot de 50 nyeste (begrænsning med LIMIT eller WHERE).
 
 Oki - præcis som jeg også gør nu.
 
 Jeg ville bare optimere mine queries, for at lære noget mere SQL også 
 måske vinde lidt performance (ikke fordi det har betydning på nuværende 
 tidspunkt, men bedre nu, end hvor det går helt galt :)
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |