[前][次][番号順一覧][スレッド一覧]

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]