プラグイン > 開発について > TABLE設計 |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
claimmer |
投稿日時: 2012/7/27 13:59
対応状況: −−−
|
新米 登録日: 2012/7/27 居住地: 投稿: 4 |
TABLE設計 1TableでTEXT/BLOBを多用するのはどうかと思う。
もう少しTableのRowSizeを抑えるように、TABLEを細分化出来ないだろうか? ERROR 1005 (HY000): Can't create table 'database_name.dtb_order' (errno: 140) mysql> show warnings; +---------+------+----------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------+ | Warning | 1296 | Got error 738 'Record too big' from NDB | | Error | 1005 | Can't create table 'database_name.dtb_order' (errno: 140) | +---------+------+----------------------------------------------------------------+ 2 rows in set (0.00 sec) |
nanasess |
投稿日時: 2012/7/27 14:12
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: TABLE設計 引用:
おっしゃる通りです. 個人的には, しっかり正規化して, 桁数も厳密にしたいんですが「テーブルを細分化するとカスタマイズしにくいよ」とか,「VARCHAR より TEXT の方がパフォーマンスいいよ」とかいう意見もあり, 賛否両論なんです... あと, 2.12 時点では, BLOB は使用していませんね. CLOB に相当するようなカラムはありますが. |
seasoft |
投稿日時: 2012/7/27 14:21
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: TABLE設計 > 1TableでTEXT/BLOBを多用するのはどうかと思う。
個人的には、あまり気にしないです。(***01, ***02 の類とか、若干気になったこともありますが。) なお、2.4 → 2.11 では、減ったと記憶しています。 そもそもの動機がよく分からないのですが、クラスター構成に失敗したとかでしょうか? それとも、設計思想的な話しでしょうか? > もう少しTableのRowSizeを抑えるように、TABLEを細分化出来ないだろうか? 具体的な数値 (現状・目標値) が挙げられていると、話しが展開しやすいのかなと感じました。 何れにしても、2.12.x での改修は難しい内容になると思いますが、将来に向けた方向性を明らかにしておくのは良いですね。
|
claimmer |
投稿日時: 2012/7/27 14:38
対応状況: −−−
|
新米 登録日: 2012/7/27 居住地: 投稿: 4 |
Re: TABLE設計 毎度、お世話になってます。
>そもそもの動機がよく分からないのですが、クラスター構成に失敗したとかでしょうか? それとも、設計思想的な話しでしょうか? 動機は現在利用しているEC-CUBEの高可用性を管理者より求められており、MySQLClusterの導入を検討しています。 >具体的な数値 (現状・目標値) が挙げられていると、話しが展開しやすいのかなと感じました。 上記の事から具体的な数値としては、TableRowSizeをNDB制限値8KBに収まるように設計して欲しいと言う個人的な要望です。 |
seasoft |
投稿日時: 2012/7/27 15:12
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: TABLE設計 > 動機は現在利用しているEC-CUBEの高可用性を管理者より求められており、MySQLClusterの導入を検討しています。
なるほど。了解です。 MySQL クラスターで使用しているといった話しも、時折耳にするのですが、そういった方はどうしているのですかね。NDB 以外の選択肢なんですかね。(情報お持ちの方、是非教えて下さい。) > >具体的な数値 (現状・目標値) が挙げられていると、話しが展開しやすいのかなと感じました。 > > 上記の事から具体的な数値としては、TableRowSizeをNDB制限値8KBに収まるように設計して欲しいと言う個人的な要望です。 目標値は承知いたしました。 不勉強にて恐縮なのですが、EC-CUBE の現状がどうかなどは分かりますでしょうか? また、1列の TEXT が TableRowSize をどの程度使用するか分かりますでしょうか? 【追記】 TEXT = 264 バイトらしいですね。そうすると、現状は1万程度ありそうですね。 そうすると、個別サイトのカスタマイズとしては、小手先で列の定義変更で対応できそうなレベルではありますね。
|
claimmer |
投稿日時: 2012/7/27 15:32
対応状況: −−−
|
新米 登録日: 2012/7/27 居住地: 投稿: 4 |
Re: TABLE設計 >不勉強にて恐縮なのですが、EC-CUBE の現状がどうかなどは分かりますでしょうか?
現在、EC-CUBE ver.2.3.3を使用しています。 >また、1列の TEXT が TableRowSize をどの程度使用するか分かりますでしょうか? >【追記】264 バイトらしいですね。そうすると、現状は1万ちょいありそうですね。 おっしゃる通り、264バイトです。 実データは内部的に本TABLEとは別の場所に確保され管理されるようですが、 ヘッダとして264バイトは本TABLE上で使用されます。 よって、8KB制限下において1TABLEで使用できるTEXT型は、30カラムが限界となります。 ※MySQLCluster7.0.x以降は、NDB Large Row Supportがされていて制限値は14KBまで拡張されていますが、それでも50カラムが限界ですね。 |
seasoft |
投稿日時: 2012/7/27 16:07
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: TABLE設計 > >不勉強にて恐縮なのですが、EC-CUBE の現状がどうかなどは分かりますでしょうか?
> > 現在、EC-CUBE ver.2.3.3を使用しています。 現状の TableRowSize の値という意味でした。 しかし、2.4 系以前となりますと、ザックリ感で結構大きそうですね・・・ 2.11 系以降だと、電話番号・FAX番号・郵便番号の辺りの定義を調整するだけで、容易にクリアできそうな感じですが・・・
|
claimmer |
投稿日時: 2012/7/27 16:21
対応状況: −−−
|
新米 登録日: 2012/7/27 居住地: 投稿: 4 |
Re: TABLE設計 >2.11 系以降だと、電話番号・FAX番号・郵便番号の辺りの定義を調整するだけで、容易にクリアできそうな感じですが・・・
確かに、電話番号・FAX番号・郵便番号をTEXTで宣言はちょっと節操なさすぎな感じがしますね。 何れにせよ、固定長に調整できそうなカラムをいじればクリア出来そうです。 画面I/F側での入力制限は別途設けなければならないですけど。。。 ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |