mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
36eba98817
Changing the default server character set from latin1 to utf8mb4.
7805 lines
182 KiB
Text
7805 lines
182 KiB
Text
#
|
|
# Test that we can store JSON arrays in histogram field mysql.column_stats when histogram_type=JSON
|
|
#
|
|
ALTER DATABASE test CHARACTER SET latin1 COLLATE latin1_swedish_ci;
|
|
set @SINGLE_PREC_TYPE='single_prec_hb';
|
|
set @DOUBLE_PREC_TYPE='double_prec_hb';
|
|
set @DEFAULT_HIST_TYPE='double_prec_hb';
|
|
set @SINGLE_PREC_TYPE='JSON_HB';
|
|
set @DOUBLE_PREC_TYPE='JSON_HB';
|
|
set @DEFAULT_HIST_TYPE='JSON_HB';
|
|
set @save_use_stat_tables=@@use_stat_tables;
|
|
set @save_histogram_size=@@global.histogram_size;
|
|
set @@global.histogram_size=0,@@local.histogram_size=0;
|
|
set @save_hist_type=@DEFAULT_HIST_TYPE;
|
|
set histogram_type=@SINGLE_PREC_TYPE;
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
set use_stat_tables='preferably';
|
|
CREATE TABLE t1 (
|
|
a int NOT NULL PRIMARY KEY,
|
|
b varchar(32),
|
|
c char(16),
|
|
d date,
|
|
e double,
|
|
f bit(3),
|
|
INDEX idx1 (b, e),
|
|
INDEX idx2 (c, d),
|
|
INDEX idx3 (d),
|
|
INDEX idx4 (e, b, d)
|
|
) ENGINE= MYISAM;
|
|
INSERT INTO t1 VALUES
|
|
(0, NULL, NULL, NULL, NULL, NULL),
|
|
(7, 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 'dddddddd', '1990-05-15', 0.1, b'100'),
|
|
(17, 'vvvvvvvvvvvvv', 'aaaa', '1989-03-12', 0.01, b'101'),
|
|
(1, 'vvvvvvvvvvvvv', NULL, '1989-03-12', 0.01, b'100'),
|
|
(12, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'dddddddd', '1999-07-23', 0.112, b'001'),
|
|
(23, 'vvvvvvvvvvvvv', 'dddddddd', '1999-07-23', 0.1, b'100'),
|
|
(8, 'vvvvvvvvvvvvv', 'aaaa', '1999-07-23', 0.1, b'100'),
|
|
(22, 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 'aaaa', '1989-03-12', 0.112, b'001'),
|
|
(31, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'aaaa', '1999-07-23', 0.01, b'001'),
|
|
(10, NULL, 'aaaa', NULL, 0.01, b'010'),
|
|
(5, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'dddddddd', '1999-07-23', 0.1, b'100'),
|
|
(15, 'vvvvvvvvvvvvv', 'ccccccccc', '1990-05-15', 0.1, b'010'),
|
|
(30, NULL, 'bbbbbb', NULL, NULL, b'100'),
|
|
(38, 'zzzzzzzzzzzzzzzzzz', 'bbbbbb', NULL, NULL, NULL),
|
|
(18, 'zzzzzzzzzzzzzzzzzz', 'ccccccccc', '1990-05-15', 0.01, b'010'),
|
|
(9, 'yyy', 'bbbbbb', '1998-08-28', 0.01, NULL),
|
|
(29, 'vvvvvvvvvvvvv', 'dddddddd', '1999-07-23', 0.012, b'010'),
|
|
(3, 'yyy', 'dddddddd', '1990-05-15', 0.112, b'010'),
|
|
(39, 'zzzzzzzzzzzzzzzzzz', 'bbbbbb', NULL, 0.01, b'100'),
|
|
(14, 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 'ccccccccc', '1990-05-15', 0.1, b'100'),
|
|
(40, 'zzzzzzzzzzzzzzzzzz', 'bbbbbb', '1989-03-12', NULL, NULL),
|
|
(44, NULL, 'aaaa', '1989-03-12', NULL, b'010'),
|
|
(19, 'vvvvvvvvvvvvv', 'ccccccccc', '1990-05-15', 0.012, b'011'),
|
|
(21, 'zzzzzzzzzzzzzzzzzz', 'dddddddd', '1989-03-12', 0.112, b'100'),
|
|
(45, NULL, NULL, '1989-03-12', NULL, b'011'),
|
|
(2, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'ccccccccc', '1990-05-15', 0.1, b'001'),
|
|
(35, 'yyy', 'aaaa', '1990-05-15', 0.05, b'011'),
|
|
(4, 'vvvvvvvvvvvvv', 'dddddddd', '1999-07-23', 0.01, b'101'),
|
|
(47, NULL, 'aaaa', '1990-05-15', 0.05, b'010'),
|
|
(42, NULL, 'ccccccccc', '1989-03-12', 0.01, b'010'),
|
|
(32, NULL, 'bbbbbb', '1990-05-15', 0.01, b'011'),
|
|
(49, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww' , 'aaaa', '1990-05-15', NULL, NULL),
|
|
(43, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww' , 'bbbbbb', '1990-05-15', NULL, b'100'),
|
|
(37, 'yyy', NULL, '1989-03-12', 0.05, b'011'),
|
|
(41, 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 'ccccccccc', '1990-05-15', 0.05, NULL),
|
|
(34, 'yyy', NULL, NULL, NULL, NULL),
|
|
(33, 'zzzzzzzzzzzzzzzzzz', 'dddddddd', '1989-03-12', 0.05, b'011'),
|
|
(24, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'dddddddd', '1990-05-15', 0.01, b'101'),
|
|
(11, 'yyy', 'ccccccccc', '1999-07-23', 0.1, NULL),
|
|
(25, 'zzzzzzzzzzzzzzzzzz', 'bbb', '1989-03-12', 0.01, b'101');
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
40
|
|
SELECT * FROM mysql.column_stats
|
|
WHERE db_name='test' AND table_name='t1' AND column_name='a';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
SELECT MIN(t1.a), MAX(t1.a),
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.b IS NULL) /
|
|
(SELECT COUNT(*) FROM t1) AS "NULLS_RATIO(t1.a)",
|
|
(SELECT COUNT(t1.a) FROM t1) /
|
|
(SELECT COUNT(DISTINCT t1.a) FROM t1) AS "AVG_FREQUENCY(t1.a)"
|
|
FROM t1;
|
|
MIN(t1.a) MAX(t1.a) NULLS_RATIO(t1.a) AVG_FREQUENCY(t1.a)
|
|
0 49 0.2000 1.0000
|
|
SELECT * FROM mysql.column_stats
|
|
WHERE db_name='test' AND table_name='t1' AND column_name='b';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
SELECT MIN(t1.b), MAX(t1.b),
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.b IS NULL) /
|
|
(SELECT COUNT(*) FROM t1) AS "NULLS_RATIO(t1.b)",
|
|
(SELECT COUNT(t1.b) FROM t1) /
|
|
(SELECT COUNT(DISTINCT t1.b) FROM t1) AS "AVG_FREQUENCY(t1.b)"
|
|
FROM t1;
|
|
MIN(t1.b) MAX(t1.b) NULLS_RATIO(t1.b) AVG_FREQUENCY(t1.b)
|
|
vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 6.4000
|
|
SELECT * FROM mysql.column_stats
|
|
WHERE db_name='test' AND table_name='t1' AND column_name='c';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
SELECT MIN(t1.c), MAX(t1.c),
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.c IS NULL) /
|
|
(SELECT COUNT(*) FROM t1) AS "NULLS_RATIO(t1.c)",
|
|
(SELECT COUNT(t1.c) FROM t1) /
|
|
(SELECT COUNT(DISTINCT t1.c) FROM t1) AS "AVG_FREQUENCY(t1.c)"
|
|
FROM t1;
|
|
MIN(t1.c) MAX(t1.c) NULLS_RATIO(t1.c) AVG_FREQUENCY(t1.c)
|
|
aaaa dddddddd 0.1250 7.0000
|
|
SELECT * FROM mysql.column_stats
|
|
WHERE db_name='test' AND table_name='t1' AND column_name='d';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
SELECT MIN(t1.d), MAX(t1.d),
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.d IS NULL) /
|
|
(SELECT COUNT(*) FROM t1) AS "NULLS_RATIO(t1.d)",
|
|
(SELECT COUNT(t1.d) FROM t1) /
|
|
(SELECT COUNT(DISTINCT t1.d) FROM t1) AS "AVG_FREQUENCY(t1.d)"
|
|
FROM t1;
|
|
MIN(t1.d) MAX(t1.d) NULLS_RATIO(t1.d) AVG_FREQUENCY(t1.d)
|
|
1989-03-12 1999-07-23 0.1500 8.5000
|
|
SELECT * FROM mysql.column_stats
|
|
WHERE db_name='test' AND table_name='t1' AND column_name='e';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
SELECT MIN(t1.e), MAX(t1.e),
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.e IS NULL) /
|
|
(SELECT COUNT(*) FROM t1) AS "NULLS_RATIO(t1.e)",
|
|
(SELECT COUNT(t1.e) FROM t1) /
|
|
(SELECT COUNT(DISTINCT t1.e) FROM t1) AS "AVG_FREQUENCY(t1.e)"
|
|
FROM t1;
|
|
MIN(t1.e) MAX(t1.e) NULLS_RATIO(t1.e) AVG_FREQUENCY(t1.e)
|
|
0.01 0.112 0.2250 6.2000
|
|
SELECT * FROM mysql.index_stats
|
|
WHERE db_name='test' AND table_name='t1' AND index_name='idx1';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
SELECT
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.b IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.b) FROM t1 WHERE t1.b IS NOT NULL)
|
|
AS 'ARITY 1',
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.b IS NOT NULL AND t1.e IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.b, t1.e) FROM t1
|
|
WHERE t1.b IS NOT NULL AND t1.e IS NOT NULL)
|
|
AS 'ARITY 2';
|
|
ARITY 1 ARITY 2
|
|
6.4000 1.6875
|
|
SELECT * FROM mysql.index_stats
|
|
WHERE db_name='test' AND table_name='t1' AND index_name='idx2';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
SELECT
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.c IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.c) FROM t1 WHERE t1.c IS NOT NULL)
|
|
AS 'ARITY 1',
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.c IS NOT NULL AND t1.d IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.c, t1.d) FROM t1
|
|
WHERE t1.c IS NOT NULL AND t1.d IS NOT NULL)
|
|
AS 'ARITY 2';
|
|
ARITY 1 ARITY 2
|
|
7.0000 2.3846
|
|
SELECT * FROM mysql.index_stats
|
|
WHERE db_name='test' AND table_name='t1' AND index_name='idx3';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 idx3 1 8.5000
|
|
SELECT
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.d IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.d) FROM t1 WHERE t1.d IS NOT NULL)
|
|
AS 'ARITY 1';
|
|
ARITY 1
|
|
8.5000
|
|
SELECT * FROM mysql.index_stats
|
|
WHERE db_name='test' AND table_name='t1' AND index_name='idx4';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
SELECT
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.e IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.e) FROM t1 WHERE t1.e IS NOT NULL)
|
|
AS 'ARITY 1',
|
|
(SELECT COUNT(*) FROM t1 WHERE t1.e IS NOT NULL AND t1.b IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.e, t1.b) FROM t1
|
|
WHERE t1.e IS NOT NULL AND t1.b IS NOT NULL)
|
|
AS 'ARITY 2',
|
|
(SELECT COUNT(*) FROM t1
|
|
WHERE t1.e IS NOT NULL AND t1.b IS NOT NULL AND t1.d IS NOT NULL) /
|
|
(SELECT COUNT(DISTINCT t1.e, t1.b, t1.d) FROM t1
|
|
WHERE t1.e IS NOT NULL AND t1.b IS NOT NULL AND t1.d IS NOT NULL)
|
|
AS 'ARITY 3';
|
|
ARITY 1 ARITY 2 ARITY 3
|
|
6.2000 1.6875 1.1304
|
|
DELETE FROM mysql.column_stats;
|
|
set histogram_size=4;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT db_name, table_name, column_name,
|
|
min_value, max_value,
|
|
nulls_ratio, avg_frequency,
|
|
hist_size, hist_type, decode_histogram(hist_type,histogram)
|
|
FROM mysql.column_stats
|
|
ORDER BY db_name, table_name, column_name;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type decode_histogram(hist_type,histogram)
|
|
test t1 a 0 49 0.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 6.4000 4 JSON_HB {
|
|
"target_histogram_size": 4,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "vvvvvvvvvvvvv",
|
|
"size": 0.28125,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "wwwwwwwwwwwwwwwwwwwwwwwwwwww",
|
|
"size": 0.28125,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
"size": 0.28125,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "zzzzzzzzzzzzzzzzzz",
|
|
"end": "zzzzzzzzzzzzzzzzzz",
|
|
"size": 0.15625,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 c aaaa dddddddd 0.1250 7.0000 4 JSON_HB {
|
|
"target_histogram_size": 4,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "aaaa",
|
|
"size": 0.257142857,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "bbb",
|
|
"size": 0.257142857,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "ccccccccc",
|
|
"size": 0.257142857,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "dddddddd",
|
|
"end": "dddddddd",
|
|
"size": 0.228571429,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 8.5000 3 JSON_HB {
|
|
"target_histogram_size": 4,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1989-03-12",
|
|
"size": 0.323529412,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1990-05-15",
|
|
"size": 0.411764706,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1998-08-28",
|
|
"end": "1999-07-23",
|
|
"size": 0.264705882,
|
|
"ndv": 2
|
|
}
|
|
]
|
|
}
|
|
test t1 e 0.01 0.112 0.2250 6.2000 4 JSON_HB {
|
|
"target_histogram_size": 4,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0.01",
|
|
"size": 0.387096774,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.012",
|
|
"size": 0.258064516,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "0.1",
|
|
"size": 0.258064516,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "0.112",
|
|
"end": "0.112",
|
|
"size": 0.096774194,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 f 1 5 0.2000 6.4000 4 JSON_HB {
|
|
"target_histogram_size": 4,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start_hex": "01",
|
|
"size": 0.28125,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start_hex": "02",
|
|
"size": 0.28125,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start_hex": "04",
|
|
"size": 0.3125,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "05",
|
|
"end_hex": "05",
|
|
"size": 0.125,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
DELETE FROM mysql.column_stats;
|
|
set histogram_size=8;
|
|
set histogram_type=@DOUBLE_PREC_TYPE;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT db_name, table_name, column_name,
|
|
min_value, max_value,
|
|
nulls_ratio, avg_frequency,
|
|
hist_size, hist_type, decode_histogram(hist_type,histogram)
|
|
FROM mysql.column_stats
|
|
ORDER BY db_name, table_name, column_name;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type decode_histogram(hist_type,histogram)
|
|
test t1 a 0 49 0.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 6.4000 5 JSON_HB {
|
|
"target_histogram_size": 8,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "vvvvvvvvvvvvv",
|
|
"size": 0.25,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "wwwwwwwwwwwwwwwwwwwwwwwwwwww",
|
|
"size": 0.21875,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
"size": 0.125,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "yyy",
|
|
"size": 0.1875,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "zzzzzzzzzzzzzzzzzz",
|
|
"end": "zzzzzzzzzzzzzzzzzz",
|
|
"size": 0.21875,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 c aaaa dddddddd 0.1250 7.0000 5 JSON_HB {
|
|
"target_histogram_size": 8,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "aaaa",
|
|
"size": 0.257142857,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "bbb",
|
|
"size": 0.142857143,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "bbbbbb",
|
|
"size": 0.085714286,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "ccccccccc",
|
|
"size": 0.228571429,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "dddddddd",
|
|
"end": "dddddddd",
|
|
"size": 0.285714286,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 8.5000 4 JSON_HB {
|
|
"target_histogram_size": 8,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1989-03-12",
|
|
"size": 0.323529412,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1990-05-15",
|
|
"size": 0.411764706,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1998-08-28",
|
|
"size": 0.147058824,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "1999-07-23",
|
|
"end": "1999-07-23",
|
|
"size": 0.117647059,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 e 0.01 0.112 0.2250 6.2000 5 JSON_HB {
|
|
"target_histogram_size": 8,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0.01",
|
|
"size": 0.387096774,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.012",
|
|
"size": 0.129032258,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "0.05",
|
|
"size": 0.096774194,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.1",
|
|
"size": 0.258064516,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.112",
|
|
"end": "0.112",
|
|
"size": 0.129032258,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
test t1 f 1 5 0.2000 6.4000 5 JSON_HB {
|
|
"target_histogram_size": 8,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start_hex": "01",
|
|
"size": 0.125,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "02",
|
|
"size": 0.25,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "03",
|
|
"size": 0.1875,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "04",
|
|
"size": 0.3125,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "05",
|
|
"end_hex": "05",
|
|
"size": 0.125,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
DELETE FROM mysql.column_stats;
|
|
set histogram_size= 0;
|
|
set histogram_type=@SINGLE_PREC_TYPE;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
CREATE TABLE t3 (
|
|
a int NOT NULL PRIMARY KEY,
|
|
b varchar(32),
|
|
c char(16),
|
|
INDEX idx (c)
|
|
) ENGINE=MYISAM;
|
|
INSERT INTO t3 VALUES
|
|
(0, NULL, NULL),
|
|
(7, 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 'dddddddd'),
|
|
(17, 'vvvvvvvvvvvvv', 'aaaa'),
|
|
(1, 'vvvvvvvvvvvvv', NULL),
|
|
(12, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'dddddddd'),
|
|
(23, 'vvvvvvvvvvvvv', 'dddddddd'),
|
|
(8, 'vvvvvvvvvvvvv', 'aaaa'),
|
|
(22, 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 'aaaa'),
|
|
(31, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'aaaa'),
|
|
(10, NULL, 'aaaa'),
|
|
(5, 'wwwwwwwwwwwwwwwwwwwwwwwwwwww', 'dddddddd'),
|
|
(15, 'vvvvvvvvvvvvv', 'ccccccccc'),
|
|
(30, NULL, 'bbbbbb'),
|
|
(38, 'zzzzzzzzzzzzzzzzzz', 'bbbbbb'),
|
|
(18, 'zzzzzzzzzzzzzzzzzz', 'ccccccccc'),
|
|
(9, 'yyy', 'bbbbbb'),
|
|
(29, 'vvvvvvvvvvvvv', 'dddddddd');
|
|
ANALYZE TABLE t3;
|
|
Table Op Msg_type Msg_text
|
|
test.t3 analyze status Engine-independent statistics collected
|
|
test.t3 analyze status OK
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
test t3 17
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test t3 a 0 38 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t3 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.1765 18.0714 2.8000 0 NULL NULL
|
|
test t3 c aaaa dddddddd 0.1176 6.4000 3.7500 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
test t3 PRIMARY 1 1.0000
|
|
test t3 idx 1 3.7500
|
|
ALTER TABLE t1 RENAME TO s1;
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test s1 40
|
|
test t3 17
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test s1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test s1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test s1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test s1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test s1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test s1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test t3 a 0 38 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t3 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.1765 18.0714 2.8000 0 NULL NULL
|
|
test t3 c aaaa dddddddd 0.1176 6.4000 3.7500 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test s1 PRIMARY 1 1.0000
|
|
test s1 idx1 1 6.4000
|
|
test s1 idx1 2 1.6875
|
|
test s1 idx2 1 7.0000
|
|
test s1 idx2 2 2.3846
|
|
test s1 idx3 1 8.5000
|
|
test s1 idx4 1 6.2000
|
|
test s1 idx4 2 1.6875
|
|
test s1 idx4 3 1.1304
|
|
test t3 PRIMARY 1 1.0000
|
|
test t3 idx 1 3.7500
|
|
RENAME TABLE s1 TO t1;
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
test t3 17
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test t3 a 0 38 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t3 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.1765 18.0714 2.8000 0 NULL NULL
|
|
test t3 c aaaa dddddddd 0.1176 6.4000 3.7500 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
test t3 PRIMARY 1 1.0000
|
|
test t3 idx 1 3.7500
|
|
DROP TABLE t3;
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
CREATE TEMPORARY TABLE t0 (
|
|
a int NOT NULL PRIMARY KEY,
|
|
b varchar(32)
|
|
);
|
|
INSERT INTO t0 SELECT a,b FROM t1;
|
|
ALTER TABLE t1 CHANGE COLUMN b x varchar(32),
|
|
CHANGE COLUMN e y double;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`x` varchar(32) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`y` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`x`,`y`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`y`,`x`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test t1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 y 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
ALTER TABLE t1 CHANGE COLUMN x b varchar(32),
|
|
CHANGE COLUMN y e double;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` varchar(32) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`b`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`b`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
ALTER TABLE t1 RENAME TO s1, CHANGE COLUMN b x varchar(32);
|
|
SHOW CREATE TABLE s1;
|
|
Table Create Table
|
|
s1 CREATE TABLE `s1` (
|
|
`a` int(11) NOT NULL,
|
|
`x` varchar(32) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`x`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`x`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test s1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test s1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test s1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test s1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test s1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test s1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test s1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test s1 PRIMARY 1 1.0000
|
|
test s1 idx1 1 6.4000
|
|
test s1 idx1 2 1.6875
|
|
test s1 idx2 1 7.0000
|
|
test s1 idx2 2 2.3846
|
|
test s1 idx3 1 8.5000
|
|
test s1 idx4 1 6.2000
|
|
test s1 idx4 2 1.6875
|
|
test s1 idx4 3 1.1304
|
|
ALTER TABLE s1 RENAME TO t1, CHANGE COLUMN x b varchar(32);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` varchar(32) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`b`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`b`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
ALTER TABLE t1 CHANGE COLUMN b x varchar(30);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`x` varchar(30) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`x`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`x`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(x) INDEXES();
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.column_stats where column_name="x";
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
ALTER TABLE t1 CHANGE COLUMN x b varchar(32);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` varchar(32) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`b`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`b`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx4);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/save_column_stats'
|
|
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
|
|
FROM mysql.column_stats WHERE column_name='b';
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/save_index_stats'
|
|
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
|
|
FROM mysql.index_stats WHERE index_name IN ('idx1', 'idx4');
|
|
ALTER TABLE t1 CHANGE COLUMN b x varchar(30);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`x` varchar(30) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`x`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`x`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
ALTER TABLE t1 CHANGE COLUMN x b varchar(32);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` varchar(32) DEFAULT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`b`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`b`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/save_column_stats' IGNORE
|
|
INTO TABLE mysql.column_stats
|
|
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/save_index_stats'
|
|
INTO TABLE mysql.index_stats
|
|
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
DROP INDEX idx2 ON t1;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx1` (`e`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx4` (`e`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx3 1 8.5000
|
|
DROP INDEX idx1 ON t1;
|
|
DROP INDEX idx4 ON t1;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx3` (`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
ALTER TABLE t1 ADD COLUMN b varchar(32);
|
|
CREATE INDEX idx1 ON t1(b, e);
|
|
CREATE INDEX idx2 ON t1(c, d);
|
|
CREATE INDEX idx4 ON t1(e, b, d);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
`b` varchar(32) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx1` (`b`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx4` (`e`,`b`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx3 1 8.5000
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx2, idx4);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b NULL NULL 1.0000 NULL NULL 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 NULL
|
|
test t1 idx1 2 NULL
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 NULL
|
|
test t1 idx4 3 NULL
|
|
UPDATE t1 SET b=(SELECT b FROM t0 WHERE t0.a= t1.a);
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx2, idx4);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
ALTER TABLE t1 DROP COLUMN b,
|
|
DROP INDEX idx1, DROP INDEX idx2, DROP INDEX idx4;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx3` (`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx3 1 8.5000
|
|
ALTER TABLE t1 ADD COLUMN b varchar(32);
|
|
ALTER TABLE t1
|
|
ADD INDEX idx1 (b, e), ADD INDEX idx2 (c, d), ADD INDEX idx4 (e, b, d);
|
|
UPDATE t1 SET b=(SELECT b FROM t0 WHERE t0.a= t1.a);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`c` char(16) DEFAULT NULL,
|
|
`d` date DEFAULT NULL,
|
|
`e` double DEFAULT NULL,
|
|
`f` bit(3) DEFAULT NULL,
|
|
`b` varchar(32) DEFAULT NULL,
|
|
PRIMARY KEY (`a`),
|
|
KEY `idx3` (`d`),
|
|
KEY `idx1` (`b`,`e`),
|
|
KEY `idx2` (`c`,`d`),
|
|
KEY `idx4` (`e`,`b`,`d`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx3 1 8.5000
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx2, idx4);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES();
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(c,e,b) INDEXES(idx2,idx4);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
DELETE FROM mysql.index_stats WHERE table_name='t1' AND index_name='primary';
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES(primary);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS ALL INDEXES ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
CREATE TABLE t2 LIKE t1;
|
|
ALTER TABLE t2 ENGINE=InnoDB;
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
set optimizer_switch='extended_keys=off';
|
|
ANALYZE TABLE t2;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
test t2 40
|
|
SELECT * FROM mysql.column_stats ORDER BY column_name, table_name;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t2 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t2 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t2 PRIMARY 1 1.0000
|
|
test t1 idx1 1 6.4000
|
|
test t2 idx1 1 6.4000
|
|
test t1 idx1 2 1.6875
|
|
test t2 idx1 2 1.6875
|
|
test t1 idx2 1 7.0000
|
|
test t2 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t2 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t2 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t2 idx4 1 6.2000
|
|
test t1 idx4 2 1.6875
|
|
test t2 idx4 2 1.6875
|
|
test t1 idx4 3 1.1304
|
|
test t2 idx4 3 1.1304
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
set optimizer_switch='extended_keys=on';
|
|
ANALYZE TABLE t2;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t2 40
|
|
SELECT * FROM mysql.column_stats ORDER BY column_name;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t2 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t2 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 idx1 1 6.4000
|
|
test t2 idx1 2 1.6875
|
|
test t2 idx1 3 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.6875
|
|
test t2 idx4 3 1.1304
|
|
test t2 idx4 4 1.0000
|
|
ALTER TABLE t2 DROP PRIMARY KEY, DROP INDEX idx1;
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.6875
|
|
test t2 idx4 3 1.1304
|
|
UPDATE t2 SET b=0 WHERE b IS NULL;
|
|
ALTER TABLE t2 ADD PRIMARY KEY (a,b);
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.6875
|
|
test t2 idx4 3 1.1304
|
|
ANALYZE TABLE t2 PERSISTENT FOR COLUMNS() INDEXES ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 PRIMARY 2 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx2 4 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx3 3 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.7222
|
|
test t2 idx4 3 1.1154
|
|
test t2 idx4 4 1.0000
|
|
SELECT * FROM mysql.column_stats where column_name="b";
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t2 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL
|
|
ALTER TABLE t2 CHANGE COLUMN b b varchar(30);
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx3 1 8.5000
|
|
SELECT * FROM mysql.column_stats where column_name="b";
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
ANALYZE TABLE t2 PERSISTENT FOR COLUMNS ALL INDEXES ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 PRIMARY 2 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx2 4 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx3 3 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.7222
|
|
test t2 idx4 3 1.1154
|
|
test t2 idx4 4 1.0000
|
|
ALTER TABLE t2 CHANGE COLUMN b b varchar(32);
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 PRIMARY 2 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx2 4 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx3 3 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.7222
|
|
test t2 idx4 3 1.1154
|
|
test t2 idx4 4 1.0000
|
|
SELECT * FROM mysql.column_stats where column_name="b";
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t2 b 0 zzzzzzzzzzzzzzzzzz 0.0000 13.9000 6.6667 0 NULL NULL
|
|
ANALYZE TABLE t2 PERSISTENT FOR COLUMNS ALL INDEXES ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 PRIMARY 2 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx2 4 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx3 3 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 1.7222
|
|
test t2 idx4 3 1.1154
|
|
test t2 idx4 4 1.0000
|
|
ALTER TABLE t2 DROP COLUMN b, DROP PRIMARY KEY, ADD PRIMARY KEY(a);
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx3 1 8.5000
|
|
ANALYZE TABLE t2 PERSISTENT FOR COLUMNS() INDEXES ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 2.2308
|
|
test t2 idx4 3 1.0000
|
|
set optimizer_switch='extended_keys=off';
|
|
ALTER TABLE t1
|
|
DROP INDEX idx1,
|
|
DROP INDEX idx4;
|
|
ALTER TABLE t1
|
|
MODIFY COLUMN b text,
|
|
ADD INDEX idx1 (b(4), e),
|
|
ADD INDEX idx4 (e, b(4), d);
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL
|
|
test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 2.2308
|
|
test t2 idx4 3 1.0000
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL
|
|
test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 NULL
|
|
test t1 idx1 2 NULL
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 NULL
|
|
test t1 idx4 3 NULL
|
|
test t2 PRIMARY 1 1.0000
|
|
test t2 idx2 1 7.0000
|
|
test t2 idx2 2 2.3846
|
|
test t2 idx2 3 1.0000
|
|
test t2 idx3 1 8.5000
|
|
test t2 idx3 2 1.0000
|
|
test t2 idx4 1 6.2000
|
|
test t2 idx4 2 2.2308
|
|
test t2 idx4 3 1.0000
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
ANALYZE TABLE mysql.column_stats PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
mysql.column_stats analyze error Invalid argument
|
|
ANALYZE TABLE mysql.column_stats;
|
|
Table Op Msg_type Msg_text
|
|
mysql.column_stats analyze status OK
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
set use_stat_tables='never';
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
|
|
test.t1 analyze status Table is already up to date
|
|
SELECT * FROM mysql.table_stats;
|
|
db_name table_name cardinality
|
|
test t1 40
|
|
SELECT * FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 49 0.0000 4.0000 1.0000 NULL NULL NULL
|
|
test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL
|
|
test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL
|
|
test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL
|
|
test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL
|
|
SELECT * FROM mysql.index_stats;
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 PRIMARY 1 1.0000
|
|
test t1 idx1 1 NULL
|
|
test t1 idx1 2 NULL
|
|
test t1 idx2 1 7.0000
|
|
test t1 idx2 2 2.3846
|
|
test t1 idx3 1 8.5000
|
|
test t1 idx4 1 6.2000
|
|
test t1 idx4 2 NULL
|
|
test t1 idx4 3 NULL
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES();
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
|
|
test.t1 analyze status Table is already up to date
|
|
ANALYZE TABLE t1 PERSISTENT FOR columns(a,b) INDEXES();
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
|
|
test.t1 analyze status Table is already up to date
|
|
ANALYZE TABLE t1 PERSISTENT FOR columns(b) indexes(idx2);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
|
|
test.t1 analyze status Table is already up to date
|
|
ANALYZE TABLE t1 PERSISTENT FOR columns() indexes(idx2);
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
DROP TABLE t1,t2;
|
|
set names utf8;
|
|
CREATE DATABASE world;
|
|
use world;
|
|
CREATE TABLE Country (
|
|
Code char(3) NOT NULL default '',
|
|
Name char(52) NOT NULL default '',
|
|
SurfaceArea float(10,2) NOT NULL default '0.00',
|
|
Population int(11) NOT NULL default '0',
|
|
Capital int(11) default NULL,
|
|
PRIMARY KEY (Code),
|
|
UNIQUE INDEX (Name)
|
|
) CHARACTER SET utf8 COLLATE utf8_bin;
|
|
CREATE TABLE City (
|
|
ID int(11) NOT NULL auto_increment,
|
|
Name char(35) NOT NULL default '',
|
|
Country char(3) NOT NULL default '',
|
|
Population int(11) NOT NULL default '0',
|
|
PRIMARY KEY (ID),
|
|
INDEX (Population),
|
|
INDEX (Country)
|
|
) CHARACTER SET utf8 COLLATE utf8_bin;
|
|
CREATE TABLE CountryLanguage (
|
|
Country char(3) NOT NULL default '',
|
|
Language char(30) NOT NULL default '',
|
|
Percentage float(3,1) NOT NULL default '0.0',
|
|
PRIMARY KEY (Country, Language),
|
|
INDEX (Percentage)
|
|
) CHARACTER SET utf8 COLLATE utf8_bin;
|
|
set use_stat_tables='preferably';
|
|
ANALYZE TABLE Country, City, CountryLanguage;
|
|
SELECT UPPER(db_name), UPPER(table_name), cardinality
|
|
FROM mysql.table_stats;
|
|
UPPER(db_name) UPPER(table_name) cardinality
|
|
WORLD CITY 4079
|
|
WORLD COUNTRY 239
|
|
WORLD COUNTRYLANGUAGE 984
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency
|
|
FROM mysql.column_stats;
|
|
UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency
|
|
WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819
|
|
WORLD CITY ID 1 4079 0.0000 4.0000 1.0000
|
|
WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195
|
|
WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467
|
|
WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000
|
|
WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000
|
|
WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1172 1.0000
|
|
WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575
|
|
WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042
|
|
WORLD COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232
|
|
WORLD COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532
|
|
WORLD COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
index_name, prefix_arity, avg_frequency
|
|
FROM mysql.index_stats;
|
|
UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency
|
|
WORLD CITY Country 1 17.5819
|
|
WORLD CITY PRIMARY 1 1.0000
|
|
WORLD CITY Population 1 1.0467
|
|
WORLD COUNTRY Name 1 1.0000
|
|
WORLD COUNTRY PRIMARY 1 1.0000
|
|
WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232
|
|
WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000
|
|
WORLD COUNTRYLANGUAGE Percentage 1 2.7640
|
|
use test;
|
|
set use_stat_tables='never';
|
|
CREATE DATABASE world_innodb;
|
|
use world_innodb;
|
|
CREATE TABLE Country (
|
|
Code char(3) NOT NULL default '',
|
|
Name char(52) NOT NULL default '',
|
|
SurfaceArea float(10,2) NOT NULL default '0.00',
|
|
Population int(11) NOT NULL default '0',
|
|
Capital int(11) default NULL,
|
|
PRIMARY KEY (Code),
|
|
UNIQUE INDEX (Name)
|
|
) CHARACTER SET utf8 COLLATE utf8_bin;
|
|
CREATE TABLE City (
|
|
ID int(11) NOT NULL auto_increment,
|
|
Name char(35) NOT NULL default '',
|
|
Country char(3) NOT NULL default '',
|
|
Population int(11) NOT NULL default '0',
|
|
PRIMARY KEY (ID),
|
|
INDEX (Population),
|
|
INDEX (Country)
|
|
) CHARACTER SET utf8 COLLATE utf8_bin;
|
|
CREATE TABLE CountryLanguage (
|
|
Country char(3) NOT NULL default '',
|
|
Language char(30) NOT NULL default '',
|
|
Percentage float(3,1) NOT NULL default '0.0',
|
|
PRIMARY KEY (Country, Language),
|
|
INDEX (Percentage)
|
|
) CHARACTER SET utf8 COLLATE utf8_bin;
|
|
ALTER TABLE Country ENGINE=InnoDB;
|
|
ALTER TABLE City ENGINE=InnoDB;
|
|
ALTER TABLE CountryLanguage ENGINE=InnoDB;
|
|
set use_stat_tables='preferably';
|
|
ANALYZE TABLE Country, City, CountryLanguage;
|
|
SELECT UPPER(db_name), UPPER(table_name), cardinality
|
|
FROM mysql.table_stats;
|
|
UPPER(db_name) UPPER(table_name) cardinality
|
|
WORLD CITY 4079
|
|
WORLD COUNTRY 239
|
|
WORLD COUNTRYLANGUAGE 984
|
|
WORLD_INNODB CITY 4079
|
|
WORLD_INNODB COUNTRY 239
|
|
WORLD_INNODB COUNTRYLANGUAGE 984
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency
|
|
FROM mysql.column_stats;
|
|
UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency
|
|
WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819
|
|
WORLD CITY ID 1 4079 0.0000 4.0000 1.0000
|
|
WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195
|
|
WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467
|
|
WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000
|
|
WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000
|
|
WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1172 1.0000
|
|
WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575
|
|
WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042
|
|
WORLD COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232
|
|
WORLD COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532
|
|
WORLD COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640
|
|
WORLD_INNODB CITY Country ABW ZWE 0.0000 3.0000 17.5819
|
|
WORLD_INNODB CITY ID 1 4079 0.0000 4.0000 1.0000
|
|
WORLD_INNODB CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195
|
|
WORLD_INNODB CITY Population 42 10500000 0.0000 4.0000 1.0467
|
|
WORLD_INNODB COUNTRY Capital 1 4074 0.0293 4.0000 1.0000
|
|
WORLD_INNODB COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000
|
|
WORLD_INNODB COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1172 1.0000
|
|
WORLD_INNODB COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575
|
|
WORLD_INNODB COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042
|
|
WORLD_INNODB COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232
|
|
WORLD_INNODB COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532
|
|
WORLD_INNODB COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
index_name, prefix_arity, avg_frequency
|
|
FROM mysql.index_stats;
|
|
UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency
|
|
WORLD CITY Country 1 17.5819
|
|
WORLD CITY PRIMARY 1 1.0000
|
|
WORLD CITY Population 1 1.0467
|
|
WORLD COUNTRY Name 1 1.0000
|
|
WORLD COUNTRY PRIMARY 1 1.0000
|
|
WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232
|
|
WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000
|
|
WORLD COUNTRYLANGUAGE Percentage 1 2.7640
|
|
WORLD_INNODB CITY Country 1 17.5819
|
|
WORLD_INNODB CITY PRIMARY 1 1.0000
|
|
WORLD_INNODB CITY Population 1 1.0467
|
|
WORLD_INNODB COUNTRY Name 1 1.0000
|
|
WORLD_INNODB COUNTRY PRIMARY 1 1.0000
|
|
WORLD_INNODB COUNTRYLANGUAGE PRIMARY 1 4.2232
|
|
WORLD_INNODB COUNTRYLANGUAGE PRIMARY 2 1.0000
|
|
WORLD_INNODB COUNTRYLANGUAGE Percentage 1 2.7640
|
|
use world;
|
|
set use_stat_tables='preferably';
|
|
set histogram_size=100;
|
|
set histogram_type=@SINGLE_PREC_TYPE;
|
|
ANALYZE TABLE CountryLanguage;
|
|
set histogram_size=254;
|
|
set histogram_type=@DOUBLE_PREC_TYPE;
|
|
ANALYZE TABLE City;
|
|
FLUSH TABLES;
|
|
select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='COUNTRYLANGUAGE' and UPPER(column_name) = 'PERCENTAGE';;
|
|
UPPER(db_name) WORLD
|
|
UPPER(table_name) COUNTRYLANGUAGE
|
|
UPPER(column_name) PERCENTAGE
|
|
min_value 0.0
|
|
max_value 99.9
|
|
nulls_ratio 0.0000
|
|
avg_length 4.0000
|
|
avg_frequency 2.7640
|
|
hist_size 85
|
|
hist_type JSON_HB
|
|
decode_histogram(hist_type,histogram) {
|
|
"target_histogram_size": 100,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0.0",
|
|
"size": 0.066056911,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.1",
|
|
"size": 0.020325203,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.2",
|
|
"size": 0.022357724,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.3",
|
|
"size": 0.017276423,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.4",
|
|
"size": 0.025406504,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.5",
|
|
"size": 0.020325203,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.6",
|
|
"size": 0.020325203,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.7",
|
|
"size": 0.017276423,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.8",
|
|
"size": 0.010162602,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.9",
|
|
"size": 0.010162602,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1.0",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "1.1",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "1.3",
|
|
"size": 0.012195122,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1.4",
|
|
"size": 0.015243902,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1.5",
|
|
"size": 0.005081301,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1.6",
|
|
"size": 0.015243902,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1.7",
|
|
"size": 0.010162602,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "1.8",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "1.9",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2.0",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "2.2",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2.3",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2.4",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2.5",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2.7",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2.8",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "3.0",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "3.2",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "3.3",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "3.5",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "3.7",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "3.8",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "4.1",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "4.4",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "4.8",
|
|
"size": 0.010162602,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "4.9",
|
|
"size": 0.010162602,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "5.3",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "5.5",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "5.7",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "6.0",
|
|
"size": 0.010162602,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "6.4",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "6.7",
|
|
"size": 0.010162602,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "7.2",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "7.4",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "7.7",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "8.0",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "8.5",
|
|
"size": 0.010162602,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "8.7",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "9.1",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "9.5",
|
|
"size": 0.010162602,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "10.1",
|
|
"size": 0.010162602,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "10.8",
|
|
"size": 0.010162602,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "11.4",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "12.1",
|
|
"size": 0.010162602,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "12.8",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "13.8",
|
|
"size": 0.010162602,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "14.6",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "16.1",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "17.1",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "19.0",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "20.3",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "22.7",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "23.8",
|
|
"size": 0.010162602,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "29.7",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "32.1",
|
|
"size": 0.010162602,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "34.8",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "39.9",
|
|
"size": 0.010162602,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "44.6",
|
|
"size": 0.010162602,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "49.1",
|
|
"size": 0.010162602,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "52.0",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "58.4",
|
|
"size": 0.010162602,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "64.7",
|
|
"size": 0.010162602,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "69.9",
|
|
"size": 0.010162602,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "76.7",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "80.0",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "85.0",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "87.0",
|
|
"size": 0.010162602,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "89.5",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "92.0",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "93.6",
|
|
"size": 0.010162602,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "95.7",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "96.9",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "98.0",
|
|
"size": 0.010162602,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "99.0",
|
|
"size": 0.006097561,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "99.9",
|
|
"end": "99.9",
|
|
"size": 0.015243902,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='CITY' and UPPER(column_name) = 'POPULATION';;
|
|
UPPER(db_name) WORLD
|
|
UPPER(table_name) CITY
|
|
UPPER(column_name) POPULATION
|
|
min_value 42
|
|
max_value 10500000
|
|
nulls_ratio 0.0000
|
|
avg_length 4.0000
|
|
avg_frequency 1.0467
|
|
hist_size 240
|
|
hist_type JSON_HB
|
|
decode_histogram(hist_type,histogram) {
|
|
"target_histogram_size": 254,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "42",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "1636",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "5808",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "16243",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "29034",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "71000",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "89200",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "89447",
|
|
"size": 0.004167688,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "90000",
|
|
"size": 0.004167688,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "90500",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "90814",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "91100",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "91700",
|
|
"size": 0.004167688,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "92044",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "92574",
|
|
"size": 0.004167688,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "92988",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "93342",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "93900",
|
|
"size": 0.004167688,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "94200",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "94700",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "95052",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "95521",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "96100",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "96626",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "96938",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "97300",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "97929",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "98293",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "98640",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "99300",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "99781",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "100118",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "100490",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "100924",
|
|
"size": 0.004167688,
|
|
"ndv": 12
|
|
},
|
|
{
|
|
"start": "101295",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "101660",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "102121",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "102379",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "102820",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "103300",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "103653",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "104400",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "105080",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "105530",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "106000",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "106400",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "106996",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "107329",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "107770",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "108254",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "108600",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "109225",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "109600",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "110034",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "110700",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "111454",
|
|
"size": 0.004167688,
|
|
"ndv": 12
|
|
},
|
|
{
|
|
"start": "112007",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "112673",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "113494",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "114065",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "114815",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "115483",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "116132",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "116695",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "117258",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "118080",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "118815",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "119391",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "119990",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "120700",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "121197",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "121842",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "122400",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "123273",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "123776",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "124072",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "124600",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "125236",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "125700",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "126282",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "126872",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "127350",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "127898",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "128651",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "129688",
|
|
"size": 0.004167688,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "130215",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "131149",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "132127",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "132820",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "133443",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "133936",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "134835",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "136062",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "137000",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "137700",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "138418",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "139357",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "140169",
|
|
"size": 0.004167688,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "141132",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "142170",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "142990",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "144126",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "145150",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "146105",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "147124",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "147939",
|
|
"size": 0.004167688,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "148867",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "149900",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "151000",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "152194",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "153344",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "154980",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "155941",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "157358",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "158720",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "160359",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "161500",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "163100",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "164367",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "165583",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "167183",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "168953",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "170123",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "171363",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "172648",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "173878",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "174984",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "176576",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "178200",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "179258",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "180400",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "182148",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "183261",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "184500",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "185951",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "187557",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "189036",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "190255",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "192509",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "194100",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "195468",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "197000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "199000",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "200901",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "202451",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "204900",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "206338",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "208054",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "211068",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "213271",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "215373",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "217499",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "219761",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "222030",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "224044",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "226573",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "229212",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "232811",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "235760",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "239124",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "241769",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "243825",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "246535",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "249200",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "253587",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "255617",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "259537",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "262947",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "265211",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "269393",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "272058",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "275990",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "278829",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "282197",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "286848",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "291000",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "294125",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "299118",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "301504",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "305699",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "311200",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "315083",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "319373",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "324662",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "328711",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "332800",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "337966",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "342200",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "348100",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "353400",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "358663",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "362470",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "366712",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "375000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "381725",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "386236",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "395402",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "403151",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "411542",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "419000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "425579",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "433180",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "441649",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "450180",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "459884",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "469533",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "476668",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "483155",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "495540",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "510000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "520000",
|
|
"size": 0.004167688,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "530965",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "554636",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "568855",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "587211",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "606932",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "624269",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "650100",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "669181",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "701827",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "728060",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "762000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "794246",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "830000",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "879000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "947483",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "1002239",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "1060257",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "1119117",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "1186926",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "1248700",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "1346176",
|
|
"size": 0.004167688,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "1458483",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "1615369",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "1861265",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "2117500",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "2500000",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "2896016",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "4017733",
|
|
"size": 0.004167688,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "6758845",
|
|
"end": "10500000",
|
|
"size": 0.00392253,
|
|
"ndv": 16
|
|
}
|
|
]
|
|
}
|
|
set histogram_type=@SINGLE_PREC_TYPE;
|
|
set histogram_size=0;
|
|
use test;
|
|
DROP DATABASE world;
|
|
SELECT UPPER(db_name), UPPER(table_name), cardinality
|
|
FROM mysql.table_stats;
|
|
UPPER(db_name) UPPER(table_name) cardinality
|
|
WORLD_INNODB CITY 4079
|
|
WORLD_INNODB COUNTRY 239
|
|
WORLD_INNODB COUNTRYLANGUAGE 984
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency
|
|
FROM mysql.column_stats;
|
|
UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency
|
|
WORLD_INNODB CITY Country ABW ZWE 0.0000 3.0000 17.5819
|
|
WORLD_INNODB CITY ID 1 4079 0.0000 4.0000 1.0000
|
|
WORLD_INNODB CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195
|
|
WORLD_INNODB CITY Population 42 10500000 0.0000 4.0000 1.0467
|
|
WORLD_INNODB COUNTRY Capital 1 4074 0.0293 4.0000 1.0000
|
|
WORLD_INNODB COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000
|
|
WORLD_INNODB COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1172 1.0000
|
|
WORLD_INNODB COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575
|
|
WORLD_INNODB COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042
|
|
WORLD_INNODB COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232
|
|
WORLD_INNODB COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532
|
|
WORLD_INNODB COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
index_name, prefix_arity, avg_frequency
|
|
FROM mysql.index_stats;
|
|
UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency
|
|
WORLD_INNODB CITY Country 1 17.5819
|
|
WORLD_INNODB CITY PRIMARY 1 1.0000
|
|
WORLD_INNODB CITY Population 1 1.0467
|
|
WORLD_INNODB COUNTRY Name 1 1.0000
|
|
WORLD_INNODB COUNTRY PRIMARY 1 1.0000
|
|
WORLD_INNODB COUNTRYLANGUAGE PRIMARY 1 4.2232
|
|
WORLD_INNODB COUNTRYLANGUAGE PRIMARY 2 1.0000
|
|
WORLD_INNODB COUNTRYLANGUAGE Percentage 1 2.7640
|
|
DROP DATABASE world_innodb;
|
|
SELECT UPPER(db_name), UPPER(table_name), cardinality
|
|
FROM mysql.table_stats;
|
|
UPPER(db_name) UPPER(table_name) cardinality
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency
|
|
FROM mysql.column_stats;
|
|
UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency
|
|
SELECT UPPER(db_name), UPPER(table_name),
|
|
index_name, prefix_arity, avg_frequency
|
|
FROM mysql.index_stats;
|
|
UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency
|
|
DELETE FROM mysql.table_stats;
|
|
DELETE FROM mysql.column_stats;
|
|
DELETE FROM mysql.index_stats;
|
|
#
|
|
# Bug mdev-4357: empty string as a value of the HIST_SIZE column
|
|
# from mysql.column_stats
|
|
#
|
|
create table t1 (a int);
|
|
insert into t1 values (1),(2),(3);
|
|
set histogram_size=10;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select db_name, table_name, column_name,
|
|
min_value, max_value,
|
|
nulls_ratio, avg_frequency,
|
|
hist_size, hist_type, decode_histogram(hist_type,histogram)
|
|
FROM mysql.column_stats
|
|
ORDER BY db_name, table_name, column_name;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type decode_histogram(hist_type,histogram)
|
|
test t1 a 1 3 0.0000 1.0000 3 JSON_HB {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "2",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "3",
|
|
"end": "3",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
set histogram_size=default;
|
|
drop table t1;
|
|
#
|
|
# Bug mdev-4359: wrong setting of the HIST_SIZE column
|
|
# (see also mdev-4357) from mysql.column_stats
|
|
#
|
|
create table t1 ( a int);
|
|
insert into t1 values (1),(2),(3),(4),(5);
|
|
set histogram_size=10;
|
|
set histogram_type=@DOUBLE_PREC_TYPE;
|
|
show variables like 'histogram%';
|
|
Variable_name Value
|
|
histogram_size 10
|
|
histogram_type JSON_HB
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select db_name, table_name, column_name,
|
|
min_value, max_value,
|
|
nulls_ratio, avg_frequency,
|
|
hist_size, hist_type, decode_histogram(hist_type,histogram)
|
|
FROM mysql.column_stats
|
|
ORDER BY db_name, table_name, column_name;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type decode_histogram(hist_type,histogram)
|
|
test t1 a 1 5 0.0000 1.0000 5 JSON_HB {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.2,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "2",
|
|
"size": 0.2,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "3",
|
|
"size": 0.2,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "4",
|
|
"size": 0.2,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "5",
|
|
"end": "5",
|
|
"size": 0.2,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
set histogram_size=0;
|
|
set histogram_type=@SINGLE_PREC_TYPE;
|
|
drop table t1;
|
|
#
|
|
# Bug mdev-4369: histogram for a column with many distinct values
|
|
#
|
|
CREATE TABLE t1 (id int);
|
|
CREATE TABLE t2 (id int);
|
|
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
INSERT INTO t1 SELECT id+1 FROM t1;
|
|
INSERT INTO t1 SELECT id+2 FROM t1;
|
|
INSERT INTO t1 SELECT id+4 FROM t1;
|
|
INSERT INTO t1 SELECT id+8 FROM t1;
|
|
INSERT INTO t1 SELECT id+16 FROM t1;
|
|
INSERT INTO t1 SELECT id+32 FROM t1;
|
|
INSERT INTO t1 SELECT id+64 FROM t1;
|
|
INSERT INTO t1 SELECT id+128 FROM t1;
|
|
INSERT INTO t1 SELECT id+256 FROM t1;
|
|
INSERT INTO t1 SELECT id+512 FROM t1;
|
|
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
|
SELECT COUNT(*) FROM t2;
|
|
COUNT(*)
|
|
8192
|
|
SELECT COUNT(DISTINCT id) FROM t2;
|
|
COUNT(DISTINCT id)
|
|
1024
|
|
set @@tmp_table_size=1024*16;
|
|
set @@max_heap_table_size=1024*16;
|
|
set histogram_size=63;
|
|
analyze table t2 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
select db_name, table_name, column_name,
|
|
min_value, max_value,
|
|
nulls_ratio, avg_frequency,
|
|
hist_size, hist_type, decode_histogram(hist_type,histogram)
|
|
FROM mysql.column_stats;
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type decode_histogram(hist_type,histogram)
|
|
test t2 id 1 1024 0.0000 8.0000 63 JSON_HB {
|
|
"target_histogram_size": 63,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "17",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "33",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "50",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "66",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "82",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "99",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "115",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "132",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "148",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "164",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "181",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "197",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "213",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "230",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "246",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "263",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "279",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "295",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "312",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "328",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "344",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "361",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "377",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "394",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "410",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "426",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "443",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "459",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "475",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "492",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "508",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "525",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "541",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "557",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "574",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "590",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "606",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "623",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "639",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "656",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "672",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "688",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "705",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "721",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "737",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "754",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "770",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "787",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "803",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "819",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "836",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "852",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "868",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "885",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "901",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "918",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "934",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "950",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "967",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "983",
|
|
"size": 0.015991211,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "999",
|
|
"size": 0.015991211,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "1016",
|
|
"end": "1024",
|
|
"size": 0.008544922,
|
|
"ndv": 9
|
|
}
|
|
]
|
|
}
|
|
set histogram_size=0;
|
|
drop table t1, t2;
|
|
set use_stat_tables=@save_use_stat_tables;
|
|
#
|
|
# Bug MDEV-7383: min/max value for a column not utf8 compatible
|
|
#
|
|
create table t1 (a varchar(100)) engine=MyISAM;
|
|
insert into t1 values(unhex('D879626AF872675F73E662F8'));
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
show warnings;
|
|
Level Code Message
|
|
select db_name, table_name, column_name,
|
|
HEX(min_value), HEX(max_value),
|
|
nulls_ratio, avg_frequency,
|
|
hist_size, hist_type, decode_histogram(hist_type,histogram)
|
|
FROM mysql.column_stats;
|
|
db_name table_name column_name HEX(min_value) HEX(max_value) nulls_ratio avg_frequency hist_size hist_type decode_histogram(hist_type,histogram)
|
|
test t1 a D879626AF872675F73E662F8 D879626AF872675F73E662F8 0.0000 1.0000 0 NULL NULL
|
|
drop table t1;
|
|
#
|
|
# MDEB-9744: session optimizer_use_condition_selectivity=5 causing SQL Error (1918):
|
|
# Encountered illegal value '' when converting to DECIMAL
|
|
#
|
|
set @save_optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity;
|
|
set optimizer_use_condition_selectivity=3, use_stat_tables=preferably;
|
|
create table t1 (id int(10),cost decimal(9,2)) engine=innodb;
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
create temporary table t2 (id int);
|
|
insert into t2 (id) select id from t1 where cost > 0;
|
|
select * from t2;
|
|
id
|
|
set use_stat_tables=@save_use_stat_tables;
|
|
set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
|
drop table t1,t2;
|
|
#
|
|
# MDEV-16507: statistics for temporary tables should not be used
|
|
#
|
|
SET
|
|
@save_optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity;
|
|
SET @@use_stat_tables = preferably ;
|
|
SET @@optimizer_use_condition_selectivity = 4;
|
|
CREATE TABLE t1 (
|
|
TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
ON UPDATE CURRENT_TIMESTAMP
|
|
);
|
|
SET @had_t1_table= @@warning_count != 0;
|
|
CREATE TEMPORARY TABLE tmp_t1 LIKE t1;
|
|
INSERT INTO tmp_t1 VALUES (now());
|
|
INSERT INTO t1 SELECT * FROM tmp_t1 WHERE @had_t1_table=0;
|
|
DROP TABLE t1;
|
|
SET
|
|
use_stat_tables=@save_use_stat_tables;
|
|
SET
|
|
optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
|
# End of 10.0 tests
|
|
#
|
|
# MDEV-9590: Always print "Engine-independent statistic" warnings and
|
|
# might be filtering columns unintentionally from engines
|
|
#
|
|
set use_stat_tables='NEVER';
|
|
create table t1 (test blob);
|
|
show variables like 'use_stat_tables';
|
|
Variable_name Value
|
|
use_stat_tables NEVER
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Table is already up to date
|
|
drop table t1;
|
|
#
|
|
# MDEV-10435 crash with bad stat tables
|
|
#
|
|
set use_stat_tables='preferably';
|
|
call mtr.add_suppression("Column count of mysql.table_stats is wrong. Expected 3, found 1. The table is probably corrupted");
|
|
rename table mysql.table_stats to test.table_stats;
|
|
flush tables;
|
|
create table t1 (a int);
|
|
rename table t1 to t2, t3 to t4;
|
|
ERROR 42S02: Table 'test.t3' doesn't exist
|
|
drop table t1;
|
|
rename table test.table_stats to mysql.table_stats;
|
|
rename table mysql.table_stats to test.table_stats;
|
|
create table mysql.table_stats (a int);
|
|
flush tables;
|
|
create table t1 (a int);
|
|
rename table t1 to t2, t3 to t4;
|
|
ERROR 42S02: Table 'test.t3' doesn't exist
|
|
drop table t1, mysql.table_stats;
|
|
rename table test.table_stats to mysql.table_stats;
|
|
#
|
|
# MDEV-19334: bool is_eits_usable(Field*): Assertion `field->table->stats_is_read' failed.
|
|
#
|
|
create temporary table t1(a int);
|
|
insert into t1 values (1),(2),(3);
|
|
set use_stat_tables=preferably;
|
|
set @optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity;
|
|
set optimizer_use_condition_selectivity=4;
|
|
select * from t1 where a >= 2;
|
|
a
|
|
2
|
|
3
|
|
drop table t1;
|
|
set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
|
set use_stat_tables=@save_use_stat_tables;
|
|
#
|
|
# Start of 10.2 tests
|
|
#
|
|
#
|
|
# MDEV-10134 Add full support for DEFAULT
|
|
#
|
|
#
|
|
# End of 10.2 tests
|
|
#
|
|
set histogram_size=@save_histogram_size, histogram_type=@save_hist_type;
|
|
#
|
|
# Start of 10.4 tests
|
|
#
|
|
#
|
|
# Test analyze_sample_percentage system variable.
|
|
#
|
|
set @save_use_stat_tables=@@use_stat_tables;
|
|
set @save_analyze_sample_percentage=@@analyze_sample_percentage;
|
|
set session rand_seed1=42;
|
|
set session rand_seed2=62;
|
|
set use_stat_tables=PREFERABLY;
|
|
set histogram_size=10;
|
|
CREATE TABLE t1 (id int);
|
|
INSERT INTO t1 (id) VALUES (1), (1), (1), (1), (1), (1), (1);
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
INSERT INTO t1 SELECT id+1 FROM t1;
|
|
INSERT INTO t1 SELECT id+2 FROM t1;
|
|
INSERT INTO t1 SELECT id+4 FROM t1;
|
|
INSERT INTO t1 SELECT id+8 FROM t1;
|
|
INSERT INTO t1 SELECT id+16 FROM t1;
|
|
INSERT INTO t1 SELECT id+32 FROM t1;
|
|
INSERT INTO t1 SELECT id+64 FROM t1;
|
|
INSERT INTO t1 SELECT id+128 FROM t1;
|
|
INSERT INTO t1 SELECT id+256 FROM t1;
|
|
INSERT INTO t1 SELECT id+512 FROM t1;
|
|
INSERT INTO t1 SELECT id+1024 FROM t1;
|
|
INSERT INTO t1 SELECT id+2048 FROM t1;
|
|
INSERT INTO t1 SELECT id+4096 FROM t1;
|
|
INSERT INTO t1 SELECT id+9192 FROM t1;
|
|
#
|
|
# This query will should show a full table scan analysis.
|
|
#
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select table_name, column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency,
|
|
DECODE_HISTOGRAM(hist_type, histogram)
|
|
from mysql.column_stats;
|
|
table_name column_name min_value max_value nulls_ratio avg_length avg_frequency DECODE_HISTOGRAM(hist_type, histogram)
|
|
t1 id 1 17384 0.0000 4.0000 14.0000 {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "1639",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "3277",
|
|
"size": 0.100001744,
|
|
"ndv": 1640
|
|
},
|
|
{
|
|
"start": "4916",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "6554",
|
|
"size": 0.100001744,
|
|
"ndv": 1640
|
|
},
|
|
{
|
|
"start": "9193",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "10831",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "12470",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "14108",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "15746",
|
|
"end": "17384",
|
|
"size": 0.099984305,
|
|
"ndv": 1639
|
|
}
|
|
]
|
|
}
|
|
set analyze_sample_percentage=0.1;
|
|
#
|
|
# This query will show an innacurate avg_frequency value.
|
|
#
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
select table_name, column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency,
|
|
DECODE_HISTOGRAM(hist_type, histogram)
|
|
from mysql.column_stats;
|
|
table_name column_name min_value max_value nulls_ratio avg_length avg_frequency DECODE_HISTOGRAM(hist_type, histogram)
|
|
t1 id 111 17026 0.0000 4.0000 10.4739 {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "111",
|
|
"size": 0.103773585,
|
|
"ndv": 21
|
|
},
|
|
{
|
|
"start": "1074",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "2504",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "4395",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "6165",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "8082",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "10671",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "12738",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "14487",
|
|
"size": 0.103773585,
|
|
"ndv": 22
|
|
},
|
|
{
|
|
"start": "15785",
|
|
"end": "17026",
|
|
"size": 0.066037736,
|
|
"ndv": 14
|
|
}
|
|
]
|
|
}
|
|
#
|
|
# This query will show a better avg_frequency value.
|
|
#
|
|
set analyze_sample_percentage=25;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
select table_name, column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency,
|
|
DECODE_HISTOGRAM(hist_type, histogram)
|
|
from mysql.column_stats;
|
|
table_name column_name min_value max_value nulls_ratio avg_length avg_frequency DECODE_HISTOGRAM(hist_type, histogram)
|
|
t1 id 1 17384 0.0000 4.0000 14.0401 {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.100015657,
|
|
"ndv": 1591
|
|
},
|
|
{
|
|
"start": "1624",
|
|
"size": 0.100015657,
|
|
"ndv": 1599
|
|
},
|
|
{
|
|
"start": "3252",
|
|
"size": 0.100015657,
|
|
"ndv": 1587
|
|
},
|
|
{
|
|
"start": "4868",
|
|
"size": 0.100015657,
|
|
"ndv": 1594
|
|
},
|
|
{
|
|
"start": "6483",
|
|
"size": 0.100015657,
|
|
"ndv": 1632
|
|
},
|
|
{
|
|
"start": "8153",
|
|
"size": 0.100015657,
|
|
"ndv": 1607
|
|
},
|
|
{
|
|
"start": "10791",
|
|
"size": 0.100015657,
|
|
"ndv": 1619
|
|
},
|
|
{
|
|
"start": "12435",
|
|
"size": 0.100015657,
|
|
"ndv": 1627
|
|
},
|
|
{
|
|
"start": "14080",
|
|
"size": 0.100015657,
|
|
"ndv": 1613
|
|
},
|
|
{
|
|
"start": "15727",
|
|
"end": "17384",
|
|
"size": 0.099859084,
|
|
"ndv": 1622
|
|
}
|
|
]
|
|
}
|
|
set analyze_sample_percentage=0;
|
|
#
|
|
# Test self adjusting sampling level.
|
|
#
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
select table_name, column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency,
|
|
DECODE_HISTOGRAM(hist_type, histogram)
|
|
from mysql.column_stats;
|
|
table_name column_name min_value max_value nulls_ratio avg_length avg_frequency DECODE_HISTOGRAM(hist_type, histogram)
|
|
t1 id 1 17384 0.0000 4.0000 13.9812 {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.100007372,
|
|
"ndv": 1651
|
|
},
|
|
{
|
|
"start": "1651",
|
|
"size": 0.100007372,
|
|
"ndv": 1656
|
|
},
|
|
{
|
|
"start": "3306",
|
|
"size": 0.100007372,
|
|
"ndv": 1643
|
|
},
|
|
{
|
|
"start": "4949",
|
|
"size": 0.100007372,
|
|
"ndv": 1648
|
|
},
|
|
{
|
|
"start": "6597",
|
|
"size": 0.100007372,
|
|
"ndv": 1644
|
|
},
|
|
{
|
|
"start": "9240",
|
|
"size": 0.100007372,
|
|
"ndv": 1624
|
|
},
|
|
{
|
|
"start": "10864",
|
|
"size": 0.100007372,
|
|
"ndv": 1633
|
|
},
|
|
{
|
|
"start": "12496",
|
|
"size": 0.100007372,
|
|
"ndv": 1619
|
|
},
|
|
{
|
|
"start": "14114",
|
|
"size": 0.100007372,
|
|
"ndv": 1645
|
|
},
|
|
{
|
|
"start": "15758",
|
|
"end": "17384",
|
|
"size": 0.099933656,
|
|
"ndv": 1627
|
|
}
|
|
]
|
|
}
|
|
#
|
|
# Test record estimation is working properly.
|
|
#
|
|
select count(*) from t1;
|
|
count(*)
|
|
229376
|
|
explain select * from t1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 229060
|
|
set analyze_sample_percentage=100;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
select table_name, column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency,
|
|
DECODE_HISTOGRAM(hist_type, histogram)
|
|
from mysql.column_stats;
|
|
table_name column_name min_value max_value nulls_ratio avg_length avg_frequency DECODE_HISTOGRAM(hist_type, histogram)
|
|
t1 id 1 17384 0.0000 4.0000 14.0000 {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "1639",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "3277",
|
|
"size": 0.100001744,
|
|
"ndv": 1640
|
|
},
|
|
{
|
|
"start": "4916",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "6554",
|
|
"size": 0.100001744,
|
|
"ndv": 1640
|
|
},
|
|
{
|
|
"start": "9193",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "10831",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "12470",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "14108",
|
|
"size": 0.100001744,
|
|
"ndv": 1639
|
|
},
|
|
{
|
|
"start": "15746",
|
|
"end": "17384",
|
|
"size": 0.099984305,
|
|
"ndv": 1639
|
|
}
|
|
]
|
|
}
|
|
explain select * from t1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 229376
|
|
drop table t0;
|
|
drop table t1;
|
|
set analyze_sample_percentage=@save_analyze_sample_percentage;
|
|
set histogram_size=@save_histogram_size;
|
|
set use_stat_tables=@save_use_stat_tables;
|
|
set @@global.histogram_size=@save_histogram_size;
|
|
ALTER DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;
|
|
ALTER DATABASE test CHARACTER SET latin1 COLLATE latin1_swedish_ci;
|
|
drop table if exists t1;
|
|
set @save_histogram_type=@@histogram_type;
|
|
set @save_histogram_size=@@histogram_size;
|
|
call mtr.add_suppression("Failed to parse histogram for table .*");
|
|
create table ten(a int primary key);
|
|
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|
set histogram_size=100;
|
|
set histogram_type='double_prec_hb';
|
|
create table t1_bin (a varchar(255));
|
|
insert into t1_bin select concat('a-', a) from ten;
|
|
analyze table t1_bin persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1_bin analyze status Engine-independent statistics collected
|
|
test.t1_bin analyze status OK
|
|
select hex(histogram) from mysql.column_stats where table_name='t1_bin';
|
|
hex(histogram)
|
|
00000000000000000000711C711C711C711C711CE338E338E338E338E33855555555555555555555C671C671C671C671C671388E388E388E388E388EAAAAAAAAAAAAAAAAAAAA1BC71BC71BC71BC71BC78DE38DE38DE38DE38DE3FFFFFFFFFFFFFFFFFFFF
|
|
explain extended select * from t1_bin where a between 'a-3a' and 'zzzzzzzzz';
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1_bin ALL NULL NULL NULL NULL 10 58.82 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t1_bin`.`a` AS `a` from `test`.`t1_bin` where `test`.`t1_bin`.`a` between 'a-3a' and 'zzzzzzzzz'
|
|
analyze select * from t1_bin where a between 'a-3a' and 'zzzzzzzzz';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1_bin ALL NULL NULL NULL NULL 10 10.00 58.82 60.00 Using where
|
|
set histogram_type=json_hb;
|
|
create table t1_json (a varchar(255));
|
|
insert into t1_json select concat('a-', a) from ten;
|
|
analyze table t1_json persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1_json analyze status Engine-independent statistics collected
|
|
test.t1_json analyze status OK
|
|
select * from mysql.column_stats where table_name='t1_json';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1_json a a-0 a-9 0.0000 3.0000 1.0000 10 JSON_HB {
|
|
"target_histogram_size": 100,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "a-0",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-1",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-2",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-3",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-4",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-5",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-6",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-7",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-8",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "a-9",
|
|
"end": "a-9",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
explain extended select * from t1_json where a between 'a-3a' and 'zzzzzzzzz';
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10 60.00 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t1_json`.`a` AS `a` from `test`.`t1_json` where `test`.`t1_json`.`a` between 'a-3a' and 'zzzzzzzzz'
|
|
analyze select * from t1_json where a between 'a-3a' and 'zzzzzzzzz';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10 10.00 60.00 60.00 Using where
|
|
explain extended select * from t1_json where a < 'b-1a';
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10 100.00 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t1_json`.`a` AS `a` from `test`.`t1_json` where `test`.`t1_json`.`a` < 'b-1a'
|
|
analyze select * from t1_json where a > 'zzzzzzzzz';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10 10.00 0.00 0.00 Using where
|
|
drop table ten;
|
|
UPDATE mysql.column_stats
|
|
SET histogram='["not-what-you-expect"]' WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: Root JSON element must be a JSON object at offset 1.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":"not-histogram"}' WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: histogram_hb must contain an array at offset 32.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":["not-a-bucket"]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: Expected an object in the buckets array at offset 32.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":[{"no-expected-members":1}]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: "start" element not present at offset 42.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":[{"start":{}}]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: String or number expected at offset 27.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":[{"start":"aaa", "size":"not-an-integer"}]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: "ndv" element not present at offset 57.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":[{"start":"aaa", "size":0.25}]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: "ndv" element not present at offset 45.
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":[{"start":"aaa", "size":0.25, "ndv":1}]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
UPDATE mysql.column_stats
|
|
SET histogram='{"histogram_hb":[]}'
|
|
WHERE table_name='t1_json';
|
|
FLUSH TABLES;
|
|
explain select * from t1_json limit 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
|
|
Warnings:
|
|
Warning 4186 Failed to parse histogram for table test.t1_json: Histogram must have at least one bucket at offset 19.
|
|
create table t2 (
|
|
city varchar(100)
|
|
);
|
|
set histogram_size=50;
|
|
insert into t2 select 'Moscow' from seq_1_to_99;
|
|
insert into t2 select 'Helsinki' from seq_1_to_2;
|
|
set histogram_type=json_hb;
|
|
analyze table t2 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
explain extended select * from t2 where city = 'Moscow';
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 101 98.02 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t2`.`city` AS `city` from `test`.`t2` where `test`.`t2`.`city` = 'Moscow'
|
|
analyze select * from t2 where city = 'Moscow';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 101 101.00 98.02 98.02 Using where
|
|
explain extended select * from t2 where city = 'Helsinki';
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 101 1.98 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t2`.`city` AS `city` from `test`.`t2` where `test`.`t2`.`city` = 'Helsinki'
|
|
analyze select * from t2 where city = 'helsinki';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 101 101.00 1.98 1.98 Using where
|
|
explain extended select * from t2 where city < 'Lagos';
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 101 1.98 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t2`.`city` AS `city` from `test`.`t2` where `test`.`t2`.`city` < 'Lagos'
|
|
drop table t1_bin;
|
|
drop table t1_json;
|
|
drop table t2;
|
|
DELETE FROM mysql.column_stats;
|
|
create schema world;
|
|
use world;
|
|
set histogram_type='JSON_HB';
|
|
set histogram_size=50;
|
|
ANALYZE TABLE Country, City, CountryLanguage persistent for all;
|
|
SELECT column_name, min_value, max_value, hist_size, hist_type, histogram FROM mysql.column_stats;
|
|
column_name min_value max_value hist_size hist_type histogram
|
|
Code ABW ZWE NULL NULL NULL
|
|
Name Afghanistan Zimbabwe 48 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "Afghanistan",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Angola",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Armenia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Bahamas",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Belgium",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Bolivia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "British Indian Ocean Territory",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Cambodia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Central African Republic",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Cocos (Keeling) Islands",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Cook Islands",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Czech Republic",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Dominican Republic",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Equatorial Guinea",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Faroe Islands",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "French Polynesia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Germany",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Grenada",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Guinea-Bissau",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Honduras",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Indonesia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Italy",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Kenya",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Latvia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Liechtenstein",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Madagascar",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Malta",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Mayotte",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Mongolia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Namibia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "New Caledonia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Niue",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Oman",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Papua New Guinea",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Poland",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Russian Federation",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Saint Lucia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Sao Tome and Principe",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Singapore",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "South Africa",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Sudan",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Switzerland",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Thailand",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Tunisia",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Uganda",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "United States Minor Outlying Islands",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Vietnam",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Yemen",
|
|
"end": "Zimbabwe",
|
|
"size": 0.016736402,
|
|
"ndv": 4
|
|
}
|
|
]
|
|
}
|
|
ID 1 4079 NULL NULL NULL
|
|
Country ABW ZWE 39 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "ABW",
|
|
"size": 0.020102966,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "ATG",
|
|
"size": 0.020102966,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "BLR",
|
|
"size": 0.006619269,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "BRA",
|
|
"size": 0.061289532,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "BRB",
|
|
"size": 0.020102966,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "CHL",
|
|
"size": 0.002206423,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "CHN",
|
|
"size": 0.0889924,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "CIV",
|
|
"size": 0.020102966,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "CUB",
|
|
"size": 0.020102966,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "DEU",
|
|
"size": 0.020102966,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "EGY",
|
|
"size": 0.020102966,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "ESP",
|
|
"size": 0.020102966,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "GBR",
|
|
"size": 0.020102966,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "GIB",
|
|
"size": 0.020102966,
|
|
"ndv": 19
|
|
},
|
|
{
|
|
"start": "IDN",
|
|
"size": 0.012503064,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "IND",
|
|
"size": 0.083598921,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "IRL",
|
|
"size": 0.020102966,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "IRQ",
|
|
"size": 0.020102966,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "JOR",
|
|
"size": 2.451581e-4,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "JPN",
|
|
"size": 0.060799215,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "KAZ",
|
|
"size": 0.020102966,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "KOR",
|
|
"size": 0.020102966,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "MDA",
|
|
"size": 0.002451581,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "MEX",
|
|
"size": 0.042412356,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "MHL",
|
|
"size": 0.020102966,
|
|
"ndv": 20
|
|
},
|
|
{
|
|
"start": "NGA",
|
|
"size": 0.020102966,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "NLD",
|
|
"size": 0.020102966,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "PAK",
|
|
"size": 0.007354744,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "PHL",
|
|
"size": 0.033341505,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "PLW",
|
|
"size": 0.020102966,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "PSE",
|
|
"size": 0.008580534,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "RUS",
|
|
"size": 0.046334886,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "RWA",
|
|
"size": 0.020102966,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "SWE",
|
|
"size": 0.020102966,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "TUR",
|
|
"size": 0.020102966,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "TZA",
|
|
"size": 0.015199804,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "USA",
|
|
"size": 0.067173327,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "UZB",
|
|
"size": 0.020102966,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "VNM",
|
|
"end": "ZWE",
|
|
"size": 0.018632018,
|
|
"ndv": 9
|
|
}
|
|
]
|
|
}
|
|
SurfaceArea 0.40 17075400.00 48 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0.40",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "16.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "49.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "96.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "181.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "242.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "314.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "373.00",
|
|
"size": 0.020920502,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "455.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "618.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "726.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1102.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2510.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "4033.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "8875.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "11295.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "17364.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "21041.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "26338.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "28896.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "36125.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "45227.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "51197.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "65301.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "75517.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "88946.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "102173.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "111369.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "120538.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "147181.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "185180.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "236800.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "245857.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "283561.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "323250.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "342000.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "438317.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "475442.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "551500.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "622984.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "756626.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "883749.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1098581.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1246700.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1648195.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2166090.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2780400.00",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "9572900.00",
|
|
"end": "17075400.00",
|
|
"size": 0.016736402,
|
|
"ndv": 4
|
|
}
|
|
]
|
|
}
|
|
Population 0 1277558000 48 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0",
|
|
"size": 0.029288703,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "50",
|
|
"size": 0.020920502,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "2000",
|
|
"size": 0.020920502,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "7000",
|
|
"size": 0.020920502,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "15000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "25000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "38000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "68000",
|
|
"size": 0.020920502,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "78000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "103000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "154000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "214000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "279000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "380200",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "444000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "599000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "817000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1213000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1622000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2124000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2583000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3101000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3520000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3850000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "4380000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "4699000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "5083000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "5496000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "6276000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "7430000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "8190900",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "9169000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "10097000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "10640000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "11234000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "12878000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "15942000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "18886000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "22244000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "23930000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "28351000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "33517000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "42321000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "57680000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "66591000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "82164700",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "146934000",
|
|
"size": 0.020920502,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1013662000",
|
|
"end": "1277558000",
|
|
"size": 0.008368201,
|
|
"ndv": 2
|
|
}
|
|
]
|
|
}
|
|
Capital 1 4074 47 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "54",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "65",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "144",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "179",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "194",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "537",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "553",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "586",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "652",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "764",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "905",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "919",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "928",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "939",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1449",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1530",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1792",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "1864",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2256",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2317",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2413",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2437",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2447",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2460",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2484",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2511",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2695",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2726",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2754",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2821",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2885",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "2919",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3014",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3048",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3067",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3171",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3207",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3217",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3248",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3315",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3336",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3419",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3483",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3520",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3580",
|
|
"size": 0.021551724,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "4068",
|
|
"end": "4074",
|
|
"size": 0.00862069,
|
|
"ndv": 2
|
|
}
|
|
]
|
|
}
|
|
Name A Coruña (La Coruña) Ürgenc 50 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "A Coruña (La Coruña)",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Almería",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Araras",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Bakersfield",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Bayamo",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Bilaspur",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Bridgeport",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Cambridge",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Chatsworth",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Cizah",
|
|
"size": 0.020102966,
|
|
"ndv": 78
|
|
},
|
|
{
|
|
"start": "Da Nang",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Djougou",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Emeishan",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Freiburg im Breisgau",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Giugliano in Campania",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "Györ",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "Herat",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Hyesan",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Itabira",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Jiangyou",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "Kamjanets-Podilskyi",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Khouribga",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Koudougou",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Lahore",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Linköping",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Machilipatnam (Masulipatam)",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Marikina",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Miami Beach",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Moscow",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Nanded (Nander)",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Nizni Tagil",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Okazaki",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Pak Kret",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Petah Tiqwa",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Porto-Novo",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Qomsheh",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Rimini",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Salamanca",
|
|
"size": 0.020102966,
|
|
"ndv": 70
|
|
},
|
|
{
|
|
"start": "Sanaa",
|
|
"size": 0.020102966,
|
|
"ndv": 78
|
|
},
|
|
{
|
|
"start": "Secunderabad",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "Silay",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Subotica",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Tagum",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Tema",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Tongling",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Udine",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "Verona",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "Wichita Falls",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "Yibin",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "Zixing",
|
|
"end": "Ürgenc",
|
|
"size": 0.014954646,
|
|
"ndv": 61
|
|
}
|
|
]
|
|
}
|
|
Population 42 10500000 50 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "42",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "56601",
|
|
"size": 0.020102966,
|
|
"ndv": 64
|
|
},
|
|
{
|
|
"start": "90674",
|
|
"size": 0.020102966,
|
|
"ndv": 70
|
|
},
|
|
{
|
|
"start": "92700",
|
|
"size": 0.020102966,
|
|
"ndv": 76
|
|
},
|
|
{
|
|
"start": "94800",
|
|
"size": 0.020102966,
|
|
"ndv": 74
|
|
},
|
|
{
|
|
"start": "96984",
|
|
"size": 0.020102966,
|
|
"ndv": 75
|
|
},
|
|
{
|
|
"start": "99296",
|
|
"size": 0.020102966,
|
|
"ndv": 73
|
|
},
|
|
{
|
|
"start": "101144",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "103211",
|
|
"size": 0.020102966,
|
|
"ndv": 73
|
|
},
|
|
{
|
|
"start": "105700",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "107800",
|
|
"size": 0.020102966,
|
|
"ndv": 76
|
|
},
|
|
{
|
|
"start": "110048",
|
|
"size": 0.020102966,
|
|
"ndv": 76
|
|
},
|
|
{
|
|
"start": "113336",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "116485",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "119675",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "122700",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "125300",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "127898",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "131831",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "135621",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "139712",
|
|
"size": 0.020102966,
|
|
"ndv": 75
|
|
},
|
|
{
|
|
"start": "144282",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "149000",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "154976",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "161191",
|
|
"size": 0.020102966,
|
|
"ndv": 78
|
|
},
|
|
{
|
|
"start": "167795",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "174381",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "180650",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "187691",
|
|
"size": 0.020102966,
|
|
"ndv": 76
|
|
},
|
|
{
|
|
"start": "195400",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "203500",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "214901",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "224897",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "239810",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "253587",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "268013",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "285114",
|
|
"size": 0.020102966,
|
|
"ndv": 77
|
|
},
|
|
{
|
|
"start": "303346",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "325790",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "348845",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "374945",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "410000",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "445555",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "487148",
|
|
"size": 0.020102966,
|
|
"ndv": 79
|
|
},
|
|
{
|
|
"start": "559249",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "651154",
|
|
"size": 0.020102966,
|
|
"ndv": 82
|
|
},
|
|
{
|
|
"start": "791926",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "1040000",
|
|
"size": 0.020102966,
|
|
"ndv": 80
|
|
},
|
|
{
|
|
"start": "1398800",
|
|
"size": 0.020102966,
|
|
"ndv": 81
|
|
},
|
|
{
|
|
"start": "2641312",
|
|
"end": "10500000",
|
|
"size": 0.014954646,
|
|
"ndv": 61
|
|
}
|
|
]
|
|
}
|
|
Country ABW ZWE 50 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "ABW",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "ALB",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "ATG",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "AZE",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "BFA",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "BLR",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "BRN",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "CAN",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "CHN",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "CMR",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "COK",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "CXR",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "DJI",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "ERI",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "ETH",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "FSM",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "GHA",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "GNB",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "GUM",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "HUN",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "IND",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "IRQ",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "JOR",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "KEN",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "KWT",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "LCA",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "LVA",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "MDA",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "MLI",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "MNP",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "MRT",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "MYS",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "NFK",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "NLD",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "OMN",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "PHL",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "PRI",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "REU",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "RWA",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "SGP",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "SPM",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "SWZ",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "TGO",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "TON",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "TZA",
|
|
"size": 0.020325203,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "UGA",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "USA",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "VNM",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "YUG",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "ZWE",
|
|
"end": "ZWE",
|
|
"size": 0.004065041,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
Language Abhyasi [South]Mande 48 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "Abhyasi",
|
|
"size": 0.020325203,
|
|
"ndv": 12
|
|
},
|
|
{
|
|
"start": "Ami",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "Arabic",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Armenian",
|
|
"size": 0.020325203,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "Balochi",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "Belorussian",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "Bullom-sherbro",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "Chechen",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "Chinese",
|
|
"size": 0.020325203,
|
|
"ndv": 12
|
|
},
|
|
{
|
|
"start": "Creole English",
|
|
"size": 0.020325203,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "Creole French",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "Dorbet",
|
|
"size": 0.012195122,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "English",
|
|
"size": 0.06097561,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "Eskimo Languages",
|
|
"size": 0.020325203,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "French",
|
|
"size": 0.020325203,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "Friuli",
|
|
"size": 0.020325203,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "Ganda",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "German",
|
|
"size": 0.020325203,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "Guaymí",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "Hehet",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "Hungarian",
|
|
"size": 0.020325203,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "Italian",
|
|
"size": 0.020325203,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "Kanuri",
|
|
"size": 0.020325203,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "Khoekhoe",
|
|
"size": 0.020325203,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "Kotokoli",
|
|
"size": 0.020325203,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "Lithuanian",
|
|
"size": 0.020325203,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "Macedonian",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "Malenasian Languages",
|
|
"size": 0.020325203,
|
|
"ndv": 12
|
|
},
|
|
{
|
|
"start": "Maranao",
|
|
"size": 0.020325203,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "Miao",
|
|
"size": 0.020325203,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "Muong",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "Norwegian",
|
|
"size": 0.020325203,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "Paiwan",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "Polish",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "Portuguese",
|
|
"size": 0.020325203,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "Romanian",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "Russian",
|
|
"size": 0.020325203,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "Saraiki",
|
|
"size": 0.020325203,
|
|
"ndv": 10
|
|
},
|
|
{
|
|
"start": "Sidamo",
|
|
"size": 0.020325203,
|
|
"ndv": 12
|
|
},
|
|
{
|
|
"start": "Soninke",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "Spanish",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "Sunda",
|
|
"size": 0.020325203,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "Tamil",
|
|
"size": 0.020325203,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "Tigre",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "Turkish",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "Ukrainian",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "Uzbek",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "Yap",
|
|
"end": "[South]Mande",
|
|
"size": 0.012195122,
|
|
"ndv": 9
|
|
}
|
|
]
|
|
}
|
|
Percentage 0.0 99.9 47 JSON_HB {
|
|
"target_histogram_size": 50,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0.0",
|
|
"size": 0.066056911,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.1",
|
|
"size": 0.020325203,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.2",
|
|
"size": 0.022357724,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.3",
|
|
"size": 0.017276423,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.4",
|
|
"size": 0.025406504,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.5",
|
|
"size": 0.020325203,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.6",
|
|
"size": 0.020325203,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "0.7",
|
|
"size": 0.020325203,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "0.8",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "1.0",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "1.3",
|
|
"size": 0.020325203,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "1.4",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "1.6",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "1.8",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "2.1",
|
|
"size": 0.020325203,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "2.3",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "2.6",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "2.9",
|
|
"size": 0.020325203,
|
|
"ndv": 4
|
|
},
|
|
{
|
|
"start": "3.2",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "3.6",
|
|
"size": 0.020325203,
|
|
"ndv": 5
|
|
},
|
|
{
|
|
"start": "4.1",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "4.6",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "5.1",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "5.7",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "6.2",
|
|
"size": 0.020325203,
|
|
"ndv": 8
|
|
},
|
|
{
|
|
"start": "6.9",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "7.6",
|
|
"size": 0.020325203,
|
|
"ndv": 6
|
|
},
|
|
{
|
|
"start": "8.2",
|
|
"size": 0.020325203,
|
|
"ndv": 7
|
|
},
|
|
{
|
|
"start": "8.9",
|
|
"size": 0.020325203,
|
|
"ndv": 9
|
|
},
|
|
{
|
|
"start": "9.7",
|
|
"size": 0.020325203,
|
|
"ndv": 11
|
|
},
|
|
{
|
|
"start": "11.0",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "12.4",
|
|
"size": 0.020325203,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "14.1",
|
|
"size": 0.020325203,
|
|
"ndv": 13
|
|
},
|
|
{
|
|
"start": "16.5",
|
|
"size": 0.020325203,
|
|
"ndv": 17
|
|
},
|
|
{
|
|
"start": "19.7",
|
|
"size": 0.020325203,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "23.3",
|
|
"size": 0.020325203,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "31.7",
|
|
"size": 0.020325203,
|
|
"ndv": 16
|
|
},
|
|
{
|
|
"start": "37.5",
|
|
"size": 0.020325203,
|
|
"ndv": 19
|
|
},
|
|
{
|
|
"start": "47.4",
|
|
"size": 0.020325203,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "55.1",
|
|
"size": 0.020325203,
|
|
"ndv": 19
|
|
},
|
|
{
|
|
"start": "66.7",
|
|
"size": 0.020325203,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "78.1",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "86.2",
|
|
"size": 0.020325203,
|
|
"ndv": 18
|
|
},
|
|
{
|
|
"start": "90.7",
|
|
"size": 0.020325203,
|
|
"ndv": 15
|
|
},
|
|
{
|
|
"start": "95.1",
|
|
"size": 0.020325203,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "97.6",
|
|
"size": 0.020325203,
|
|
"ndv": 14
|
|
},
|
|
{
|
|
"start": "99.9",
|
|
"end": "99.9",
|
|
"size": 0.015243902,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
analyze select * from Country use index () where Code between 'BBC' and 'GGG';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 239.00 20.00 25.52 Using where
|
|
analyze select * from Country use index () where Code < 'BBC';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 239.00 4.00 7.11 Using where
|
|
set histogram_type=@save_histogram_type;
|
|
set histogram_size=@save_histogram_size;
|
|
DROP SCHEMA world;
|
|
use test;
|
|
create table t10 (
|
|
a varchar(10)
|
|
);
|
|
#
|
|
# Histograms are not collected for empty tables:
|
|
#
|
|
analyze table t10 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t10 analyze status Engine-independent statistics collected
|
|
test.t10 analyze status Table is already up to date
|
|
select histogram
|
|
from mysql.column_stats where table_name='t10' and db_name=database();
|
|
histogram
|
|
NULL
|
|
#
|
|
# Try with n_buckets > n_rows
|
|
#
|
|
insert into t10 values ('Berlin'),('Paris'),('Rome');
|
|
set histogram_size=10, histogram_type='json_hb';
|
|
analyze table t10 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t10 analyze status Engine-independent statistics collected
|
|
test.t10 analyze status OK
|
|
select histogram
|
|
from mysql.column_stats where table_name='t10' and db_name=database();
|
|
histogram
|
|
{
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "Berlin",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "Paris",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "Rome",
|
|
"end": "Rome",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
drop table t10;
|
|
#
|
|
# MDEV-26590: Stack smashing/buffer overflow in Histogram_json_hb::parse upon UPDATE on table with long VARCHAR
|
|
#
|
|
CREATE TABLE t1 (b INT, a VARCHAR(3176));
|
|
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
|
SET histogram_type= JSON_HB;
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM t1;
|
|
b a
|
|
1 foo
|
|
2 bar
|
|
drop table t1;
|
|
#
|
|
# MDEV-26589: Assertion failure upon DECODE_HISTOGRAM with NULLs in first column
|
|
#
|
|
CREATE TABLE t1 (a INT, b INT);
|
|
INSERT INTO t1 VALUES (NULL,1), (NULL,2);
|
|
SET histogram_type = JSON_HB;
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT DECODE_HISTOGRAM(hist_type, histogram) from mysql.column_stats;
|
|
DECODE_HISTOGRAM(hist_type, histogram)
|
|
NULL
|
|
{
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.5,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "2",
|
|
"end": "2",
|
|
"size": 0.5,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
drop table t1;
|
|
#
|
|
# MDEV-26711: Values in JSON histograms are not properly quoted
|
|
#
|
|
create table t1 (a varchar(32));
|
|
insert into t1 values ('this is "quoted" text');
|
|
set histogram_type= JSON_HB;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select * from t1 where a = 'foo';
|
|
a
|
|
drop table t1;
|
|
#
|
|
# MDEV-26724 Endless loop in json_escape_to_string upon ... empty string
|
|
#
|
|
CREATE TABLE t1 (f VARCHAR(8));
|
|
INSERT INTO t1 VALUES ('a'),(''),('b');
|
|
SET histogram_type=JSON_HB;
|
|
ANALYZE TABLE t PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t analyze Error Table 'test.t' doesn't exist
|
|
test.t analyze status Operation failed
|
|
select * from t1;
|
|
f
|
|
a
|
|
|
|
b
|
|
drop table t1;
|
|
create table t1 (a char(1)) character set latin1;
|
|
insert into t1 values (0xD1);
|
|
select hex(a) from t1;
|
|
hex(a)
|
|
D1
|
|
set histogram_type='json_hb';
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select decode_histogram(hist_type, histogram)
|
|
from mysql.column_stats
|
|
where db_name=database() and table_name='t1';
|
|
decode_histogram(hist_type, histogram)
|
|
{
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "Ñ",
|
|
"end": "Ñ",
|
|
"size": 1,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
select * from t1;
|
|
a
|
|
Ñ
|
|
drop table t1;
|
|
#
|
|
# Another testcase: use a character that cannot be represented in utf8:
|
|
# Also, now it's testcase for:
|
|
# MDEV-26764: JSON_HB Histograms: handle BINARY and unassigned characters
|
|
#
|
|
create table t1 ( a varchar(100) character set cp1251);
|
|
insert into t1 values ( _cp1251 x'88'),( _cp1251 x'88'), ( _cp1251 x'88');
|
|
insert into t1 values ( _cp1251 x'98'),( _cp1251 x'98');
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select hist_type, histogram
|
|
from mysql.column_stats
|
|
where db_name=database() and table_name='t1';
|
|
hist_type histogram
|
|
JSON_HB {
|
|
"target_histogram_size": 10,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "€",
|
|
"size": 0.6,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "98",
|
|
"end_hex": "98",
|
|
"size": 0.4,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
analyze select * from t1 where a=_cp1251 x'88';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 5.00 60.00 60.00 Using where
|
|
drop table t1;
|
|
#
|
|
# ASAN use-after-poison my_strnxfrm_simple_internal / Histogram_json_hb::range_selectivity ...
|
|
# (Just the testcase)
|
|
#
|
|
CREATE TABLE t1 (f CHAR(8));
|
|
INSERT INTO t1 VALUES ('foo'),('bar');
|
|
SET histogram_type = JSON_HB;
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM t1 WHERE f > 'qux';
|
|
f
|
|
DROP TABLE t1;
|
|
#
|
|
# MDEV-26737: Outdated VARIABLE_COMMENT for HISTOGRAM_TYPE in I_S.SYSTEM_VARIABLES
|
|
#
|
|
select variable_comment from information_schema.system_variables where VARIABLE_NAME='HISTOGRAM_TYPE';
|
|
variable_comment
|
|
Specifies type of the histograms created by ANALYZE. Possible values are: SINGLE_PREC_HB - single precision height-balanced, DOUBLE_PREC_HB - double precision height-balanced, JSON_HB - height-balanced, stored as JSON
|
|
#
|
|
# MDEV-26709: JSON histogram may contain bucketS than histogram_size allows
|
|
#
|
|
create table t1 (a int);
|
|
insert into t1 values (1),(3),(5),(7);
|
|
insert into t1 select 2 from seq_1_to_25;
|
|
insert into t1 select 4 from seq_1_to_25;
|
|
insert into t1 select 6 from seq_1_to_25;
|
|
set histogram_size=4, histogram_type=JSON_HB;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select histogram from mysql.column_stats where table_name = 't1';
|
|
histogram
|
|
{
|
|
"target_histogram_size": 4,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "1",
|
|
"size": 0.253164557,
|
|
"ndv": 2
|
|
},
|
|
{
|
|
"start": "2",
|
|
"size": 0.253164557,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "4",
|
|
"size": 0.253164557,
|
|
"ndv": 3
|
|
},
|
|
{
|
|
"start": "6",
|
|
"end": "7",
|
|
"size": 0.240506329,
|
|
"ndv": 2
|
|
}
|
|
]
|
|
}
|
|
drop table t1;
|
|
#
|
|
# MDEV-26750: Estimation for filtered rows is far off with JSON_HB histogram
|
|
#
|
|
create table t1 (c char(8));
|
|
insert into t1 values ('1x');
|
|
insert into t1 values ('1x');
|
|
insert into t1 values ('1xx');
|
|
insert into t1 values ('0xx');
|
|
insert into t1 select * from t1;
|
|
insert into t1 select * from t1;
|
|
set histogram_type= JSON_HB;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
analyze
|
|
select c from t1 where c > '1';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 16 16.00 75.00 75.00 Using where
|
|
drop table t1;
|
|
#
|
|
# MDEV-26849: JSON Histograms: point selectivity estimates are off for non-existent values
|
|
#
|
|
create table t0(a int);
|
|
insert into t0 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|
create table t1(a int);
|
|
insert into t1 select 100*A.a from t0 A, t0 B, t0 C;
|
|
select a, count(*) from t1 group by a order by a;
|
|
a count(*)
|
|
0 100
|
|
100 100
|
|
200 100
|
|
300 100
|
|
400 100
|
|
500 100
|
|
600 100
|
|
700 100
|
|
800 100
|
|
900 100
|
|
set histogram_type=json_hb, histogram_size=default;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select * from mysql.column_stats where table_name='t1';
|
|
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
|
test t1 a 0 900 0.0000 4.0000 100.0000 10 JSON_HB {
|
|
"target_histogram_size": 254,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start": "0",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "100",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "200",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "300",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "400",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "500",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "600",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "700",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "800",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start": "900",
|
|
"end": "900",
|
|
"size": 0.1,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
analyze select * from t1 where a=0;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 10.00 10.00 Using where
|
|
analyze select * from t1 where a=50;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 0.10 0.00 Using where
|
|
analyze select * from t1 where a=70;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 0.10 0.00 Using where
|
|
analyze select * from t1 where a=100;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 10.00 10.00 Using where
|
|
analyze select * from t1 where a=150;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 0.10 0.00 Using where
|
|
analyze select * from t1 where a=200;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 10.00 10.00 Using where
|
|
drop table t0,t1;
|
|
#
|
|
# MDEV-26892: JSON histograms become invalid with a specific (corrupt) value in t
|
|
#
|
|
create table t1 (a varchar(32)) DEFAULT CHARSET=cp1257;
|
|
set histogram_type= JSON_HB, histogram_size= 1;
|
|
insert into t1 values ('foo'),(unhex('9C'));
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select * from t1;
|
|
a
|
|
foo
|
|
?
|
|
drop table t1;
|
|
#
|
|
# MDEV-26911: Unexpected ER_DUP_KEY, ASAN errors, double free detected in tcache with JSON_HB histogram
|
|
#
|
|
SET histogram_type= JSON_HB;
|
|
CREATE TABLE t1 (pk INT AUTO_INCREMENT, f VARCHAR(8), PRIMARY KEY (pk));
|
|
INSERT INTO t1 (f) VALUES ('foo');
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
ALTER TABLE t1 MODIFY f TEXT, ORDER BY pk;
|
|
INSERT INTO t1 (f) VALUES ('bar');
|
|
DROP TABLE t1;
|
|
#
|
|
# MDEV-26886: Estimation for filtered rows less precise with JSON histogram
|
|
#
|
|
create table t1 (a tinyint) as select if(seq%3,seq,0) as a from seq_1_to_100;
|
|
select count(*) from t1 where a <= 0;
|
|
count(*)
|
|
33
|
|
set histogram_type = JSON_HB, histogram_size=default;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
analyze select * from t1 where a <= 0;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 33.00 33.00 Using where
|
|
analyze select * from t1 where a < 0;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 1.00 0.00 Using where
|
|
analyze select * from t1 where a > 0;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 67.00 67.00 Using where
|
|
analyze select * from t1 where a >= 0;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 100.00 100.00 Using where
|
|
drop table t1;
|
|
#
|
|
# More test coverage
|
|
#
|
|
create table t0(a int);
|
|
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|
create table t1(a int);
|
|
insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
|
|
create table t2 (a int);
|
|
insert into t2 select 1 from t1;
|
|
insert into t2 select (a+1)*10 from t0;
|
|
insert into t2 values (0);
|
|
analyze table t2 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Engine-independent statistics collected
|
|
test.t2 analyze status OK
|
|
analyze select * from t2 where a < 1;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1011 1011.00 0.10 0.10 Using where
|
|
analyze select * from t2 where a =100;
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1011 1011.00 0.10 0.10 Using where
|
|
drop table t0,t1,t2;
|
|
#
|
|
# MDEV-27230: Estimation for filtered rows less precise ...
|
|
#
|
|
create table t1 (a char(1));
|
|
insert into t1 select chr(seq%26+97) from seq_1_to_50;
|
|
insert into t1 select ':' from t1;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
analyze select COUNT(*) FROM t1 WHERE a <> 'a';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 99.00 99.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a < 'a';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 50.00 50.00 Using where
|
|
drop table t1;
|
|
#
|
|
# MDEV-27229: Estimation for filtered rows less precise ... #5
|
|
#
|
|
create table t1 (id int, a varchar(8));
|
|
insert into t1 select seq, 'bar' from seq_1_to_100;
|
|
insert into t1 select id, 'qux' from t1;
|
|
set histogram_type=JSON_HB;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
analyze select COUNT(*) FROM t1 WHERE a > 'foo';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 50.00 50.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a > 'aaa';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 100.00 100.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a >='aaa';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 100.00 100.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a > 'bar';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 50.00 50.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a >='bar';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 100.00 100.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a < 'aaa';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 0.50 0.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a <='aaa';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 0.50 0.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a < 'bar';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 0.50 0.00 Using where
|
|
analyze select COUNT(*) FROM t1 WHERE a <='bar';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 200 200.00 50.00 50.00 Using where
|
|
drop table t1;
|
|
#
|
|
# MDEV-27243: Estimation for filtered rows less precise ... #7
|
|
# (Testcase only)
|
|
CREATE TABLE t1 (f TIME);
|
|
INSERT INTO t1 SELECT IF(seq%2,'00:00:00',SEC_TO_TIME(seq+7200)) FROM seq_1_to_1000;
|
|
SET histogram_type= JSON_HB;
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
ANALYZE SELECT * FROM t1 WHERE f > '00:01:00';
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 50.00 50.00 Using where
|
|
drop table t1;
|
|
#
|
|
# MDEV-26901: Estimation for filtered rows less precise ... #4
|
|
#
|
|
create table t1 (f int);
|
|
insert into t1 values
|
|
(7),(5),(0),(5),(112),(9),(9),(7),(5),(9),
|
|
(1),(7),(0),(6),(6),(2),(1),(6),(169),(7);
|
|
select f from t1 where f in (77, 1, 144, 73, 14, 12);
|
|
f
|
|
1
|
|
1
|
|
set histogram_type= JSON_HB;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
analyze select f from t1 where f in (77, 1, 144, 73, 14, 12);
|
|
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 20 20.00 10.00 10.00 Using where
|
|
drop table t1;
|
|
#
|
|
# Test that histograms over BIT fields use hex
|
|
#
|
|
create table t1 (a BIT(64));
|
|
insert into t1 values
|
|
(x'01'),(x'10'),(x'BE562B1A99001918');
|
|
set histogram_type= JSON_HB;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect INTEGER value: '13715197108439488792'
|
|
select histogram
|
|
from mysql.column_stats where table_name='t1' and db_name=database();
|
|
histogram
|
|
{
|
|
"target_histogram_size": 254,
|
|
"collected_at": "REPLACED",
|
|
"collected_by": "REPLACED",
|
|
"histogram_hb": [
|
|
{
|
|
"start_hex": "0000000000000001",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "0000000000000010",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
},
|
|
{
|
|
"start_hex": "BE562B1A99001918",
|
|
"end_hex": "BE562B1A99001918",
|
|
"size": 0.333333333,
|
|
"ndv": 1
|
|
}
|
|
]
|
|
}
|
|
drop table t1;
|
|
#
|
|
# MDEV-28882: Assertion `tmp >= 0' failed in best_access_path
|
|
#
|
|
CREATE TABLE t1 (a varchar(1));
|
|
INSERT INTO t1 VALUES ('o'),('s'),('j'),('s'),('y'),('s'),('l'),
|
|
('q'),('x'),('m'),('t'),('d'),('v'),('j'),('p'),('t'),('b'),('q');
|
|
set histogram_type=json_hb;
|
|
analyze table t1 persistent for all;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
# filtered must not be negative:
|
|
explain format=json select * from t1 where a > 'y';
|
|
EXPLAIN
|
|
{
|
|
"query_block": {
|
|
"select_id": 1,
|
|
"cost": "COST_REPLACED",
|
|
"nested_loop": [
|
|
{
|
|
"table": {
|
|
"table_name": "t1",
|
|
"access_type": "ALL",
|
|
"loops": 1,
|
|
"rows": 18,
|
|
"cost": "COST_REPLACED",
|
|
"filtered": 5.555555344,
|
|
"attached_condition": "t1.a > 'y'"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
drop table t1;
|
|
ALTER DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;
|