valor multidimensional index buscar array_search array php mysqli benchmarking

php - multidimensional - Objetos versus matrices



get index array php (3)

Estoy trabajando en un sitio en este momento, y hay un enfoque concentrado en la eficiencia y la velocidad de carga, procesamiento y similares.

Estoy usando la extensión mysqli para obtener mis bits y bobs de base de datos, pero me pregunto cuál es la mejor / más eficiente forma de generar mi conjunto de datos.

En este momento estoy usando $ mysqli-> fetch_assoc () y un foreach (). Después de leer http://www.phpbench.com Sé que contar primero mis datos hace la diferencia. (Voy a optimizar después de la compilación)

Mi pregunta es, ¿qué es más rápido para obtener un conjunto de resultados en una cosa de datos php. ¿Creando un objeto? Una matriz numérica? Una matriz asociativa? Mis pensamientos son un objeto, pero no estoy seguro.

Solo curiosidad, ya que no estoy familiarizado con las partes internas de PHP :)


Creo que una matriz numérica es probablemente la más ligera, seguida por una matriz asociativa y luego un objeto. No creo que las diferencias sumen mucho, por lo que la sintaxis con la que se sienta más cómodo es la mejor.


Desde la página de manual de mysql_fetch_object()

Nota: rendimiento

A velocidad, la función es idéntica a mysql_fetch_array (), y casi tan rápida como mysql_fetch_row () (la diferencia es insignificante)

Como sugiere el punto de referencia dado por Tatu, hay una ligera diferencia, pero tenga en cuenta que los números se han acumulado a partir de 100 consultas consecutivas. Diría que su estrategia de no molestarse ahora y optimizar más adelante es una buena opción.


En realidad, hay un pequeño punto de referencia en la documentación de PHP bajo los comentarios de mysql_fetch_object :

SELECT * FROM bench... (mysql_fetch_object)

Tiempo de consulta: 5.40725040436
Tiempo de obtención: 16.2730708122 (promedio: 1.32130565643E-5)
Tiempo total: 21.6803212166

SELECT * FROM bench... (mysql_fetch_array)

Tiempo de consulta: 5.37693023682
Tiempo de obtención: 10.3851644993 (media: 7.48886537552E-6)
Tiempo total: 15.7620947361

SELECT * FROM bench... (mysql_fetch_assoc)

Tiempo de consulta: 5.345921278
Tiempo de obtención: 10.6170959473 (promedio: 7.64049530029E-6)
Tiempo total: 15.9630172253

Obtener un objeto es más lento, buscar una matriz numérica es probablemente un poco más rápido que usar mysql_fetch_array o mysql_fetch_assoc , pero la diferencia es insignificante. De hecho, mysql_fetch_array busca tanto assoc como numérico, y es más rápido que mysql_fetch_assoc , mysql_fetch_assoc ... Pero si buscas el rendimiento, simplemente no uses mysql_fetch_object .