質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

6回答

2661閲覧

ブログサイトを作る時、mysqlは、varchar型、text型、あるいは、どのようにしますか?

kyabetsu

総合スコア47

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

1グッド

1クリップ

投稿2018/07/15 09:58

編集2018/07/15 10:01

mysqlの知識については、レコードを削除、更新程度、PHPとの連動・・。
は出来る程度で、チューニング等については全く知識が無く、
専門的な用語については理解すら出来ないかもしれないド素人と言ってよいです、

windows7のローカル環境xamppを使って実験していますが、
そちらでの実験がある程度終われば、centOSや、レンタルサーバー等に以降しようと考えているので、
それらを踏まえて、タグ付けを行いました。

といった環境の中、ブログの簡易システムを作成しているのですが、行き詰ってしまいました。

まず、人気のブログサイト等を調べてみると、文字数が2000文字程度だったり、
5000文字、そして、10000文字程度なんていうのも、ザラにあるようでした、

と、いうことはDB(mysql(mariaDB))の方は、varchar(10000)とでも、しておくべきでしょうか?。

あるいは、text型を使うべきでしょうか?。

あるいは、一つのテーブルの中に、varchar(3000),varchar(6000)varchar(10000)、
と、それぞれの長さに対応したカラムを作成して、記事の長さによって」、格納場所を分けるべきでしょうか?。

あるいは、テーブル毎分けてしまったほうがよいのでしょうか?。
それとも、他になにか方法があったりするのでしょうか?。

varchar(10000)や、varchar(5000)という単位を指定することも、
text型を使うことも、否定的な意見が沢山あるようで、
かといって、2000~10000文字の記事をランダムに投稿する場合はどうする・。
といった、具体的な答えを探すこともできませんでした。

2000~10000文字の記事を、毎日ランダムに格納することを想定した場合。
varchar型、text型、カラムを分けて作るか、テーブルは分けるかどうか、

アクセス(表示)速度や、今後の管理のし易さ等も踏まえて、

適切な方法をご存知の型がいらっしゃいましたら、
是非ともご回答宜しくお願い致します。

//以下は補足です
文章を入力、送信したら、タグの挿入、テンプレートとの結合etc・・、
HTMLページを自動で生成する、といった入力フォームを作成したので、

DBはどのように運用するか、迷っている状態です。

aaaaaaaa👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyabetsu

2018/07/16 08:15

間違えて自己解決フォームに書いてしまいました、すみません。
kyabetsu

2018/07/16 08:19

質問を編集するボタンから、どのよう質問の答えが落ち着いたのか、記入しました。
guest

回答6

0

まず、「カラムやテーブルを分けて作る」という選択肢は、よほど特殊な事情がない限り、いちばんありえない範疇のものです。同じ意味合いのものを別な列に分けて入れてしまえば、あとあと処理が煩雑になるだけで、きわめてハンドリングしづらいデータベースとなります。

そして、MySQLでInnoDBを使う場合(最近はデフォルトでInnoDBになっています)は、VARCHARでもTEXTでも、保存した分以上の容量は取りません。

  • 65536文字以上になる場合はVARCHARにできないので、MEDIUMTEXTしか選択肢がありません。
  • それ以下でも、MySQLのバージョンや設定によっては、TEXTの中身を除いて1行あたり65536バイトまでという制限があるので、VARCHARでは入らないことがあります。

varchar(10000)や、varchar(5000)という単位を指定することも、

text型を使うことも、否定的な意見が沢山あるようで、

こちらですが、どのような理由での意見なのかをよく確認しましょう。たとえば「MYISAMの特性」であればInnoDBを使う分には無関係ですし、「TEXTにはインデックスを付けるのに手間がかかる」というのも、記事本文に対して先頭一致のインデックスは通常付与しないので、気にしなくて構いません。

投稿2018/07/15 10:31

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyabetsu

2018/07/15 10:47

質問本文にて >専門的な用語については理解すら出来ないかもしれないド素人と言ってよいです と言っていることを前提にして聞いて頂きたいのですが、 >InnoDBを使う場合(最近はデフォルトでInnoDBになっています) に関しては、「聞いたことがある」程度には知っているのですが、 InnoDBというのが、どういう特性を持っているのか、 素人には聞いても調べても、よくわかりませんでいた。 なので、 >どのような理由での意見なのかをよく確認しましょう。 ということに目を通しても、「文章の意味が理解出来ない」というのが正直な所です。 MYISAMというのも、調べてみましたが、理解出来ませんでした。 本当は、先に勉強をして、知識を固めるべきなのかもしれません ですが、形だけは、「DBに文章を格納する」というシステムを作りたいので・・、 (貯めているライティングをHTMLに格納して、プログラムやデザインといった基盤を固めておきたい為です) その為に、mysql(MariaDB)の設定はInnoDB含め、デフォルトという前提で、 2000~10000の記事をランダムに格納する、 ブログ記事に該当するカラムには、どんな型を設定しておけばよいのか、 それが知りたくて質問させて頂きましたので、 その一点だけでも、具体的に、「○○の型に設定しておけばよい」と、お答え頂けると嬉しいです、 宜しくお願い致します。
maisumakun

2018/07/15 11:05

はっきり言いますが、そういう「すぐに答えを求める姿勢」がよくないです。 似たような意味のある機能が複数ある場合、「名前の違いだけで全く同じ」あるいは「片方には問題があって、互換性のために残っているだけ」という例を除けば、機能としての違いが存在するものなので、その違いを踏まえて、自ら判断すべきものです。 それを、「単位を指定することに否定的」とか「TEXTは良くない」とか断片的な情報に踊らされることで、「列やテーブルを分ける」という、もっと良くない設計に向かおうとしてしまったわけです。
kyabetsu

2018/07/15 12:23

>すぐに答えを求める姿勢 Q&Aサイトという概念は、「答えを求めて質問する」 で問題ないと思いますよ?。 「調べたらすぐ出てくる」という程度のならば、 「くだらない質問で、検索履歴を圧迫するな」という声も理解できますが。 「すぐに答えを求める」ことによって、 その答えを見た、その他の方々の解決策になるのですから、 それこそが「ネットを解さずに、マンツーマンで教える」こととの圧倒的な違いでしょう。 Q&Aサイトのメリットの真髄であるからして。 >すぐに答えを求める姿勢 で、全然OKだと理解しております。 >それを、「単位を指定することに否定的」とか「TEXTは良くない」とか断片的な情報に踊らされることで、「列やテーブルを分ける」という、もっと良くない設計に向かおうとしてしまったわけです。 えっと、向かおうとしていませんよ?、 言いたいことは、「様々な可能性が考慮されますが、他になにか方法があったとしても、教えて頂きたい」ということです。 それを言う為に、例として、「そんな訳ない」と判りながら、「列やテーブルを分ける」という方法を提示したに過ぎません。 それを、「間違った方向に向かおうとしているんだ!!!」と、決定付ける思考は、どうかしているのではないかと思います。 それ以外の返信については、「デフォルトを前提として具体的に」という回答要望から外れるので、控えさせて頂きます。 これ以上「考え方が違う物同士」の言い合いは不毛なので、 お互いの考え方を綴ったこの時点を、やりとりの終着にして頂けると、とてもありがたいです。 最後に、伝えようとして頂いた姿勢に対しては、感謝申し上げます。 ご回答ありがとうございました。
退会済みユーザー

退会済みユーザー

2018/07/15 12:36

回答ちゃんと読んだほうがイイよ^^; maisumakun さんの回答は、 > (DBの設計において)「すぐに答えを求める姿勢」がよくないです。 です。 DB の設計は、要件によって決定されるべきで、要件が整理できていない場合、判断できる要素がなく決定できません。 QA サイトの使い方と受け取るとか、ずいぶんずれたコメントしてますよ。。。
kyabetsu

2018/07/15 12:42

言葉足らずな言葉を選んで文章を紡いでいることに変わりはありません。 申し訳ないですが、本件に関して、これ以上思考を凝らす意義は感じませんので。 te2jiさんのコメントに関しては、吟味していません、 とりあえず解決したので、もう終わりにしてくれませんか?。 他にも言いたいことがあれば、次の文章に全部込めて下さい、 なければ、早く終わって欲しいので、返信もいりません。
退会済みユーザー

退会済みユーザー

2018/07/15 13:21

間違った認識のまま、回答をムダにするのはもったいないのでコメントしました。今後、同様の疑問でこの質問にたどり着く方へのミスリードにもなるので、正しておきたかったってところです。 この質問って、あなたの質問であると同時に同じ疑問を持った方が読む質問にもなります。そのため、ベストアンサー後にもコメントが追加で付けられますし、質問者不在での議論もできます。 まちがいを正すって意味で、知識共有サイトの重要な機能ですね。 ので、ベストアンサー決定後ですが、間違いに対してコメントしました。 ずれたコメントをしている事が今後読む人に伝われば良いので、もう用件はすみました。 kyabetsu さんの返信はいらないです。
kyabetsu

2018/07/15 22:23

スマン、「返信きてるな・・」って判ったから読んでない、 読んでない理由は、「第三者と口論するのだるい」ってだけだよ、 矛盾見つけたら、説明したくなっちゃうしね、 という訳でさいなら、ゴクロウサマ~~
退会済みユーザー

退会済みユーザー

2018/07/15 23:21

マルチポストもしてるんですね^^; > https://oshiete.goo.ne.jp/qa/10610055.html このあたりを参考に、向こうもフォローしましょう。 https://teratail.com/questions/26133 > ・片方で得た回答や自分の追記その他情報は遅滞なく他方にも追記などで伝える > ・解決した場合も同じように他方にも解決した内容を伝える 掲示板使うには、もうちょっとマナーを学び読解力を高めたほうが良いです。 むこうのフォローを追記したかったので、用件済みです。 こちらへのコメントもいりません。
kyabetsu

2018/07/16 00:06

ごめん、また読んでないや、まぁ全体像見る限り粘着質な性格だよね?。 何が君の活力なのか、知りたくなってきたよ、 まぁ終わっても終わらなくてもどっちでもいいや・・。 返信くるのかな~、来ないのかな~ ま、読まんけどね。。
退会済みユーザー

退会済みユーザー

2018/07/16 00:22

自分でクローズしてほしかったのですが残念です。 こちらでフォローしておきます。
kyabetsu

2018/07/16 00:23

うおお。。また来た。。 怖。。
退会済みユーザー

退会済みユーザー

2018/07/16 00:32

マルチ投稿先、ご自身でクローズしたみたいですね。 残念ながら私の方でフォローできませんでした。 せっかくこちらに良い回答がついているのに誘導ができず非常に残念です。。。
kyabetsu

2018/07/16 00:36

読んでないけど、根性凄いね~。 読んでないから、まともな返事は書んけどスマンな。。 朝からご苦労さん。。
kyabetsu

2018/07/16 00:37

君の性格は粘着質?。 YES?、NO?。 この回答は興味あるから読むかも(笑)
退会済みユーザー

退会済みユーザー

2018/07/16 02:24

この回答には興味ありますが、あなたに興味は無いです^^; この回答を追いかけてみましたが、あなたが得ることができなかった情報は以下のようです。 ・DBMS の version と ストレージエンジンによる制限 ・型選択の際、考慮すべき要件 ・逆に、要件から制限される型 調べてる途中で、マルチ投稿見つけたり、全文検索に興味が移って思ってた以上に時間を使ってしまいました。 いつもなら、調査結果を回答としてまとめるのですが、ちょっと時間が足りないため、今回は放置します。 興味があれば、調べてみると面白いです。
kyabetsu

2018/07/16 08:11

長い・・。 やっぱ読むのやめよう。 結構しつこいけど、読んでくれてると信じてるんだろうか・・。 キモ。。
guest

0

今だから言える、

###「どうすれば適切ですか?」じゃなく、「おまえがどうしたいか?」だけどねー!

投稿2018/07/15 14:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/15 14:06

いいこと言うね〜
kyabetsu

2018/07/15 22:16

一対一ならね、これはこう、これはこう、 で、終れるんだけど、 こうやって触発される人たちが出てくると、 色んな意見に回答しなきゃならんハメになる。 どうせ一人目への答えが気に障ったから絡んできてるんだよね?。 次から次へと相手にしなきゃならん俺の立場もわからんかね?。 質問内容に答えてるならともかく、そうじゃないからめんどーー。 お前に判るように説明するのもめんどい、 お前にとっては一人目でも、俺にとっては三人目なんだよ(四人目かな?)、うぜーー まぁ、俺もお前と同じ「言いたがり」だから、こうやってわざわざ返信してるんだけど、 もうこの質問に回答者が現れなければ、これ以上嬉しいことはない。
退会済みユーザー

退会済みユーザー

2018/07/16 01:57

>次から次へと相手にしなきゃならん俺の立場もわからんかね?。 ま っ た く わ か ら ん。
guest

0

ベストアンサー

まず、人気のブログサイト等を調べてみると、文字数が2000文字程度だったり、

5000文字、そして、10000文字程度なんていうのも、ザラにあるようでした、

無限と言う設定は実際は存在しないので(HDDやメモリなどハード的な理由で制限が必ずかかる。)作成するシステム仕様にあったDB設計をする必要があると思いますよ。

シェアが多いwordpressを参考にするとbestではなくてもbetterになるかと。

ちなみに、記事はtextを使用しているようです。

bash

1MariaDB [hogehoge]> desc wp_posts; 2+-----------------------+---------------------+------+-----+---------------------+----------------+ 3| Field | Type | Null | Key | Default | Extra | 4+-----------------------+---------------------+------+-----+---------------------+----------------+ 5| ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | 6| post_author | bigint(20) unsigned | NO | MUL | 0 | | 7| post_date | datetime | NO | | 0000-00-00 00:00:00 | | 8| post_date_gmt | datetime | NO | | 0000-00-00 00:00:00 | | 9| post_content | longtext | NO | | NULL | | 10| post_title | text | NO | | NULL | | 11| post_excerpt | text | NO | | NULL | | 12| post_status | varchar(20) | NO | | publish | | 13| comment_status | varchar(20) | NO | | open | | 14| ping_status | varchar(20) | NO | | open | |

https://wpdocs.osdn.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E6%A7%8B%E9%80%A0#Table:_wp_postmeta

投稿2018/07/15 11:08

mosapride

総合スコア1480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyabetsu

2018/07/15 12:24

なるほど、wordpressという、既に存在する、 フリー配布さrている媒体を、参考にするという手段があったのですね。 考え方としても、とても参考になりました、 これからも精進するよう心がけます、 ご回答ありがとうございました。
guest

0

wordpress等、既存に存在するサイトを参考にすることにしました。

投稿2018/07/16 08:13

kyabetsu

総合スコア47

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyabetsu

2018/07/16 08:18

記事を編集するつもりが、間違えました。
退会済みユーザー

退会済みユーザー

2018/07/16 11:40

普通、間違えるか? どういう頭の構造してんだ?
kyabetsu

2018/07/16 13:36

まぁ、そう言いたい空気だよね。 弱み見つけられてヨカッタネ。
guest

0

MySQLについて参考にさせてもらっているサイトはこちらですね。

http://nippondanji.blogspot.com/

投稿2018/07/15 12:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyabetsu

2018/07/15 12:25

しっかりと勉強して、精進したいと思います。 親切にURLを教えて下さって、ありがとうございました。
退会済みユーザー

退会済みユーザー

2018/07/15 13:04

ついた回答に噛み付くくらいなら、QAサイト使わないほうがいいよ。
kyabetsu

2018/07/15 22:21

あなたとの会話に関係ない話を、あなたとするつもりはありません。 さいなら。
guest

0

こんなゴミみたいな質問者初めて見た
オラおでれえたぞ

投稿2019/11/26 11:45

YuyaSugimoto

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問