I just changed back to the 'order by id LIMIT 5000' and I have not seen
further
corruption.

I also wanted to mention the other details about the system:
The system is running Linux 2.6.16.21-0.8-smp (SLES10)
    mysql-5.0.18-20.5

And I do grant that we probably need to change the key cache.

mysql> show status like 'key%';
+------------------------+-----------+
| Variable_name          | Value     |
+------------------------+-----------+
| Key_blocks_not_flushed | 0         |
| Key_blocks_unused      | 0         |
| Key_blocks_used        | 13396     |
| Key_read_requests      | 996090198 |
| Key_reads              | 26009940  |
| Key_write_requests     | 154990787 |
| Key_writes             | 59259346  |
+------------------------+-----------+
7 rows in set (0.00 sec)


# The MySQL server
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
#expire_logs_days = 1

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

I am open to other tuning also.

mark

Mark Dalton wrote:
> I am getting table corruption on one machine that I was testing a change
> to get better performance.
>
> This is using the C API to connect to the database.   With the delete
> without
> the sort by id,  I started getting the database key corruption.  There
> were about
> 2.6 million rows matched to be deleted, so I also limited to delete only
> normally less
> than 6000 at a time out of about 3.9 million rows.    It is still
> happening with 2.6 million
> records and 1.3 million marked for deletion.
>
> mysql> check table mzLog;
> +--------------+-------+----------+-------------------------------+
> | Table        | Op    | Msg_type | Msg_text                      |
> +--------------+-------+----------+-------------------------------+
> | mazama.mzLog | check | warning  | Table is marked as crashed    |
> | mazama.mzLog | check | error    | Found 2636585 keys of 2636586 |
> | mazama.mzLog | check | error    | Corrupt                       |
> +--------------+-------+----------+-------------------------------+
>
> My understanding was that if the table was locked write when deleting or
> writing that the keys should be safe.   Perhaps there is something else
> I could
> do to resolve this.
>
> 1. Add a entry:
>          Lock the table..
>               add a entry
>          unlock the table
>
> or
> 2. Delete old entries no longer needed.
>          lock
>          Count the number of entries that match.
>          unlock
>          Lock the table
>             delete any logs marked for deletion up to 5000 at a time
>                     (previously I did a sort by id LIMIT 5000), but the
>                       sort was taking too much time, since 2.7 million
> records
>                        matched).
>          unlock table
>
> or
> 3. List/search/query entries.
>           lock
>               count the number of matches (since we need to take a
> limited number at time)
>            unlock
>            lock
>                 query (perhaps loop with taking 5000 matches at a time
> in get the next with the last id).
>            unlock
>
>
>   
> ------------------------------------------------------------------------
>
>


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to