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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
b5dfa5b7
Commit
b5dfa5b7
authored
Aug 23, 2001
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lots of cleanups.
parent
8396f4d8
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
82 additions
and
16 deletions
+82
-16
Docs/manual.texi
Docs/manual.texi
+82
-16
No files found.
Docs/manual.texi
View file @
b5dfa5b7
...
@@ -3644,16 +3644,20 @@ differently:
...
@@ -3644,16 +3644,20 @@ differently:
@item
@item
@code{--} is only a comment if followed by a white space. @xref{Missing
@code{--} is only a comment if followed by a white space. @xref{Missing
comments}.
comments}.
@item
@item
For @code{VARCHAR} columns, trailing spaces are removed when the value is
For @code{VARCHAR} columns, trailing spaces are removed when the value is
stored. @xref{Bugs}.
stored. @xref{Bugs}.
@item
@item
In some cases, @code{CHAR} columns are silently changed to @code{VARCHAR}
In some cases, @code{CHAR} columns are silently changed to @code{VARCHAR}
columns. @xref{Silent column changes}.
columns. @xref{Silent column changes}.
@item
@item
Privileges for a table are not automatically revoked when you delete a
Privileges for a table are not automatically revoked when you delete a
table. You must explicitly issue a @code{REVOKE} to revoke privileges for
table. You must explicitly issue a @code{REVOKE} to revoke privileges for
a table. @xref{GRANT, , @code{GRANT}}.
a table. @xref{GRANT, , @code{GRANT}}.
@item
@item
@code{NULL AND FALSE} will evaluate to @code{NULL} and not to @code{FALSE}.
@code{NULL AND FALSE} will evaluate to @code{NULL} and not to @code{FALSE}.
This is because we don't think it's good to have to evaluate a lot of
This is because we don't think it's good to have to evaluate a lot of
...
@@ -3673,15 +3677,19 @@ behavior of MySQL changes:
...
@@ -3673,15 +3677,19 @@ behavior of MySQL changes:
@itemize @bullet
@itemize @bullet
@item
@item
@code{||} is string concatenation instead of @code{OR}.
@code{||} is string concatenation instead of @code{OR}.
@item
@item
You can have any number of spaces between a function name and the @samp{(}.
You can have any number of spaces between a function name and the @samp{(}.
This forces all function names to be treated as reserved words.
This forces all function names to be treated as reserved words.
@item
@item
@samp{"} will be an identifier quote character (like the MySQL
@samp{"} will be an identifier quote character (like the MySQL
@samp{`} quote character) and not a string quote character.
@samp{`} quote character) and not a string quote character.
@item
@item
@code{REAL} will be a synonym for @code{FLOAT} instead of a synonym of
@code{REAL} will be a synonym for @code{FLOAT} instead of a synonym of
@code{DOUBLE}.
@code{DOUBLE}.
@item
@item
The default transaction isolation level is @code{SERIALIZABLE}.
The default transaction isolation level is @code{SERIALIZABLE}.
@xref{SET TRANSACTION}.
@xref{SET TRANSACTION}.
...
@@ -4315,17 +4323,21 @@ The following problems are known and will be fixed in due time:
...
@@ -4315,17 +4323,21 @@ The following problems are known and will be fixed in due time:
@itemize @bullet
@itemize @bullet
@item
@item
For the moment @code{MATCH} only works with @code{SELECT} statements.
For the moment @code{MATCH} only works with @code{SELECT} statements.
@item
@item
When using @code{SET CHARACTER SET}, one can't use translated
When using @code{SET CHARACTER SET}, one can't use translated
characters in database, table and column names.
characters in database, table and column names.
@item
@item
@code{DELETE FROM merge_table} used without a @code{WHERE}
@code{DELETE FROM merge_table} used without a @code{WHERE}
will only clear the mapping for the table, not delete everything in the
will only clear the mapping for the table, not delete everything in the
mapped tables
mapped tables
@item
@item
You cannot build in another directory when using
You cannot build in another directory when using
MIT-pthreads. Because this requires changes to MIT-pthreads, we are not
MIT-pthreads. Because this requires changes to MIT-pthreads, we are not
likely to fix this.
likely to fix this.
@item
@item
@code{BLOB} values can't ``reliably'' be used in @code{GROUP BY} or
@code{BLOB} values can't ``reliably'' be used in @code{GROUP BY} or
@code{ORDER BY} or @code{DISTINCT}. Only the first @code{max_sort_length}
@code{ORDER BY} or @code{DISTINCT}. Only the first @code{max_sort_length}
...
@@ -4333,6 +4345,7 @@ bytes (default 1024) are used when comparing @code{BLOB}bs in these cases.
...
@@ -4333,6 +4345,7 @@ bytes (default 1024) are used when comparing @code{BLOB}bs in these cases.
This can be changed with the @code{-O max_sort_length} option to
This can be changed with the @code{-O max_sort_length} option to
@code{mysqld}. A workaround for most cases is to use a substring:
@code{mysqld}. A workaround for most cases is to use a substring:
@code{SELECT DISTINCT LEFT(blob,2048) FROM tbl_name}.
@code{SELECT DISTINCT LEFT(blob,2048) FROM tbl_name}.
@item
@item
Calculation is done with @code{BIGINT} or @code{DOUBLE} (both are
Calculation is done with @code{BIGINT} or @code{DOUBLE} (both are
normally 64 bits long). It depends on the function which precision one
normally 64 bits long). It depends on the function which precision one
...
@@ -4341,13 +4354,16 @@ precision, @code{IF}, and @code{ELT()} with @code{BIGINT} or @code{DOUBLE}
...
@@ -4341,13 +4354,16 @@ precision, @code{IF}, and @code{ELT()} with @code{BIGINT} or @code{DOUBLE}
precision and the rest with @code{DOUBLE} precision. One should try to
precision and the rest with @code{DOUBLE} precision. One should try to
avoid using bigger unsigned long long values than 63 bits
avoid using bigger unsigned long long values than 63 bits
(9223372036854775807) for anything else than bit fields!
(9223372036854775807) for anything else than bit fields!
@item
@item
All string columns, except @code{BLOB} and @code{TEXT} columns, automatically
All string columns, except @code{BLOB} and @code{TEXT} columns, automatically
have all trailing spaces removed when retrieved. For @code{CHAR} types this
have all trailing spaces removed when retrieved. For @code{CHAR} types this
is okay, and may be regarded as a feature according to ANSI SQL92. The bug is
is okay, and may be regarded as a feature according to ANSI SQL92. The bug is
that in MySQL, @code{VARCHAR} columns are treated the same way.
that in MySQL, @code{VARCHAR} columns are treated the same way.
@item
@item
You can only have up to 255 @code{ENUM} and @code{SET} columns in one table.
You can only have up to 255 @code{ENUM} and @code{SET} columns in one table.
@item
@item
@code{safe_mysqld} re-directs all messages from @code{mysqld} to the
@code{safe_mysqld} re-directs all messages from @code{mysqld} to the
@code{mysqld} log. One problem with this is that if you execute
@code{mysqld} log. One problem with this is that if you execute
...
@@ -4357,14 +4373,18 @@ If you use @code{--log} extensively, you should edit @code{safe_mysqld} to
...
@@ -4357,14 +4373,18 @@ If you use @code{--log} extensively, you should edit @code{safe_mysqld} to
log to @file{'hostname'.err} instead of @file{'hostname'.log} so you can
log to @file{'hostname'.err} instead of @file{'hostname'.log} so you can
easily reclaim the space for the old log by deleting the old one and
easily reclaim the space for the old log by deleting the old one and
executing @code{mysqladmin refresh}.
executing @code{mysqladmin refresh}.
@item
@item
In the @code{UPDATE} statement, columns are updated from left to right.
In the @code{UPDATE} statement, columns are updated from left to right.
If
If
you refer to an updated column, you will get the updated value instead of the
you refer to an updated column, you will get the updated value instead of the
original value. For example:
original value. For example:
@example
@example
mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1;
mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1;
@end example
@end example
will update @code{KEY} with @code{2} instead of with @code{1}.
This will update @code{KEY} with @code{2} instead of with @code{1}.
@item
@item
You can't use temporary tables more than once in the same query.
You can't use temporary tables more than once in the same query.
For example, the following doesn't work.
For example, the following doesn't work.
...
@@ -4389,9 +4409,11 @@ An example of this is:
...
@@ -4389,9 +4409,11 @@ An example of this is:
@example
@example
SELECT DISTINCT mp3id FROM band_downloads WHERE userid = 9 ORDER BY id
SELECT DISTINCT mp3id FROM band_downloads WHERE userid = 9 ORDER BY id
DESC;
DESC;
@end example
and
and
@example
SELECT DISTINCT band_downloads.mp3id, FROM band_downloads,band_mp3
SELECT DISTINCT band_downloads.mp3id, FROM band_downloads,band_mp3
WHERE band_downloads.userid = 9 AND band_mp3.id = band_downloads.mp3id
WHERE band_downloads.userid = 9 AND band_mp3.id = band_downloads.mp3id
ORDER BY band_downloads.id DESC;
ORDER BY band_downloads.id DESC;
...
@@ -4422,24 +4444,28 @@ optimizations that otherwise would be very hard to do.
...
@@ -4422,24 +4444,28 @@ optimizations that otherwise would be very hard to do.
If you set a column to an incorrect value, MySQL will, instead of
If you set a column to an incorrect value, MySQL will, instead of
doing a rollback, store the @code{best possible value} in the column:
doing a rollback, store the @code{best possible value} in the column:
@itemize @
bullet
@itemize @
minus
@item
@item
If you try to store a value outside the range in a numerical column,
If you try to store a value outside the range in a numerical column,
MySQL will instead store the smallest or biggest possible value in
MySQL will instead store the smallest or biggest possible value in
the column.
the column.
@item
@item
If you try to store a string that doesn't start with a number into a
If you try to store a string that doesn't start with a number into a
numerical column, MySQL will store 0 into it.
numerical column, MySQL will store 0 into it.
@item
@item
If you try to store @code{NULL} into a column that doesn't take
If you try to store @code{NULL} into a column that doesn't take
@code{NULL} values, MySQL will store 0 or @code{''} (empty
@code{NULL} values, MySQL will store 0 or @code{''} (empty
string) in it instead. (This behavior can, however, be changed with the
string) in it instead. (This behavior can, however, be changed with the
-DDONT_USE_DEFAULT_FIELDS compile option).
-DDONT_USE_DEFAULT_FIELDS compile option).
@item
@item
MySQL allows you to store some wrong date values into
MySQL allows you to store some wrong date values into
@code{DATE} and @code{DATETIME} columns. (Like 2000-02-31 or 2000-02-00).
@code{DATE} and @code{DATETIME} columns. (Like 2000-02-31 or 2000-02-00).
If the date is totally wrong, MySQL will store the special
If the date is totally wrong, MySQL will store the special
0000-00-00 date value in the column.
0000-00-00 date value in the column.
@item
@item
If you set an @code{enum} to an unsupported value, it will be set to
If you set an @code{enum} to an unsupported value, it will be set to
the error value 'empty string', with numeric value 0.
the error value 'empty string', with numeric value 0.
...
@@ -4448,15 +4474,18 @@ the error value 'empty string', with numeric value 0.
...
@@ -4448,15 +4474,18 @@ the error value 'empty string', with numeric value 0.
@item
@item
If you execute a @code{PROCEDURE} on a query that returns an empty set,
If you execute a @code{PROCEDURE} on a query that returns an empty set,
in some cases the @code{PROCEDURE} will not transform the columns.
in some cases the @code{PROCEDURE} will not transform the columns.
@item
@item
Creation of a table of type @code{MERGE} doesn't check if the underlying
Creation of a table of type @code{MERGE} doesn't check if the underlying
tables are of compatible types.
tables are of compatible types.
@item
@item
MySQL can't yet handle @code{NaN}, @code{-Inf} and @code{Inf}
MySQL can't yet handle @code{NaN}, @code{-Inf} and @code{Inf}
values in double. Using these will cause problems when trying to export
values in double. Using these will cause problems when trying to export
and import data. We should as an intermediate solution change @code{NaN} to
and import data. We should as an intermediate solution change @code{NaN} to
@code{NULL} (if possible) and @code{-Inf} and @code{Inf} to the
@code{NULL} (if possible) and @code{-Inf} and @code{Inf} to the
Minimum respective maximum possible @code{double} value.
Minimum respective maximum possible @code{double} value.
@item
@item
@code{LIMIT} on negative numbers are treated as big positive numbers.
@code{LIMIT} on negative numbers are treated as big positive numbers.
@end itemize
@end itemize
...
@@ -4470,11 +4499,14 @@ one among many tables that is locked with @code{LOCK TABLES}.
...
@@ -4470,11 +4499,14 @@ one among many tables that is locked with @code{LOCK TABLES}.
@item
@item
In the following case you can get a core dump:
In the following case you can get a core dump:
@enumerate
@itemize @minus
@item
@item
Delayed insert handler has pending inserts to a table.
Delayed insert handler has pending inserts to a table.
@item
@item
@code{LOCK table} with @code{WRITE}
@code{LOCK table} with @code{WRITE}
@item
@item
@code{FLUSH TABLES}
@code{FLUSH TABLES}
@end enumerate
@end enumerate
...
@@ -4496,6 +4528,7 @@ mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;
...
@@ -4496,6 +4528,7 @@ mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;
This will work because MySQL will not use index on expressions in
This will work because MySQL will not use index on expressions in
the @code{WHERE} clause.
the @code{WHERE} clause.
@item
@item
Before MySQL Version 3.23, all numeric types where treated as fixed-point
Before MySQL Version 3.23, all numeric types where treated as fixed-point
fields. That means you had to specify how many decimals a floating-point
fields. That means you had to specify how many decimals a floating-point
...
@@ -4545,10 +4578,13 @@ simple security, @code{mSQL} should be quicker at:
...
@@ -4545,10 +4578,13 @@ simple security, @code{mSQL} should be quicker at:
@item
@item
Tests that perform repeated connects and disconnects, running a very simple
Tests that perform repeated connects and disconnects, running a very simple
query during each connection.
query during each connection.
@item
@item
@code{INSERT} operations into very simple tables with few columns and keys.
@code{INSERT} operations into very simple tables with few columns and keys.
@item
@item
@code{CREATE TABLE} and @code{DROP TABLE}.
@code{CREATE TABLE} and @code{DROP TABLE}.
@item
@item
@code{SELECT} on something that isn't an index. (A table scan is very
@code{SELECT} on something that isn't an index. (A table scan is very
easy.)
easy.)
...
@@ -4564,20 +4600,27 @@ most other SQL implementations) on the following:
...
@@ -4564,20 +4600,27 @@ most other SQL implementations) on the following:
@itemize @bullet
@itemize @bullet
@item
@item
Complex @code{SELECT} operations.
Complex @code{SELECT} operations.
@item
@item
Retrieving large results (MySQL has a better, faster, and safer
Retrieving large results (MySQL has a better, faster, and safer
protocol).
protocol).
@item
@item
Tables with variable-length strings, because MySQL has more efficient
Tables with variable-length strings, because MySQL has more efficient
handling and can have indexes on @code{VARCHAR} columns.
handling and can have indexes on @code{VARCHAR} columns.
@item
@item
Handling tables with many columns.
Handling tables with many columns.
@item
@item
Handling tables with large record lengths.
Handling tables with large record lengths.
@item
@item
@code{SELECT} with many expressions.
@code{SELECT} with many expressions.
@item
@item
@code{SELECT} on large tables.
@code{SELECT} on large tables.
@item
@item
Handling many connections at the same time. MySQL is fully
Handling many connections at the same time. MySQL is fully
multi-threaded. Each connection has its own thread, which means that
multi-threaded. Each connection has its own thread, which means that
...
@@ -4587,6 +4630,7 @@ is established, all others must wait until the first has finished, regardless
...
@@ -4587,6 +4630,7 @@ is established, all others must wait until the first has finished, regardless
of whether the connection is running a query that is short or long. When the
of whether the connection is running a query that is short or long. When the
first connection terminates, the next can be served, while all the others wait
first connection terminates, the next can be served, while all the others wait
again, etc.
again, etc.
@item
@item
Joins.
Joins.
@code{mSQL} can become pathologically slow if you change the order of tables
@code{mSQL} can become pathologically slow if you change the order of tables
...
@@ -4596,10 +4640,13 @@ join optimizer to order tables in the optimal order. However, if you put the
...
@@ -4596,10 +4640,13 @@ join optimizer to order tables in the optimal order. However, if you put the
tables in exactly the right order in @code{mSQL}2 and the @code{WHERE} is
tables in exactly the right order in @code{mSQL}2 and the @code{WHERE} is
simple and uses index columns, the join will be relatively fast!
simple and uses index columns, the join will be relatively fast!
@xref{MySQL Benchmarks}.
@xref{MySQL Benchmarks}.
@item
@item
@code{ORDER BY} and @code{GROUP BY}.
@code{ORDER BY} and @code{GROUP BY}.
@item
@item
@code{DISTINCT}.
@code{DISTINCT}.
@item
@item
Using @code{TEXT} or @code{BLOB} columns.
Using @code{TEXT} or @code{BLOB} columns.
@end itemize
@end itemize
...
@@ -4619,6 +4666,7 @@ columns are retrieved, and there is no @code{WHERE} clause. @code{MIN()} and
...
@@ -4619,6 +4666,7 @@ columns are retrieved, and there is no @code{WHERE} clause. @code{MIN()} and
@item @code{INSERT} and @code{UPDATE} with calculations.
@item @code{INSERT} and @code{UPDATE} with calculations.
MySQL can do calculations in an @code{INSERT} or @code{UPDATE}.
MySQL can do calculations in an @code{INSERT} or @code{UPDATE}.
For example:
For example:
@example
@example
mysql> UPDATE SET x=x*10+y WHERE x<20;
mysql> UPDATE SET x=x*10+y WHERE x<20;
@end example
@end example
...
@@ -4645,6 +4693,7 @@ saving even one byte per record is very important.
...
@@ -4645,6 +4693,7 @@ saving even one byte per record is very important.
@code{mSQL2} has a more limited set of column types, so it is
@code{mSQL2} has a more limited set of column types, so it is
more difficult to get small tables.
more difficult to get small tables.
@item Stability
@item Stability
This is harder to judge objectively. For a discussion of MySQL
This is harder to judge objectively. For a discussion of MySQL
stability, see @ref{Stability}.
stability, see @ref{Stability}.
...
@@ -4666,18 +4715,23 @@ some added features.
...
@@ -4666,18 +4715,23 @@ some added features.
@item JDBC (Java)
@item JDBC (Java)
MySQL currently has a lot of different JDBC drivers:
MySQL currently has a lot of different JDBC drivers:
@itemize @bullet
@itemize @bullet
@item
@item
The mm driver: A type 4 JDBC driver by Mark Matthews
The mm driver: A type 4 JDBC driver by Mark Matthews
@email{mmatthew@@ecn.purdue.edu}. This is released under the LGPL.
@email{mmatthew@@ecn.purdue.edu}. This is released under the LGPL.
@item
@item
The Resin driver. This is a commercial JDBC driver released under open
The Resin driver. This is a commercial JDBC driver released under open
source. @uref{http://www.caucho.com/projects/jdbc-mysql/index.xtp}
source. @uref{http://www.caucho.com/projects/jdbc-mysql/index.xtp}
@item
@item
The gwe driver: A Java interface by GWE technologies (not supported anymore).
The gwe driver: A Java interface by GWE technologies (not supported anymore).
@item
@item
The jms driver: An improved gwe driver by Xiaokun Kelvin ZHU
The jms driver: An improved gwe driver by Xiaokun Kelvin ZHU
@email{X.Zhu@@brad.ac.uk} (not supported anymore).
@email{X.Zhu@@brad.ac.uk} (not supported anymore).
@item
@item
The twz driver: A type 4 JDBC driver by Terrence W. Zellers
The twz driver: A type 4 JDBC driver by Terrence W. Zellers
@email{zellert@@voicenet.com}. This is commercial but is free for private
@email{zellert@@voicenet.com}. This is commercial but is free for private
...
@@ -4739,29 +4793,35 @@ The conversion procedure is:
...
@@ -4739,29 +4793,35 @@ The conversion procedure is:
@item
@item
Run the shell script @code{msql2mysql} on the source. This requires the
Run the shell script @code{msql2mysql} on the source. This requires the
@code{replace} program, which is distributed with MySQL.
@code{replace} program, which is distributed with MySQL.
@item
@item
Compile.
Compile.
@item
@item
Fix all compiler errors.
Fix all compiler errors.
@end enumerate
@end enumerate
Differences between the @code{mSQL} C API and the MySQL C API are:
Differences between the @code{mSQL} C API and the MySQL C API are:
@itemize @bullet
@itemize @bullet
@item
@item
MySQL uses a @code{MYSQL} structure as a connection type (@code{mSQL}
MySQL uses a @code{MYSQL} structure as a connection type (@code{mSQL}
uses an @code{int}).
uses an @code{int}).
@item
@item
@code{mysql_connect()} takes a pointer to a @code{MYSQL} structure as a
@code{mysql_connect()} takes a pointer to a @code{MYSQL} structure as a
parameter. It is easy to define one globally or to use @code{malloc()} to get
parameter. It is easy to define one globally or to use @code{malloc()} to get
one.
one.
@code{mysql_connect()} also takes two parameters for specifying the
@code{mysql_connect()} also takes two parameters for specifying the user and
user and password. You may set these to @code{NULL, NULL} for default use.
password. You may set these to @code{NULL, NULL} for default use.
@item
@item
@code{mysql_error()} takes the @code{MYSQL} structure as a parameter. Just add
@code{mysql_error()} takes the @code{MYSQL} structure as a parameter. Just add
the parameter to your old @code{msql_error()} code if you are porting old code.
the parameter to your old @code{msql_error()} code if you are porting old code.
@item
@item
MySQL returns an error number and a text error message for all
MySQL returns an error number and a text error message for all
errors. @code{mSQL} returns only a text error message.
errors. @code{mSQL} returns only a text error message.
@item
@item
Some incompatibilities exist as a result of MySQL supporting
Some incompatibilities exist as a result of MySQL supporting
multiple connections to the server from the same process.
multiple connections to the server from the same process.
...
@@ -4783,21 +4843,27 @@ from the @code{mSQL} protocol are listed below:
...
@@ -4783,21 +4843,27 @@ from the @code{mSQL} protocol are listed below:
@itemize @bullet
@itemize @bullet
@item
@item
A message buffer may contain many result rows.
A message buffer may contain many result rows.
@item
@item
The message buffers are dynamically enlarged if the query or the
The message buffers are dynamically enlarged if the query or the
result is bigger than the current buffer, up to a configurable server and
result is bigger than the current buffer, up to a configurable server and
client limit.
client limit.
@item
@item
All packets are numbered to catch duplicated or missing packets.
All packets are numbered to catch duplicated or missing packets.
@item
@item
All column values are sent in ASCII. The lengths of columns and rows are sent
All column values are sent in ASCII. The lengths of columns and rows are sent
in packed binary coding (1, 2, or 3 bytes).
in packed binary coding (1, 2, or 3 bytes).
@item
@item
MySQL can read in the result unbuffered (without having to store the
MySQL can read in the result unbuffered (without having to store the
full set in the client).
full set in the client).
@item
@item
If a single read/write takes more than 30 seconds, the server closes
If a single read/write takes more than 30 seconds, the server closes
the connection.
the connection.
@item
@item
If a connection is idle for 8 hours, the server closes the connection.
If a connection is idle for 8 hours, the server closes the connection.
@end itemize
@end itemize
...
@@ -5115,20 +5181,20 @@ existing programs than PostgreSQL. @xref{Contrib}.
...
@@ -5115,20 +5181,20 @@ existing programs than PostgreSQL. @xref{Contrib}.
@item
@item
MySQL works on 24/7 heavy duty systems. In most circumstances
MySQL works on 24/7 heavy duty systems. In most circumstances
you never have to run any cleanups on
@code{MySQL}
. PostgreSQL doesn't
you never have to run any cleanups on
MySQL
. PostgreSQL doesn't
yet support 24/7 systems because you have to run @code{
vacuum
()}
yet support 24/7 systems because you have to run @code{
VACUUM
()}
once in a while to reclaim space from @code{UPDATE} and @code{DELETE}
once in a while to reclaim space from @code{UPDATE} and @code{DELETE}
commands and to perform statistics analyzes that are critical to get
commands and to perform statistics analyzes that are critical to get
good performance with PostgreSQL.
Vacuum is also needed after adding
good performance with PostgreSQL.
@code{VACUUM()} is also needed after
a lot of new rows to a table. On a busy system with lots of changes,
a
dding a
lot of new rows to a table. On a busy system with lots of changes,
vacuum must be run very frequently, in the worst cases even many times a
@code{VACUUM()} must be run very frequently, in the worst cases even
day. During the @code{vacuum()} run, which may take hours if the
many times a day. During the @code{VACUUM()} run, which may take hours
database is big, the database is from a production standpoint,
if the
database is big, the database is from a production standpoint,
practically dead. The PostgreSQL team has fixing this on their TODO,
practically dead. The PostgreSQL team has fixing this on their TODO,
but we assume that this is not an easy thing to fix permanently.
but we assume that this is not an easy thing to fix permanently.
@item
@item
A working, tested replication feature used by sites like
A working, tested replication feature used by sites like
:
@itemize @minus
@itemize @minus
@item Yahoo Finance (@uref{http://finance.yahoo.com})
@item Yahoo Finance (@uref{http://finance.yahoo.com})
@item Mobile.de (@uref{http://www.mobile.de/})
@item Mobile.de (@uref{http://www.mobile.de/})
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