
No.1ベストアンサー
- 回答日時:
tinyint(1)といったint系のデータ型は、実際の長さは同じなので性能上、差はないです。
smallintやintなどのint系も長さが2バイト、4バイトといった違いだけなので、性能上、差はないです。
性能上の差がでる可能性があるのは、varchar系でなく、text系などを無闇に使うことです。
これらのデータ型は、必ず1行を格納するために作成される「基本の行」とは、別の行で管理されるからです。
つまり、1行の操作で、複数回のI/Oが発生してしまいます。
この回答へのお礼
お礼日時:2008/12/02 09:01
やはりそうでしたか。intを小さくしても書き込み性能に
差がなかったです。ただ、読み込み時のメモリは少なく済むでしょうか?
Text型意外でした。たくさん読むテーブルは、
なるべくvarcharを使用するようにしますね。ありがとうございます。
No.2
- 回答日時:
補足説明します。
tinyint(m)とmを指定しても、tinyintとmを指定しなくても、実際に格納できる値の範囲は同じです。
MySQLでは、mを表示時の位置合わせで用いられる程度のものであり、指定することにメリットは殆どないと考えていいと思います。
smallint、int、bigintは、長さが2、4、8バイトで、表せる値が違ってきます。これらの列は、1行を格納する場合に必ず作成される「基本の行」内で管理されるので、どのデータ型を選択するかにより、性能差は出ることはないでしょう。したがって、どの程度の範囲の値を使うかで、適切なデータ型を選ぶことになります。
可変長文字列で、長さの上限が30とか50、100といったように事前に想定できる場合は、varchar(100)といった定義をした方が性能面ではいいでしょう。これを、textにしたり、varcharでも無闇に大きくvarchar(5000)などとしてしまうと、基本の行とは別の1個以上の行として格納されるため、1行の操作で複数回のI/Oが発生します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
-3.34 が -3.3399999999999999 ...
-
プライマリーキーの昇順でソー...
-
SQLのVARCHARとVARCHAR2の違い
-
Float型の時の計算結果がおかしい
-
postgreSQLのデータ型
-
mysqlがインストールされている...
-
副問合せにLIKE文を使う方法は...
-
MySQLカラム名は日本語と英数字...
-
旧filemakerで和暦(令和など)...
-
列数が多いと結果が行単位に改...
-
cseデータ閲覧時の文字化け
-
like句を使って日本語を検索す...
-
cseデータ閲覧時に文字化け
-
ERROR 1045 (28000) (using pas...
-
SQL開発環境ソフトウェアである...
-
MYSQLのデータに「;」を入力
-
「CSE」や「かねやん」からのMy...
-
c言語でMySQLを利用するときの...
-
シングルクォーテーションとダ...
-
バッチファイルでTRUNCATE TABLE
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのVARCHARとVARCHAR2の違い
-
VBAで変数内に保持された二次配...
-
INT型は金額の型に使用するべき...
-
経過時間(hhmmdd)をDATE型には...
-
postgreSQLのデータ型
-
-3.34 が -3.3399999999999999 ...
-
プライマリーキーの昇順でソー...
-
Excel VBA SelectedItems
-
insertでのエラーについて
-
オラクルのデータ型・通貨について
-
ヌル値は記憶容量を必要としな...
-
Float型の時の計算結果がおかしい
-
DB2 INSERT時の格納順序
-
カラムの長さを指定する意味に...
-
AccessからOrcleのODBCリンクテ...
-
mysql(mariaDB)の格納文字数は...
-
MySQLの型のサイズ指定で速度は...
-
MysqlにURLを登録する方法
-
MySQLで先頭の0が省略されてし...
-
ハングル文字が入らない。
おすすめ情報