mysql:9591
From: Jun Moriya <Jun Moriya <jmoriya@xxxxxxxxxx>>
Date: Thu, 10 Jun 2004 22:47:32 +0900
Subject: [mysql 09591] Re: MySQLの問題点(PostgreSQLカンファレンスにて)
もりやです。 At Mon, 7 Jun 2004 21:26:21 +0900 とみたまさひろ <20040607212621.597663ab.tommy@xxxxxxxxxx> wrote: > >> 私もググってみたところ以下の文献で >> http://jp.xoops.org/modules/newbb/viewtopic.php?topic_id=3565&forum=11 >> >> Re: フォーラム(newbb)の内容が表示されない >> 私のところでも確認しました。 >> どうもMySQLで3.xから4.Xに上げると >> 一部実ファイルが壊れてしまうようです。 >> (xoops_posts_text ,xoops_postは確認しました。) >> データ形式が変わるのでしっかりコンバートしないといけないのか >> それともコンバートすると駄目だったのかちょっと確認しないと・・・。 >> >> というのを見つけました。 > >「データが壊れる」というのは、どのレイヤで壊れたってことなんでしょうか >ね。リンク先の情報だけでは良くわかりません。 元記事読んでいないのと、元記事にフォーラムとは書いていないですが、 "フォーラム(newbb)の内容が表示されない"とあわせて、 アプリレイヤが一番可能性が高いと思います。 つまり、MySQLは正常。 CREATE TABLE bb_posts ( post_id int(8) unsigned NOT NULL auto_increment, pid int(8) NOT NULL default '0', ..省略 PRIMARY KEY (post_id), KEY uid (uid), KEY pid (pid), KEY subject (subject(40)), KEY forumid_uid (forum_id, uid), KEY topicid_uid (topic_id, uid), KEY topicid_postid_pid (topic_id, post_id, pid), FULLTEXT KEY search (subject) ) TYPE=MyISAM; CREATE TABLE xoops_bb_posts_text ( post_id int(8) unsigned NOT NULL auto_increment, post_text text, PRIMARY KEY (post_id), FULLTEXT KEY search (post_text) ) TYPE=MyISAM; #他にも、thread用のtableありますが、可能性低いので省略 で、「データが壊れた」..の可能性として、高い順から 1) この1つのForum POSTで tableが2つになっている構造のため、 MySQLとしては正常だが、アプリとしては、整合性が取れていないので、 エラーとなっている。(対応するPOST本文がないなど) 実際には、dbは正常なのでdbレベルでのエラー表示はなく、 単にそのPOSTがなくなったように見える状態だったかな? たぶん、スレッドは見えるけど、中身が見えないのがこの状態。 この分離構造は phpbb 1.xのもので、 (phpbbをforkしたものからのfork) xoopsがphpnuke -> myphpnuke -> xoopsのfork時のphpbb version 1xから そのままの構造になっているという流れの為です。 不必要で、いいとは思いませんが、INSERT時に、mysql_insert_id()で 取得しているので、通常は問題は発生しません。 ただ、整合性のために常に複数のSQLになるので、 元記事が、ストレスツール、自動テストツールなどでテストした場合には、 1つのSQLでのMySQL任せに比べると高い確率で発生すると思います。 あとは、使っていない(MATCH..AGAINSTなし) FULLTEXT 生成? これが、"どうもMySQLで3.xから4.Xに上げると" という部分に関係あるのかも。 2)インデックスが壊れた。 修復しても、1)の状態だと、ユーザーからみたら、フォーラムは壊れている状態。 多くのユーザーがdbの状態を確認するのに、phpmyadminを使い、 phpmyadminだとインデックスエラーの時にも "tableは使われています"などの固定エラーしか出ないので、 1)か2)なのかがレポートからは分かりにくい状態です。 XXXXXXのtableは確認しました..というのは、 phpmyadminではそのtableのfieldのデータは見えている。 (インデックスが壊れていれば見えない) => MySQLとしては正常 => アプリレイヤの問題 と考えるしかないですね。 フォーラムを再インストールしましたというのは、 その時点のMySQL Versionの db上で、TABLEを削除して(データとも)、 SQL文で再度 CREATE TABLEから行なったということです。 なので、この時点ではアプリ上での整合性は取れています。 しっかりコンバート???の意味はよく分かりません。 3)回復不可能。完全に壊れた。 なので、 通常よりは壊れやすい構造を持ったアプリが、たまたま壊れた。 アプリ上か、インデックスかは不明。 どちらも、ユーザーからみると、「壊れている」状態。 ここから、MySQLが...と判断するには、無理がある感じ。 元記事分かりませんが、db比較なら、adodbなど複数db対応 db layerを使ったアプリで、同じ条件でやる必要があるし。 実スクリプトでの耐久テストなら、別な要因が少なく、大きなサイトの 事例も多い、Forum系でやるべきだし。 #ロックは別話 > >> これは、MySQL4.xのMyISAMの問題なのか。もしそうであればMySQL AB >> に改善をお願いしないといけない点のように思います。 PHP+MySQLで、 xoopsなどのphpnuke系、他のCMS系、VB, IPBなどのForum系で MySQL4.x MyISAMの問題はないと思います。 > >myisamchk で修復しないといけないような状態なら MySQL の問題ですね。そ >うでなくて、XOOPS でちゃんと動かないというだけなら、単純に XOOPS が >MySQL 4.0.X に対応していないという問題かもしれませんし。 どちらでもないですかね。 4.xの機能は使っていません。 他のスクリプトも同様ですが、同じものが、3.x(の最後)と4.xで動くのが殆ど で、特に問題はないと思います。 (db自体のアップグレードをちゃんとやるかは、ユーザーの問題) 他のスクリプトの場合だと、db layerで3x 4xと別になっているものがあります。 この3x,4x両方対応は、スクリプトの対象である、共有サーバー、専用サーバー (どちらもデータセンターがパッケージで構築する)の一部がまだ3.xだからだ と思います。新規設置時は4.xなので、殆ど4.xですが。
9539 2004-06-07 13:23 ["Ryuichiro Munechika] MySQLの問題点(PostgreSQLカンファレンスにて) 9540 2004-06-07 13:40 ┣[Hidekazu Ikeda <hike] 9542 2004-06-07 17:01 ┃┗["Ryuichiro Munechika] 9543 2004-06-07 17:08 ┃ ┣[<yasuyuki@xxxxxxxxxx] 9544 2004-06-07 17:38 ┃ ┃┗["Ryuichiro Munechika] 9545 2004-06-07 18:09 ┃ ┃ ┗[<yasuyuki@xxxxxxxxxx] 9553 2004-06-07 21:22 ┃ ┃ ┣["Ryuichiro Munechika] 9555 2004-06-07 22:02 ┃ ┃ ┗[UNO Shintaro <uno@xx] 9546 2004-06-07 18:55 ┃ ┗[Hidekazu Ikeda <hike] 9552 2004-06-07 21:19 ┃ ┗["Ryuichiro Munechika] 9549 2004-06-07 20:46 ┣[<takeshi@xxxxxxxxxx>] 9551 2004-06-07 21:16 ┃┗["Ryuichiro Munechika] 9563 2004-06-07 23:44 ┃ ┗[Sumito_Oda <oda@xxxx] 9554 2004-06-07 21:26 ┣[とみたまさひろ <tomm] 9557 2004-06-07 22:12 ┃┣[<takeshi@xxxxxxxxxx>] 9558 2004-06-07 22:22 ┃┣["TAKT Co.,ltd." <t@x] 9562 2004-06-07 23:38 ┃┃┗[<takeshi@xxxxxxxxxx>] Re: MySQL 4.1.2 の日本語の扱い(Re: MySQLの問題点) 9579 2004-06-09 08:32 ┃┃ ┣[Yukihiro KAWADA <kaw] 9626 2004-06-13 18:18 ┃┃ ┣[Hirofumi Fujiwara <f] Re: MySQL 4.1.2 の日本語の扱い 9688 2004-06-18 10:02 ┃┃ ┗[<takeshi@xxxxxxxxxx>] MySQL 4.1.2 の char と日本語 (Re: MySQL 4.1.2 の日本語の扱い) 9700 2004-06-23 09:47 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 9702 2004-06-23 10:39 ┃┃ ┗[Hirofumi Fujiwara <f] Re: MySQL 4.1.2 の char と日本語 9703 2004-06-23 10:57 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 9720 2004-06-29 18:27 ┃┃ ┗[Hirofumi Fujiwara <f] 9729 2004-07-01 11:40 ┃┃ ┣[<takeshi@xxxxxxxxxx>] 9733 2004-07-01 16:24 ┃┃ ┃┗[Hirofumi Fujiwara <f] 9730 2004-07-01 12:47 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 4.1 と UTF-8 (Re: MySQL 4.1.2 の char と日本語) 9732 2004-07-01 15:04 ┃┃ ┣[IWAMURO Motonori <vm] 9735 2004-07-01 19:48 ┃┃ ┃┗[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9758 2004-07-02 22:26 ┃┃ ┃ ┣[<takeshi@xxxxxxxxxx>] 9760 2004-07-02 22:39 ┃┃ ┃ ┃┗["Ryuichiro Munechika] 9768 2004-07-03 18:06 ┃┃ ┃ ┃ ┗[Hirofumi Fujiwara <f] 9764 2004-07-03 06:24 ┃┃ ┃ ┗[Shuichi Tamagawa <sh] 9774 2004-07-05 11:59 ┃┃ ┃ ┗[Hirofumi Fujiwara <f] 9734 2004-07-01 19:23 ┃┃ ┣[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9757 2004-07-02 21:19 ┃┃ ┃┗[<takeshi@xxxxxxxxxx>] 9769 2004-07-03 19:27 ┃┃ ┃ ┗[Hirofumi Fujiwara <f] 9806 2004-07-10 14:04 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 9828 2004-07-12 17:19 ┃┃ ┣[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9843 2004-07-13 15:31 ┃┃ ┗[Shuichi Tamagawa <sh] 9865 2004-07-15 15:55 ┃┃ ┗[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9868 2004-07-16 03:52 ┃┃ ┗[Shuichi Tamagawa <sh] 9559 2004-06-07 22:46 ┃┣["Ryuichiro Munechika] 9569 2004-06-08 09:40 ┃┃┣[Hidekazu Ikeda <hike] 9577 2004-06-08 22:48 ┃┃┗[とみたまさひろ <tomm] 9627 2004-06-13 22:02 ┃┃ ┗[Hirofumi Fujiwara <f] -> 9591 2004-06-10 22:47 ┃┗[Jun Moriya <jmoriya@] 9565 2004-06-08 08:59 ┗[yoshi <yosihisa@xxxx] 9566 2004-06-08 09:11 ┗[Hidekazu Ikeda <hike] 9568 2004-06-08 09:32 ┗[yoshi <yosihisa@xxxx] 9570 2004-06-08 09:47 ┗[Hidekazu Ikeda <hike] 9571 2004-06-08 10:26 ┗[yasuyuki <yasuyuki@x] 9572 2004-06-08 10:37 ┗[Hidekazu Ikeda <hike] 9574 2004-06-08 11:58 ┗[えんどう <yasuyuki@x] 9575 2004-06-08 15:22 ┣["Ryuichiro Munechika] 9613 2004-06-12 22:10 ┃┗[とみたまさひろ <tomm] 9576 2004-06-08 20:19 ┗[Hidekazu Ikeda <hike]