La vera domanda è, è sicuro lasciare che l'utente decida di parte della query.
Anche in un caso semplice, fornire dati utente al database è non sicuro.
utenti Permettere ingresso da fornire direttamente al database può essere pericoloso, ma per quanto riguarda il filtro e utilizzare il database di fuga strategia (vale a dire: mysql_real_escape_string()
(dichiarazioni ben preparati o qualsiasi ORM lo farà per voi) dovrebbe essere abbastanza sicuro.
Tuttavia, può portare a problemi di prestazioni, una semplice EXPLAIN
sulla vostra query deve avvertire di quanto righe scansionate da motore RDBMS.
Il modo migliore per attuare tale caratteristica è quella di usa il motore di ricerca (non è quello che stai cercando di fare?)
Ci sono molte scelte fuori là per aiutarvi a implementare questo.
Puoi dare un'occhiata a Sfinge, Solr, Xapian o anche a Lucene. Ci sono tutte scelte eccellenti.
Fondamentalmente consentono di "indicizzare" il contenuto per effettuare ricerche di testo completo aumentando le prestazioni.
possono anche dare alcune funzionalità incredibili come OR
, AND
, LIKE
, MINUS
, ecc comparatori/operatori.
Si può quindi essere interessati a questa domanda: Choosing a stand-alone full-text search server: Sphinx or SOLR?
fonte
2012-06-13 01:34:27
ci mostri una query di esempio di che cosa proponete? Definirei un limite di tempo per le ricerche degli utenti, al fine di impedire loro di battere troppo forte i server. – Brad
Forse la tua applicazione sarebbe meglio servita integrando un motore di ricerca come Lucene. –