webForumDet fria alternativet

Sökmotor, mysql

PHP

9 svar · 539 visningar · startad av toddyd

Medlem sedan jan. 200635 inlägg
Frågan#1

Är på väg att bygga en hemsida med php där all info hämtas från mysql databaser. Jag undrar hur det funkar med sökmotorer generellt? Jag skulle så småning om vilja ha en sökmotor som kan hämta poster ur databaserna beroende på vilket sökord man skrivit in.

1.Vilken teknink använder man sig av. Låter man mysql sköta själva sökningen eller behövs det tredje parts lösningar?

2. Vad är begränsningen för en mysql databas? Min vision är att så småning om ha ca 100 000 poster i databasen. Vad bör man tänka på när man siktar på att bygga ett php med mysql databas-system av den storleken?

Vad jag kan läsa mig till så ligger begränsningen inte i antal poster utan mer på server hårdvaran.

Medlem sedan mars 200650 inlägg
#2

Du söker i basen med hjälp av de parametrar du fått in.

Generellt i fulkod:
Form med name = blabla ger input = Valnöt

$sokord = $_POST[blabla]

$sql="SELECT * FROM tabell WHERE kolumn LIKE '%".$sokord."%'";

eller

$sql="SELECT * FROM tabell WHERE kolumn ='$sokord'";

Alt 1 hittar allt med valnöt och alt 2 hittar bara valnöt

Sen är det bara att sortera ut med vanlig php-teknik.

Fråga 2 kan jag inte ge någon hint om, har inte nått de nivåerna ännu. ;-)

Medlem sedan nov. 20041 740 inlägg
#3

100 000 poster är småpotatis för en mysql-server, så länge det handlar om vanlig text som ska in i raderna.

Medlem sedan mars 200650 inlägg
#4

myisam?

Medlem sedan jan. 200635 inlägg
#5

Tack för alla svar!

Jag hade även tänkt att spara 1-3 bilder i varje post. Bör man spara denna binära bild-data i en egen tabell eller spelar det ingen roll om man kör allt i en och samma?

Dev Null, du frågar ang Myisam. Och jag har inget svar på det eftersom jag inte är så insatt ännu. Om jag fattat rätt så står valet mellan Mysiam och InnoDB och jag vet inte exakt vad skillnaden är. Vad avgör om man ska välja det ena eller andra?

Medlem sedan juni 20014 290 inlägg
#6

toddyd skrev:

Dev Null, du frågar ang Myisam. Och jag har inget svar på det eftersom jag inte är så insatt ännu. Om jag fattat rätt så står valet mellan Mysiam och InnoDB och jag vet inte exakt vad skillnaden är. Vad avgör om man ska välja det ena eller andra?

Fördelen med InnoDB är stöd för transaktioner och för "row locking".

Fördelen med myisam är att det är optimerat för databaser med mycket läsning och lite skrivningar.

Jag tycker du skall köra på myisam, men det viktiga oavsett vad du väljer är att du bygger dina index rätt eftersom det är dessa som påverkar prestandan i sökningar.

Medlem sedan mars 200650 inlägg
#7

Instämmer med GunnarD till fullo.

Min undran var bara om MyIsam hängde med om man hade 100 000 poster.

Medlem sedan nov. 20041 740 inlägg
#8

Min undran var bara om MyIsam hängde med om man hade 100 000 poster.

Ja, det lär inte vara några större problem.

Medlem sedan juni 20008 205 inlägg
#9

Dev Null skrev:

$sql="SELECT * FROM tabell WHERE kolumn LIKE '%".$sokord."%'";

eller

$sql="SELECT * FROM tabell WHERE kolumn ='$sokord'";

Såna sökningar blir lätt väldigt, väldigt tunga för databasen, eftersom den inte kan söka på några index utan måste tugga sig igenom varenda post. Har man inte så många poster är det väl OK, men börjar man få mycket trafik kan det sega ner databasen. Lösningen är MyISAM och fulltextindex...
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Medlem sedan okt. 2004502 inlägg
#10

toddyd skrev:

Jag hade även tänkt att spara 1-3 bilder i varje post. Bör man spara denna binära bild-data i en egen tabell eller spelar det ingen roll om man kör allt i en och samma?

Spara dina bilder som filer utanför datbasen istället. De hör inte hemma i databasen.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)