Toon posts:

[MySQL] Gebruikers na 24 uur verwijderen

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008

Verwijderd

Topicstarter
Geachte lezers,

Ik ben op zoek naar een manier om snel en efficient de gebruikers te verwijderen die zich niet hebben geactiveerd in 24 uur.

Aangezien ik geen mogelijkheid heb tot het doen van cronjobs, wil ik deze query dus iedere keer doen als iemand het adminpanel betreed.

Ik kan de datum van registratie wel toevoegen in de database, maar als ik datatypen als TIME, DATE, DATETIME of TIMESTAMP lijkt het me nog niet efficient, aangezien ik zo weinig mogelijk ruimte wil gebruiken, en het (vind ik) meest geschikte datatype hiervan wordt dan TIMESTAMP, maar die slaat het op met streepjes en dubbele punten (Althans, zo krijg ik het terug als ik het weer opvraag).

De beste oplossing die ik kon bedenken was een BIGINT met daarin de waarde van time(); Zodat ik bij de verwijder-query met mktime hier een dag af kan halen, en alles ouder dan die dag verwijderen.

Punt is dat het volgens mij efficienter moet kunnen.Heeft iemand een beter idee? Advies wordt zeer op prijs gesteld.

  • Brupje
  • Registratie: September 2001
  • Laatst online: 04-09 20:21

Brupje

3D nerd

intern zal dfatetime wel gewoon een int zijn. Vraag me af of je zo moeilijk moet doen voor een eventuele 0.001 sec winst :P

Zie ook 123-3D voor 3D-printer stuff


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Als ik eerlijk ben denk ik dat je nu met micro-optimalisaties bezig bent die totaal nutteloos zijn. Wat wil je precies bereiken?

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


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op vrijdag 20 april 2007 @ 10:21:
maar die slaat het op met streepjes en dubbele punten (Althans, zo krijg ik het terug als ik het weer opvraag).
Zo wordt het intern echter niet opgeslagen; dat zou zoals je zelf al opmerkt niet zo handig zijn. Hoeveel alles inneemt staat hier.

  • Pete
  • Registratie: November 2005
  • Laatst online: 31-10 12:38
Ik zou me als ik jouw was niet druk maken over een aantal bytes :). DateTime in MySQL is echt zo klein mogelijk. Dat je m gerepresenteerd ziet als een ietwat lange string haalt niet uit. MySQL slaat m intern gewoon in een 8 byte field.

Ik zou als ik jouw was me even inlezen in het MySQL manual en gaan bekijken wat data-types precies inhouden. (http://dev.mysql.com/doc/.../date-and-time-types.html)

petersmit.eu


Verwijderd

Topicstarter
Ah prima...dus hij vervormt het als ie het wegstopt, en weer terug voordat hij het teruggeeft begrijp ik uit je post GlowMouse?

Trouwens, het komt dus bij een klant te staan, en van elke klant wordt dit dus opgeslagen. Voor een snel groeiend bedrijf met nu al 7000 klanten is het dus wel redelijk belangrijk dat de informatie efficient wordt opgeslagen.

[ Voor 47% gewijzigd door Verwijderd op 20-04-2007 10:34 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

TIMESTAMP is hetzelfde type als DATETIME, met het enige verschil dat een TIMESTAMP automatisch aangepast wordt naar de huidige tijd en datum wanneer je een record update. Dat type is dus zeer waarschijnlijk niet geschikt voor wat jij wil. Kies gewoon een DATETIME en gebruik de vele datumfuncties die er bestaan. Sowieso is het intern waarschijnlijk gewoon een timestamp die alleen anders gepresenteerd wordt en het levert zoals de mensen hierboven al zeggen zo weinig tijdswinst op dat het gewoon niet nodig is om je meer problemen op de hals te halen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
@ -NME-, Dat automatisch updaten kan ik aangeven...dus ik gebruik nu wel de TIMESTAMP, zodat ik de huidige tijd wel als default in kan worden gevuld.

Bedankt voor alle antwoorden, ik weet genoeg.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
7000 klanten, en laten we even aannemen dat de database zo dom is dat 'ie per ongeluk 16 bytes ipv 8 bytes per datum gebruikt. Dat is dan 7000*8 = 56000 bytes = 55Kb overhead.

Het is zelfs niet heel erg relevant als je 7000 klanten per dag erbij krijgt, kan ik je vertellen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Artje
  • Registratie: September 2000
  • Laatst online: 28-11 20:40
Ongelooflijk dat het bedrijf waar je voor werkt je hier voor betaald!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

Euh ja... nuttig kick wel. Met grammaticafouten en al.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Kick dan idd gewoon niet.... Het is hier geen HK dus laat dat soort replies ook gewoon achterwege.

[ Voor 55% gewijzigd door Creepy op 08-05-2007 11:44 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.