PEAK XOOPS - Maintenance for MySQL in englishin japanese

Archive | RSS |
XOOPS
XOOPS : Maintenance for MySQL
Poster : GIJOE on 2006-08-18 04:54:20 (9406 reads)

I've found many queries like


DELETE FROM xp_session WHERE sess_updated < 1151347298;

in /var/log/mysql_slow_queries

Certainly, the table of session is write/delete much frequently.
It cause fragmentation of the table.

"mysqlcheck -o --all-databases" reduces the size of session.MYD from 628932byte to 174648byte.

Moreover "mysqlcheck -a --all-databases" reports the indexes of session table is not "up to date". It must make this site slow.

Though I don't know why the index of session table is broken, we have to maintain the table periodically.


30 6 * * * /usr/bin/mysqlcheck -a --all-databases > /dev/null 2>&1
45 6 * * 0 /usr/bin/mysqlcheck -o --all-databases > /dev/null 2>&1


Printer friendly page Send this story to a friend

Comments list

gusagi  Posted on 2006/8/22 0:05
Quote:
ちょっと誤解を招く書き方ですみません。
実際にそういう現象があるのであれば、DBの混雑具合によらず、Optimizeをしない、というのが一番ですね、という意味です。
だって、MYDが壊れるのはさすがにシャレになりません。
こちらこそ、書き方がまずかったですね^^;
通常のサイトであれば、Optimizeで問題ないと思います。
ただ、アクセスが集中している状態(メルマガを発行しているサイトで、メルマガ発行直後とか)でOptimizeをかける場合だけリスクがあるので、cronの設定時間に気をつける必要がある、と書けば良かったですね。
(そもそも、cron自体、深夜とかに設定する人が多いか

逆に、Optimizeをかけないでパフォーマンスが劣化してく方が普通にありうるので、定期的にOptimizeをかけることは全面的に賛成です。
GIJOE  Posted on 2006/8/21 4:12
Quote:
「テーブルロックしてるはずなのに、Optimize直後からデータが壊れていた」&「Optimizeは稀にデータを壊す、という情報を聞きかじっていた」ので、Optimizeを悪者にしていました
ちょっと誤解を招く書き方ですみません。
実際にそういう現象があるのであれば、DBの混雑具合によらず、Optimizeをしない、というのが一番ですね、という意味です。
だって、MYDが壊れるのはさすがにシャレになりません。

だから、cronでは、インデックスチェックだけをやりましょう。
Optimizeについてはとりあえずやめましょう、というスタンスで
gusagi  Posted on 2006/8/20 20:59
Quote:
う〜ん。
いくらなんでもそれは、MySQLかファイルシステムに問題があるのでは?
やっぱりそうですかね^^;
「テーブルロックしてるはずなのに、Optimize直後からデータが壊れていた」&「Optimizeは稀にデータを壊す、という情報を聞きかじっていた」ので、Optimizeを悪者にしていました
GIJOE  Posted on 2006/8/20 13:05
Quote:
書き込み(Insert / Update / Delete)が頻繁に行われているテーブルにOptimizeをかけると、稀にですがテーブル内の情報がおかしくなる場合があった気がするので。
う〜ん。
いくらなんでもそれは、MySQLかファイルシステムに問題があるのでは?

MySQLは3.23でも、テーブル単位のロックは持っているので、Optimize(ロック)中にINSERT/UPDATE/DELETEが来ても処理しないでしょう。

それはともかく、今回のsessionテーブルで一番の問題は、OptimizeよりもIndex破損の方ですね。MYIファイルの方なら、最悪、完全に壊れても復旧可能なので、-a の方を高い頻度で行うべきか?
gusagi  Posted on 2006/8/18 20:30
アクセスの少ない時間の方が良いですよね(’’)
書き込み(Insert / Update / Delete)が頻繁に行われているテーブルにOptimizeをかけると、稀にですがテーブル内の情報がおかしくなる場合があった気がするので。(仕事で、そんな現象が。。。)
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!