Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Inconsistencias en numero de registros phpmyadmin

Estas en el tema de Inconsistencias en numero de registros phpmyadmin en el foro de PHP en Foros del Web. Hola gente que tal, tengo una tabla en una base de datos mysql, si ejecuto la sentencia: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT COUNT ...
  #1 (permalink)  
Antiguo 10/01/2015, 19:31
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Inconsistencias en numero de registros phpmyadmin

Hola gente que tal, tengo una tabla en una base de datos mysql, si ejecuto la sentencia:
Código MySQL:
Ver original
  1. SELECT COUNT(*) FROM `busquedas_autores`
devuelve 40170 que es el numero de registros realeas que deberia tener la tabla, el problema es que cuando entro a visualizarla desde el phpmyadmin, cada vez que hago click en el link de la izquierda en la lista para ver la tabla, me muestra una cantidad diferente, adjunto 3 capturas pero cada vez que entro es un numero diferente:




¿Alguien sabe a que se debe eso?

La tabla es innoDB, no tiene fk ni indices adicionales, solo una pk.

Claramente el numero que phpmyadmin muestra no es confiable, pero ¿Saben si es un bug o porque ocurre?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 10/01/2015, 20:13
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Inconsistencias en numero de registros phpmyadmin

NSD es el comportamiento normal ya que las tablas innodb no llevan un conteo interno de numero de registros:
Cita:
InnoDB does not keep an internal count of rows in a table because concurrent transactions might “see” different numbers of rows at the same time. To process a SELECT COUNT(*) FROM t statement, InnoDB scans an index of the table, which takes some time if the index is not entirely in the buffer pool. If your table does not change often, using the MySQL query cache is a good solution. To get a fast count, you have to use a counter table you create yourself and let your application update it according to the inserts and deletes it does. If an approximate row count is sufficient, SHOW TABLE STATUS can be used. See Section 14.2.12.1, “InnoDB Performance Tuning Tips”.
Fuente: http://dev.mysql.com/doc/refman/5.0/...trictions.html
En resumen phpmyadmin hace un estimado.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 11/01/2015, 09:00
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Inconsistencias en numero de registros phpmyadmin

Cita:
En resumen phpmyadmin hace un estimado.
No he mirado el codigo fuente de phpmyadmin, pero pense que al ser una aplicacion destinada a la administracion de bases de datos seria lo mas precisa posible, en el mysql workbench no pasa lo mismo, ahi el numero de filas se muestra correctamente.

En fin, si se maneja con estimados no se puede confiar en ese numero. Gracias por aclararme la duda. Saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 11/01/2015, 17:56
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Inconsistencias en numero de registros phpmyadmin

Cita:
en el mysql workbench no pasa lo mismo, ahi el numero de filas se muestra correctamente.
La documentación hace hincapié que para obtener el numero de registros tienes que crear tu propia solución y supongo que es lo que hace workbench.
En lo personal solo utilizo workbench y phpmyadmin solo cuando no tengo opción.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: mysql, numero, phpmyadmin, registro, registros, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:23.