jboy_87Medlem sedan aug. 20011 099 inlägg här kommer det lite frågor angående mysql :birp
1. finns det någon funktion i mysql som motsvarar cronjob i linux? dvs uppdatera poster automatisk utan att anropa dem från en php sida?
2. INNODB varför ska man använda det och när ska man använda det?
3. Är det bra och använda Indexering i en HEAP
vinner man prestanda när man kör indexring i en HEAP?
3. Vad menas med UNIQUE om jag har fattat det rätt så är ID med auto_increment unikt dvs ej samma värden? vinner man prestanda när man kör UNIQUE??
K@llenMedlem sedan mars 20032 667 inlägg 1. Nej
2. Bla stöd för transaktioner, foreign key constrains, fler samtida användare kan ändra data, kommando för att låsa tabeller. (finns både för- och nackdelar med innoDB)
3. När ett fält är satt till UNIQUE (index) kan ett värde bara förekomma en gång. Det är till för att säkra mot dublikat, inte för optimering.
tydalMedlem sedan juni 20034 013 inlägg 1. Du kan ju lägga php-skriptet i ett cronjob.
jboy_87Medlem sedan aug. 20011 099 inlägg K@llen! tack för bra svar!
1. Du kan ju lägga php-skriptet i ett cronjob.
hur menar du?
jboy_87Medlem sedan aug. 20011 099 inlägg jag har en sida som uppdaterar en fält i databasen var 60 sek.
alla medlemmar kör samma update? hur ska jag lösa det? det är lite onödigt och låta alla medlemmar köra update.. istället måste det gå på nått sätt och bygga ett cronjob som uppdaterar själv var 20 sek kanske?
och samma sak med antalet online
tydalMedlem sedan juni 20034 013 inlägg Antalet online...
Ha en kolumn i användartabellen som talar om när användaren senast gjorde något på sidan. Varje gång användaren gör något så uppdaterar du klockslaget. För att se hur många som är online plockar du bara ut antalet som gjort något inom tio minuter (exempelvis)
$minuter = 10;
$sql = "SELECT COUNT(*) FROM användartabellen WHERE senast_gjort > '" . date("Y-m-d H:i:s", time() - $minuter * 60) . "'";
jboy_87Medlem sedan aug. 20011 099 inlägg tydal det e inte riktigt de jag menar!:
select * from medlemmar where status = 'online'
istället för att låta alla medlemmar anropa det här varje gång så måste man kunna ställa in nån cache i mysql på nått sätt? måste jag kör ett cronjob för det?
K@llenMedlem sedan mars 20032 667 inlägg
tydal skrev:
$minuter = 10;
$sql = "SELECT COUNT(*) FROM användartabellen WHERE senast_gjort > '" . date("Y-m-d H:i:s", time() - $minuter * 60) . "'";
Vad är det för fel på subdate()? ;)
tydalMedlem sedan juni 20034 013 inlägg
jboy_87 skrev:
select * from medlemmar where status = 'online'
istället för att låta alla medlemmar anropa det här varje gång
Varför behöver alla medlemmer anropa det varje gång? Behöver de verkligen få reda på all info om medlemmarna som har status online?
Plocka bara ut de kolumner du behöver och använd LIMIT om du inte behöver visa alla.
Du kan ju exempelvis visa de fem senast inloggade, eller så kan du visa antalet inloggade (COUNT(*)) och ha en länk man kan klicka på för att se vilka som är inloggade.
tydalMedlem sedan juni 20034 013 inlägg
K@llen skrev:
Vad är det för fel på subdate()? ;)
Jag är så van att programmera att jag inte tänker på vilka funktioner Mysql har.
jboy_87Medlem sedan aug. 20011 099 inlägg nej nej nej.. ni e ute och cyklar :moose .. man ska kunna göra det via en cronjob.. glöm det hehe!! får hitta nån lösning!