every time Navicat is refreshed, the number of rows in a table changes. The table is Mysql InnoDB,. I don"t know why?
every time Navicat is refreshed, the number of rows in a table changes. The table is Mysql InnoDB,. I don"t know why?
the number of rows in the Innodb table is a cardinality value counted from its primary key, which can be show index table name; view, the number of rows is the same as the Cardinality of the primary key (why it's not the same sometimes, because you have to re-count both refresh and show index).
first take a look at InnoDB's B+ tree index, which looks like this (take the primary key as an example)
the leaf nodes circled in red represent leaf nodes (a total of 5 leaf nodes). Each leaf node stores records of the primary key, the first leaf node has 4 records, the second has 3 records, and the third has 2 records.
(the above picture shows that the key values for storage are 5, 10, 15, 15, 25, 28, 50, 55, 60, 60, 70, 70, 75, 80, 85, 90)
the key point is that the statistical process of Cardinality is to sample 8 leaf nodes randomly:
1, get the total number of leaf nodes, mark it as A (legend is 5)
2, randomly take 8 leaf nodes, and count the number of different records on each page, that is, P1PowerP2.P8
3, Cardinality= (P1+P2+.P8) * AB8
because there are only 5 leaf nodes in the legend, these pages are always taken for random sampling. So the records are all the same, and if there are enough leaf nodes and the number of records on each page is different, the result of each sampling may be different.
attachment: the number of random sampling pages can be viewed by setting innodb_stats_sample_pages, to view show variables like 'innodb_stats_sample_pages';
the above is a simple description. For details, you can take a look at Chapter 5 Index and algorithm of MySQL Technology Insider: InnoDB Storage engine, which introduces the index data structure of Innodb and computing Cardinality.
this has nothing to do with Navicat, but the number returned by mysql is changing, and the number of rows returned by the innodb engine is an estimate. It is a time-consuming operation to calculate count accurately.
TABLE_ROWS
The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40% to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
MySQL document, it is an approximate value under InnoDB, and the error can be up to 50%
.$selectTip = $pdo->query("SELECT * FROM `tips_rate` WHERE `tip_id` = ".$row[ id ]." " ); $selecttotal = mysqli_num_rows($selectTip); $rate = $pdo->query("SELEC...
for example, the isolation level of transaction An is repeatable read my understanding is that a read sql statement of transaction An is the same as the result repeated many times, regardless of whether or not other transactions have changed the data ...
I know that mysql master and slave have been configured, but I don t know what to do if one of them dies: 1. If there is only one master and one slave, do you want to upgrade the master manually in case the master dies? (it seems that you can t call...
subject table, which can be understood as a classification table. The course and source_book tables are associated with subject now use the subject table as the main table to query how many courses and books are under this category. query statemen...
do a check-in function `create_time` decimal(20,3) NOT NULL, `create_date_ymd` varchar(15) NOT NULL COMMENT , `create_date_ym` varchar(15) NOT NULL, `create_date_y` int(4) NOT NULL, `create_date_m` int(2) NOT NULL, `create_date_d` int(2) ...
as shown in the following figure the current time is 16 41 00. I want to take this section of data every two hours. How should sql write ? ...
1. Problem description assume that there are n game order tables in the database, and the table name is game_ [0-9a-z] + _ order. . It is known that there is an order number 18demo000001. How can we efficiently find out which game table this order is i...
I want to optimize a sentence about group by. I don t know where to start. I want to find a train of thought . SELECT adv_id, network_id, SUM(re_click) AS clk, SUM(deny_click) AS dny_clk, SUM(re_conver) AS re_ins, SUM(mat_conver) AS mat_ins, SUM(def_...
background: 1. I am a java programmer 2. Recently interviewed for a senior development position 3. The previous project mainly used less oracle,mysql, and the companies interviewed basically used mysql s 4. I am weak in the database 5. Recently, I...
like this SELECT * FROM material WHERE {key:value} limit 1 ...
how does sql write from the database table to the display of the page? requirement: the first-level classification needs sorting, the first-level classification shows its subcategories, and the subcategories also need sorting. ...
check-in table: fields include user id userid check-in time signtime timestamp type int check-in type type is divided into 0 and 1 for check-in and check-out, respectively. A user can sign twice a day, once check-in and one check-out. Check-in and ch...
Table structure ...
use mybatis to configure custom secondary cache. Using xml annotation can use < cache type= "com.test.dao.MybatisRedisCache " > to successfully use custom cache, but using @ CacheNamespace (implementation = MybatisRedisCache.class) on the dao i...
class essay extends Model { public function comment() { return $this->hasMany( App comment ) } } class comment extends Model { public function essay() { return $this->belongsTo( App essay ) } } ...
mybatis+mysql for java projects int batchAmount = 20000; for (int startIndex = 0; startIndex < size; startIndex += batchAmount) { int endIndex = startIndex + batchAmount; endIndex = (endIndex &...
Master and Slave built by mysql5.6, the newly created table is not backed up to the slave library master and slvae data can both correspond to can t the test library be automatically backed up to the slave library when establishing a master-slav...
I want to do a circular sequence to output pictures. Don t know how to write this code? Table structure for example, now the field ID of key=1 is 1, 2, 5, 7, 10, 11, 6 fields I want to output one at a time in order. output id 1 field for t...
for example, if the database has a field type of enum ( axiomagementific database ), can you change this field to enum when there are millions of data in the database? will it be slow? ...
ask God to help me translate this native SQL statement into TP5 thank you! It is Db:: ( name )-> this kind of chained operation select a.id, a.titlerect a. Createwriting time as answer_count from fa_question a. Isometric solvepaper count (b.qid) as ...