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はどのように運用するか、迷っている状態です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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
総合スコア146544
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/07/15 12:36

退会済みユーザー
2018/07/15 13:21

退会済みユーザー
2018/07/15 23:21

退会済みユーザー
2018/07/16 00:22

退会済みユーザー
2018/07/16 00:32

退会済みユーザー
2018/07/16 02:24

0
今だから言える、
###「どうすれば適切ですか?」じゃなく、「おまえがどうしたいか?」だけどねー!
投稿2018/07/15 14:02

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/07/15 14:06

退会済みユーザー
2018/07/16 01:57

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 | |
投稿2018/07/15 11:08
総合スコア1480
0
MySQLについて参考にさせてもらっているサイトはこちらですね。
投稿2018/07/15 12:08

退会済みユーザー
総合スコア0
0
こんなゴミみたいな質問者初めて見た
オラおでれえたぞ
投稿2019/11/26 11:45
総合スコア8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。