Toon posts:

[Mysql] Permanent sorteren!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogenlijk om een tabel permanent te sorteren? Zodat de volgorde van de records veranderen.

Ik heb 250000 records in mijn database en die wil ik elke nacht op nieuw permanent sorteren, het kost veel tijd om te sorteren vervolgens overzetten naar een tijdelijke tabel en deze dan weer terug te zetten naar de echte tabel.

Dus ik zie graag een andere manier!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 19:24
Volgens mij kan dit niet, aangezien de database ze altijd willekeurig teruggeeft als je geen order by clausule gebruikt in je query. Kortom: gebruik gewoon order by. Als dit je te traag gaat kun je eens kijken naar indexen.

[ Voor 16% gewijzigd door djluc op 16-04-2004 16:53 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:50

gorgi_19

Kruimeltjes zijn weer op :9

Waarom wil je permanent sorteren? :? Een index met een ORDER BY moet op zich toch ook niet traag zijn?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
zit dit hem niet gewoon in het verkeerd gebruik van indexen :? het lijkt me dat je wanneer je je indexen op de juiste velden legt het sorteren (alsin order by) geen probleem hoeft te zijn...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Dit kan met:

ALTER TABLE `tabelnaam` ORDER BY `veldnaam`

Verwijderd

Topicstarter
Ik heb een zoeksysteem gemaakt, die dus zoekt in 25000 records! Als ik sorteer duurt het laden van de resultaten zo'n 10 seconden langer (normale tijdsduur is 0.03 sec.)

Ik zoek fulltext, en ik heb velden standard geindexeerd (niet fulltext geindexeerd anders duurt het wel 30 seconden langer, van het laden van resultaten)

mijn script ziet er zo uit:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$select_gebruiker           = "
                                                SELECT HIGH_PRIORITY
                                                    IdVestigingen
                                                FROM 
                                                    `gebruikers` AS `g`,
                                                    `vestigingen` AS `v`  
                                                WHERE 
                                                    g.idgebruikers = v.gebruikersid AND 
                                                    v.land = '" . $_GET['country'] . "' AND
                                                    v.postcode LIKE '" . $_GET['pc'] . "%' AND 
                                                MATCH(g.naam) 
                                                AGAINST('*" . $trefwoord . "*' IN BOOLEAN MODE) 
                                                group by  v.plaats Asc $querylimit; ";
                                                
                $select_gebruiker_query     = mysql_query($select_gebruiker) or die($main->show_error(mysql_error()));
                $aantal                     = mysql_num_rows($select_gebruiker_query);
                
                while(  $select_gebruiker_rijen = mysql_fetch_assoc($select_gebruiker_query)    )
                {
                    $i++;
                    $select         = "Select * From vestigingen Where IdVestigingen = '" . $select_gebruiker_rijen['IdVestigingen'] . "'";
                    $select_query   = mysql_query($select) or die(mysql_error());
                    $select_rijen   = mysql_fetch_assoc($select_query);
                    
                    $select_user    = "Select naam,hoofdcategorieid From gebruikers where IdGebruikers = '" . $select_rijen['gebruikersid'] . "'";
                    $select_user_go = mysql_query($select_user) or die(mysql_error());
                    $select_user_row= mysql_fetch_assoc($select_user_go);
                    
                    $select_hcat    = "Select hoofdcategorienaam from `hoofdcategorieen` where idhoofdcategorie = '" . $select_user_row['hoofdcategorieid'] . "'";
                    $select_hcat_go = mysql_query($select_hcat) or die(mysql_error());
                    $select_hcat_row= mysql_fetch_assoc($select_hcat_go);
                    
                    $webarray       = $main->set_search_website($select_rijen['url']);
                    $emailvar       = $main->set_search_email($select_rijen['email']);

//hier onder komt dan het printen van de zoekresultaten met mijn template parser

  • mvdejong
  • Registratie: Juni 2000
  • Laatst online: 29-11-2024

mvdejong

When does the hurting stop ?

Je kunt tabel in een relationele database gewoonlijk alleen fysiek herorganiseren door een gesorteerde export te maken, en deze dan weer te importeren.
De eerstvolgende toevoeging aan die tabel ...

The number of things that Arthur couldn't believe he was seeing was fairly large


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 23-05 18:45

Gé Brander

MS SQL Server

Heeft MySQL geen indexen of zo?

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


Verwijderd

Topicstarter
Jawel, het zijn standaard indexen (dus geen fulltext)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

had je het explain-commando al gevonden en op je query losgelaten?

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Eerst analyze table uitvoeren kan ook geen kwaad.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Een geclusterde index op het betreffende veld zou dit toch moeten doen?

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1