Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
4a1d1f51
Commit
4a1d1f51
authored
Mar 15, 2001
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improved ANALYZE TABLE a bit for small tables.
Docs/manual.texi: Updated changelog
parent
6f03f0cc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
11 deletions
+41
-11
Docs/manual.texi
Docs/manual.texi
+8
-1
myisam/mi_check.c
myisam/mi_check.c
+4
-6
mysql-test/r/show_check.result
mysql-test/r/show_check.result
+16
-2
mysql-test/t/show_check.test
mysql-test/t/show_check.test
+13
-2
No files found.
Docs/manual.texi
View file @
4a1d1f51
...
@@ -20763,6 +20763,9 @@ only partly indexed. @code{NULL} if the entire key is indexed.
...
@@ -20763,6 +20763,9 @@ only partly indexed. @code{NULL} if the entire key is indexed.
For now, it tells whether index is FULLTEXT or not.
For now, it tells whether index is FULLTEXT or not.
@end multitable
@end multitable
Note that as the @code{Cardinality} is counted based on statistics
stored as integers, it's not necessarily accurate for small tables.
@cindex displaying, table status
@cindex displaying, table status
@cindex tables, displaying status
@cindex tables, displaying status
@cindex status, tables
@cindex status, tables
...
@@ -23622,7 +23625,7 @@ If you get the following error in the @code{hostname.err log} when
...
@@ -23622,7 +23625,7 @@ If you get the following error in the @code{hostname.err log} when
starting @code{mysqld}:
starting @code{mysqld}:
@example
@example
bdb: Ignoring log file: .../log.XXXXXXXXXX: unsupported log version #
}
bdb: Ignoring log file: .../log.XXXXXXXXXX: unsupported log version #
@end example
@end example
it means that the new @code{BDB} version doesn't support the old log
it means that the new @code{BDB} version doesn't support the old log
file format. In this case you have to delete all @code{BDB} log BDB
file format. In this case you have to delete all @code{BDB} log BDB
...
@@ -42181,6 +42184,10 @@ Fixed wrong define @code{CLIENT_TRANSACTIONS}.
...
@@ -42181,6 +42184,10 @@ Fixed wrong define @code{CLIENT_TRANSACTIONS}.
Fixed bug in @code{SHOW VARIABLES} when using INNOBASE tables.
Fixed bug in @code{SHOW VARIABLES} when using INNOBASE tables.
@item
@item
Setting and using user variables in @code{SELECT DISTINCT} didn't work.
Setting and using user variables in @code{SELECT DISTINCT} didn't work.
@item
Tuned @code{SHOW ANALYZE} for small tables.
@item
Fixed handling of arguments in the benchmark script @code{run-all-tests}.
@end itemize
@end itemize
@node News-3.23.34a, News-3.23.34, News-3.23.35, News-3.23.x
@node News-3.23.34a, News-3.23.34, News-3.23.35, News-3.23.x
myisam/mi_check.c
View file @
4a1d1f51
...
@@ -580,9 +580,7 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
...
@@ -580,9 +580,7 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
}
}
if
(
param
->
testflag
&
T_STATISTICS
)
if
(
param
->
testflag
&
T_STATISTICS
)
{
{
if
(
*
keys
==
1L
)
/* first_key */
if
(
*
keys
!=
1L
)
/* not first_key */
param
->
unique_count
[
keyinfo
->
keysegs
]
++
;
else
{
{
uint
diff
;
uint
diff
;
_mi_key_cmp
(
keyinfo
->
seg
,
info
->
lastkey
,
key
,
USE_WHOLE_KEY
,
SEARCH_FIND
,
_mi_key_cmp
(
keyinfo
->
seg
,
info
->
lastkey
,
key
,
USE_WHOLE_KEY
,
SEARCH_FIND
,
...
@@ -2520,10 +2518,11 @@ static int sort_key_write(SORT_INFO *sort_info, const void *a)
...
@@ -2520,10 +2518,11 @@ static int sort_key_write(SORT_INFO *sort_info, const void *a)
{
{
cmp
=
_mi_key_cmp
(
sort_info
->
keyseg
,
sort_info
->
key_block
->
lastkey
,(
uchar
*
)
a
,
cmp
=
_mi_key_cmp
(
sort_info
->
keyseg
,
sort_info
->
key_block
->
lastkey
,(
uchar
*
)
a
,
USE_WHOLE_KEY
,
SEARCH_FIND
|
SEARCH_UPDATE
,
&
diff_pos
);
USE_WHOLE_KEY
,
SEARCH_FIND
|
SEARCH_UPDATE
,
&
diff_pos
);
sort_info
->
unique
[
diff_pos
-
1
]
++
;
}
}
else
else
{
{
cmp
=
-
1
;
diff_pos
=
sort_info
->
keyinfo
->
keysegs
;
cmp
=
-
1
;
}
}
if
((
sort_info
->
keyinfo
->
flag
&
HA_NOSAME
)
&&
cmp
==
0
)
if
((
sort_info
->
keyinfo
->
flag
&
HA_NOSAME
)
&&
cmp
==
0
)
{
{
...
@@ -2544,7 +2543,6 @@ static int sort_key_write(SORT_INFO *sort_info, const void *a)
...
@@ -2544,7 +2543,6 @@ static int sort_key_write(SORT_INFO *sort_info, const void *a)
_mi_print_key
(
stdout
,
sort_info
->
keyseg
,(
uchar
*
)
a
,
USE_WHOLE_KEY
);
_mi_print_key
(
stdout
,
sort_info
->
keyseg
,(
uchar
*
)
a
,
USE_WHOLE_KEY
);
return
(
sort_delete_record
(
param
));
return
(
sort_delete_record
(
param
));
}
}
sort_info
->
unique
[
diff_pos
-
1
]
++
;
#ifndef DBUG_OFF
#ifndef DBUG_OFF
if
(
cmp
>
0
)
if
(
cmp
>
0
)
{
{
...
@@ -3099,7 +3097,7 @@ static void update_key_parts(MI_KEYDEF *keyinfo,
...
@@ -3099,7 +3097,7 @@ static void update_key_parts(MI_KEYDEF *keyinfo,
if
(
count
==
0
)
if
(
count
==
0
)
tmp
=
records
;
tmp
=
records
;
else
else
tmp
=
(
records
+
count
/
2
)
/
count
;
tmp
=
(
records
+
(
count
+
1
)
/
2
)
/
(
count
+
1
)
;
if
(
tmp
>=
(
ulonglong
)
~
(
ulong
)
0
)
if
(
tmp
>=
(
ulonglong
)
~
(
ulong
)
0
)
tmp
=
(
ulonglong
)
~
(
ulong
)
0
;
tmp
=
(
ulonglong
)
~
(
ulong
)
0
;
*
rec_per_key_part
=
(
ulong
)
tmp
;
*
rec_per_key_part
=
(
ulong
)
tmp
;
...
...
mysql-test/r/show_check.result
View file @
4a1d1f51
...
@@ -23,7 +23,7 @@ c int(11) 0 select,insert,update,references
...
@@ -23,7 +23,7 @@ c int(11) 0 select,insert,update,references
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
t1 0 PRIMARY 1 a A 4 NULL NULL
t1 0 PRIMARY 1 a A 4 NULL NULL
t1 1 b 1 b A 1 NULL NULL
t1 1 b 1 b A 1 NULL NULL
t1 1 b 2 c A
2
NULL NULL
t1 1 b 2 c A
4
NULL NULL
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 check status Table is already up to date
test.t1 check status Table is already up to date
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
...
@@ -39,7 +39,7 @@ test.t1 check status OK
...
@@ -39,7 +39,7 @@ test.t1 check status OK
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
t1 0 PRIMARY 1 a A 5 NULL NULL
t1 0 PRIMARY 1 a A 5 NULL NULL
t1 1 b 1 b A 1 NULL NULL
t1 1 b 1 b A 1 NULL NULL
t1 1 b 2 c A
2
NULL NULL
t1 1 b 2 c A
5
NULL NULL
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 optimize status OK
test.t1 optimize status OK
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
...
@@ -53,3 +53,17 @@ mysql
...
@@ -53,3 +53,17 @@ mysql
test
test
Database (test%)
Database (test%)
test
test
Table Op Msg_type Msg_text
test.t1 analyze status OK
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
t1 0 PRIMARY 1 f1 A 1 NULL NULL
t1 0 PRIMARY 2 f2 A 3 NULL NULL
t1 0 PRIMARY 3 f3 A 9 NULL NULL
t1 0 PRIMARY 4 f4 A 18 NULL NULL
Table Op Msg_type Msg_text
test.t1 repair status OK
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
t1 0 PRIMARY 1 f1 A 1 NULL NULL
t1 0 PRIMARY 2 f2 A 3 NULL NULL
t1 0 PRIMARY 3 f3 A 9 NULL NULL
t1 0 PRIMARY 4 f4 A 18 NULL NULL
mysql-test/t/show_check.test
View file @
4a1d1f51
...
@@ -13,7 +13,7 @@ lock tables t1 read;
...
@@ -13,7 +13,7 @@ lock tables t1 read;
check
table
t2
,
t1
;
check
table
t2
,
t1
;
show
columns
from
t1
;
show
columns
from
t1
;
show
full
columns
from
t1
;
show
full
columns
from
t1
;
show
keys
from
t1
;
show
index
from
t1
;
drop
table
t1
,
t2
;
drop
table
t1
,
t2
;
create
table
t1
(
a
int
not
null
primary
key
,
b
int
not
null
,
c
int
not
null
,
key
(
b
,
c
));
create
table
t1
(
a
int
not
null
primary
key
,
b
int
not
null
,
c
int
not
null
,
key
(
b
,
c
));
...
@@ -25,7 +25,7 @@ insert into t1 values (5,5,5);
...
@@ -25,7 +25,7 @@ insert into t1 values (5,5,5);
check
table
t1
type
=
changed
;
check
table
t1
type
=
changed
;
check
table
t1
type
=
medium
;
check
table
t1
type
=
medium
;
check
table
t1
type
=
extended
;
check
table
t1
type
=
extended
;
show
keys
from
t1
;
show
index
from
t1
;
!
$
1062
insert
into
t1
values
(
5
,
5
,
5
);
!
$
1062
insert
into
t1
values
(
5
,
5
,
5
);
optimize
table
t1
;
optimize
table
t1
;
optimize
table
t1
;
optimize
table
t1
;
...
@@ -37,3 +37,14 @@ show variables like "this_doesn't_exists%";
...
@@ -37,3 +37,14 @@ show variables like "this_doesn't_exists%";
show
table
status
from
test
like
"this_doesn't_exists%"
;
show
table
status
from
test
like
"this_doesn't_exists%"
;
show
databases
;
show
databases
;
show
databases
like
"test%"
;
show
databases
like
"test%"
;
#
# Check of show index
#
create
table
t1
(
f1
int
not
null
,
f2
int
not
null
,
f3
int
not
null
,
f4
int
not
null
,
primary
key
(
f1
,
f2
,
f3
,
f4
));
insert
into
t1
values
(
1
,
1
,
1
,
0
),(
1
,
1
,
2
,
0
),(
1
,
1
,
3
,
0
),(
1
,
2
,
1
,
0
),(
1
,
2
,
2
,
0
),(
1
,
2
,
3
,
0
),(
1
,
3
,
1
,
0
),(
1
,
3
,
2
,
0
),(
1
,
3
,
3
,
0
),(
1
,
1
,
1
,
1
),(
1
,
1
,
2
,
1
),(
1
,
1
,
3
,
1
),(
1
,
2
,
1
,
1
),(
1
,
2
,
2
,
1
),(
1
,
2
,
3
,
1
),(
1
,
3
,
1
,
1
),(
1
,
3
,
2
,
1
),(
1
,
3
,
3
,
1
);
analyze
table
t1
;
show
index
from
t1
;
repair
table
t1
;
show
index
from
t1
;
drop
table
t1
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment