dポイントプレゼントキャンペーン実施中!

mysql(mariaDB)の保管文字数について、伺いたいと思い、質問しました。
PHPを利用して、ブログのシステムを作成したのですが、

HTMLはテンプレートを利用するとして、
記事本文mysqlに保存をして、引っ張ってくる、
そうすれば、記事の検索等に利用できるな・・・。

と、考えていたのですが、そもそも、mysqlというのは、何文字程度保管出来るものなのでしょうか?、
「リファレンスを見なさい」という意見をネットで見かけたのですが、
容量の調べ方が判らずに、行き詰っています。
(見ても、専門用語が並んでおり、「結局、総合計何文字保管出来るのか」ということが理解できませんでした。)

例えば「3000文字の記事が何本格納できるのか・・?」という、具体的な答えが知りたいのですが。

windowsローカルのxamppの場合はどれくらいでしょうか?(HDD160GBのノートPCと仮定します)、
centOSの場合はどれくらいでしょうか?(HDD容量50GBと仮定します)
xサーバーの10GB契約の場合はどれくらいでしょうか?

私がデータベース関連の知識は初心者なので、出来るだけ素人にも判るような表現でご回答頂けると、とても助かります。
(「○文字の記事が、○本格納出来る」という具合です)
「○○が判らなくて答えられない」という場合、それも仮定の表現でお答え頂けると有り難いです
今回の質問は「一記事の限界文字数」ではなく「全体の限界文字数」ですので、宜しくお願い致します。


mysql(mariaDB)の格納文字数はどれくらいなのか?について、
ご存知の方はいらっしゃいましたら、ご回答宜しくお願い致します。

質問者からの補足コメント

  • 仮定の話ですが、「文字コードは何だろう?」という場合、
    「UTF-8が今は主流だから、UTF-8と仮定して話を進めよう・・、」

    という具合に、不明確な部分については、私も提示できるのか不安が残りますので。
    仮定の話ということで、お話を進めて頂きたいと思っております。
    (文字コードが容量に関係するかは全く判りませんが、例え話として、提示させて頂きました)

      補足日時:2018/07/11 20:36

A 回答 (2件)

データベースがどのくらいの情報を格納できるか、と問われたら、ディスクが満たされるまで、としか表現できないでしょうね。



そもそもテーブルはレコード長によって1行に必要となる容量が決定されます。
加えて、可変長型によって1行に必要となる容量は左右されます。

当たり前ですが、インデックス情報などでもディスク容量は食うわけですし、トランザクション処理、バイナリログなどでも当然食います。
また、断片化によってディスク容量を圧迫しますし、『必ずこの文字数は格納できる』という保証はありません。

各テーブルの各列項目の型および桁数、文字エンコーディングが分かればそれ相応の想定容量を
導き出せるかもしれませんが、それを保証することはムリです。

例えばUTF-8でテーブルを作成してVARCHAR(1)を利用する時でさえ、以下のように消費容量は異なります。(MySQL5.6の場合)
> UTF-8 の概念は、長さの異なるバイトシーケンスを使用してさまざまな Unicode 文字をエンコードする
> というものです。
>
> 基本的なラテン文字、数字、句読点は 1 バイトを使用します。
>
> 拡張ラテン文字 (チルダ、長音符号、アキュート、グラーヴェ、およびほかのアクセント符号)、キリル
> 文字、ギリシャ語、アルメニア語、ヘブライ語、アラビア語、シリア語などのほとんどのヨーロッパおよ
> び中東のスクリプト文字は、2 バイトシーケンスに収まります。


話を超絶簡単にして以下を仮定とした時、格納可能な文字数は150GB分です。
 ・『純粋なデータの格納において』150GB分を割くことができる。
 ・テーブルは1テーブルしかない。
 ・VARCHAR(1)定義の1カラムしかない。
 ・1カラムには数字1文字しか入らない。
 ・上記仮定において、1レコードの登録として1バイト消費しかない。

ディスク容量が150GBだった時、先にも述べていますが、データ格納だけでディスク容量を消費するわけではないので、150GB分の格納はムリです。

こんなことを正確に導き出すなんてことは、Oracleですら分からないのでは。


スマホの販売とかで、16GB=1000万画素で約3072枚 みたいな定義がありますが、『約』と記されています。
それは、画素数だけで容量が決まるわけではないからです。
完全に全方位が白または黒、という写真が何枚という超極端な例でなければ正確な枚数は算出できません。


単純にこれから記事を多く投入していきたいから容量の目安が知りたいということであれば、
まずは1レコードで何バイト分消費するかどうかから1記事分の容量を積算し、更に何件登録するかを
積算してみてはいかがでしょう。
1記事目に1000万バイト消費し、2記事目に1バイトしか消費しないとは想定しないですよね?
平均値を取るなり、これから投入するであろう情報から想定の最大容量を判断して必要容量を決めます。
とすれば、それを超えた容量がなければムリ、もしくはそろそろ限界ということになります。

いずれ容量が逼迫した時にそのまま何も変更を加えず運用を続けたい場合は、ディスクをスケールアップするしかありません。
    • good
    • 0
この回答へのお礼

とても的確なご回答で、またこれから調べてみたい内容が含まれていて、とても助かります。
断片的な単語を調べることで、行き着きたい答えにたどり着くことができました。

>まずは1レコードで何バイト分消費するかどうかから1記事分の容量を積算し、更に何件登録するかを
積算してみてはいかがでしょう。

この部分も、まさにその通りですね、そして、全体の容量を調べればよいのですね、
何故そんなことが浮ばなかったのか、少しは自分で考えねばならないと反省しました。

ご回答ありがとうございました。

お礼日時:2018/07/13 19:36

HDDの容量だけじゃ分かんないですね


他にどんだけ使用しているのか分かりませんしMySQLのバージョンも分かりませんし

ま、画像やzipファイルなんかも入るので最大文字数は気にしなくて良いと思います。

http://www.itmedia.co.jp/enterprise/0309/24/epn2 …
    • good
    • 0
この回答へのお礼

>「○○が判らなくて答えられない」という場合、それも仮定の表現でお答え頂けると有り難いです

と、質問本文にて記載してある通り、判らない部分は仮定でお答えして頂ければ幸いです。
「どの部分が判れば良いのか」に関しても、教えて頂けるならば有りがたいのですが、

それを知った所で、私にそれを調べて提示できるかと言うと、不安が残ります、
なので

>「○○が判らなくて答えられない」という場合、それも仮定の表現でお答え頂け・・・

という質問内容に達しました。
「回答者様のお使いの環境なら、デフォルトで何文字格納出来ますか?」と、
質問内容を「ご自身のこと」と、置き換えて頂いても構いません。


「Xサーバー10GB契約の場合」と、質問内容にて、具体的な全てを示す条件を提示している上に、
「判らない部分は仮定の話で置き換えてください」と言っている通り、

「どうしても答えられない」という質問内容にはなっていないと自負しております。


以上の事柄を踏まえて頂きまして、質問内容について具体的にご存知でしたら、
再度のご回答を宜しくお願い致します。

ご回答ありがとうございました。

お礼日時:2018/07/11 20:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す