2009-11-10 12 views

Respuesta

5

La mejor manera de responder a esta pregunta es realizar un punto de referencia.

+1

Probablemente sea cierto, lo intentaré. ¡Gracias! –

1

Aunque debería probarlo solo, voy a suponer que hay un índice adecuado y concluir que la base de datos puede hacerlo más rápido que PHP debido a que está diseñado para ser todo eso.

Sin embargo, podría deberse a las latencias de la red, la velocidad de análisis de SQL vs PHP o la carga de DB y el porcentaje de uso de la memoria.

0

Pruébelo - perfilar algo tan simple como esto debería ser trivial.

Además, recuerde que las bases de datos están diseñadas para manejar exactamente este tipo de tareas, por lo que naturalmente serán buenas en eso. Incluso una búsqueda binaria ingenua solo tendría 17 comparaciones para esto, por lo que 25k elementos no son muchos. El problema real es clasificar, pero eso ha sido conquistado a la muerte en los últimos 60 años.

0

Depende. En mysql puede usar indexación, lo que aumentará la velocidad, pero con php no necesita enviar información a través de net (si la base de datos mysql está en otro servidor).

0

Lo primero que pensé sería que es la búsqueda más rápida con arreglos. Pero, por otro lado, realmente depende de varios factores:

  1. Cómo se diseña su mesa databasa (¿utiliza índices correctamente, etc)
  2. ¿Cómo se construye la consulta
  3. bases de datos son en general bastante optimizados para tales búsquedas.
  4. ¿Qué tipo de búsqueda está haciendo en la matriz? Hay varios tipos de búsquedas que podrías hacer. La más lenta es una búsqueda directa en la que se examina cada fila y se busca un valor, un enfoque más rápido es una búsqueda binaria.

Supuse que está comparando una instrucción de selección ejecutada directamente en una base de datos, y una búsqueda de matriz en php. No

+0

Hola, Nikola, eso es exactamente lo que estaría haciendo, esencialmente comparando una cadena adquirida de una instrucción Select en la base de datos con una cadena obtenida de User-Input. Estoy comparando esto con la función array_search en PHP –

0

MySQL está diseñado para ordenar y buscar de manera eficiente a través de grandes cantidades de datos, como este. Esto es especialmente cierto cuando busca una clave, ya que MySQL indexa las claves principales en una tabla.

1

Una cosa a tener en cuenta: si su búsqueda consume mucha CPU en la base de datos, puede valer la pena hacerlo en PHP, aunque no sea tan rápido. Por lo general, es más fácil agregar servidores web que servidores de bases de datos al escalar.

Cuestiones relacionadas