mysql - information_schema - table_name sql
El nĂºmero de filas inconsistentes de Mysql cuenta(*) frente a table.table_rows en information_schema (1)
Citando de la documentación :
Para las tablas InnoDB, el recuento de filas es solo una estimación aproximada utilizada en la optimización de SQL. (Esto también es cierto si la tabla InnoDB está particionada).
Me encontré con un fenómeno extraño, y espero que alguien me pueda explicar esto:
tengo algunas tablas "estáticas" (cambian una vez por día).
mysql> select ''appObjectGroups'' as tbl, count(*) as num from appObjectGroups
union select ''appObjectDependencies'' as tbl, count(*) as num from appObjectDependencies
union select ''appObjectUrls'' as tbl, count(*) as num from appObjectUrls
union select ''appObjectValues'' as tbl, count(*) as num from appObjectValues
union select ''appObjects;'' as tbl, count(*) as num from appObjects;
+-------------------------+------+
| tbl | num |
+-------------------------+------+
| appObjectGroups | 1149 |
| appObjectDependencies | 6885 |
| appObjectUrls | 1162 |
| appObjectValues | 3795 |
| appObjects; | 5409 |
+-------------------------+------+
5 rows in set (0.00 sec)
mysql> select table_name as tbl, table_rows as num from information_schema.tables where table_schema=''mySchema'' and table_name like ''app%'';
+-------------------------+------+
| tbl | num |
+-------------------------+------+
| appObjectGroups | 1141 |
| appObjectDependencies | 6153 |
| appObjectUrls | 1141 |
| appObjectValues | 3584 |
| appObjects | 6061 |
+-------------------------+------+
5 rows in set (0.01 sec)
table_rows
¿cómo es posible que esa table_rows
reporte algo diferente a la count(*)
?
y más importante para mí: ¿cuál es el correcto? :-)