MySQL 総合 Part11 at DB
[2ch|▼Menu]
941:NAME IS NULL
07/09/19 06:30:18 thY75gxD
BLOBやTEXTカラムではインデクスする文字列の長さを指定する必要がある

って事なんだけど、エラーメッセージにもそのように書いてあるやん

942:NAME IS NULL
07/09/19 23:53:34
それだとuniqueにならない恐れがありますよね?

943:NAME IS NULL
07/09/20 01:29:51
>>942
そんなんなんとかしろ

944:932
07/09/20 10:47:44 fT/6kBZZ
レス遅くなりました。
とりあえずはMysqlで勉強したいと思います。
やはりSQL文をコマンドラインに打ち込んで覚えるのがいいですよね?
教本あるのですがさっぱり

945:NAME IS NULL
07/09/20 13:04:10
>>944
そう重います(笑)

946:NAME IS NULL
07/09/20 13:24:21
InnoDBを使ってるんですが、
innodb_file_per_tableオプションを付けたほうがパフォーマンスは上がるんでしょうか?

ibdata1が肥大化してすごいサイズになってるんですが、これってパフォーマンスには関係ないんでしょうか?



947:NAME IS NULL
07/09/21 00:31:02
InnoDB使ってるやつなんて いんの?

948:NAME IS NULL
07/09/21 12:34:52
MySQL User Conf Japan 2007 のInnoDBパフォーマンスチューニングでは?そんなパラメータの話は出てこなかった気が。

949:NAME IS NULL
07/09/21 14:21:48
>>946
関係ある。あたりまえだが、ファイルサイズが大きくなれば一般に遅くなる。

ibdata1が同一物理ディスク上にあるなら、Windowsでいうデフラグするだけで早くなる可能性はある。

950:NAME IS NULL
07/09/21 20:25:14
>>949
可変長カラムがあってもInnoDBはフラグメンテーション発生しないんでなかったっけ?
Winじゃなければ関係ないような。

951:NAME IS NULL
07/09/22 08:34:10
ファイルのフラグメントと、DBのフラグメントは違うんじゃないか?
ファイルが大きくても、たくさん開くよりは、たいていは速いよ。

952:NAME IS NULL
07/09/22 14:48:03 SdV4tJcU
DEFAULT CHARSET=utf8を付けるとエラーが出るのですが、
このバージョンではこの指定はサポートしていないということでしょうか?

・Win2k MySQL 4.0.20a-nt

・コマンド
CREATE TABLE `test` (
`id` INTEGER
) ENGINE=InnoDB DEFAULT CHARSET=utf8

・エラー
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=utf8' at line 3



953:NAME IS NULL
07/09/22 16:14:45
utf8はMySQL4.1からサポート。

954:952
07/09/22 17:05:08
>>953
そういうことでしたか。
ありがとうございました。

955:NAME IS NULL
07/09/23 00:03:21 nJudGDWP
すいません、初心者です。
今、テーブル作ろうと思ってるんだけど、1/7/2007って値が入るカラムのデータ型ってなんになるのかな?
一応、mysqlのホームページでリファレンスマニュアル見たけどわからんかった・・・

956:NAME IS NULL
07/09/23 00:09:45
>>955
アメリカのデートだな

957:NAME IS NULL
07/09/23 00:16:14 nJudGDWP
>>そうなんすか?駄目理科・・・
テキスト型じゃまずいのかな・・・そっちの方向で考えているのですが・・・
初心者かっこわりー

958:NAME IS NULL
07/09/23 00:29:37 nJudGDWP
>956
テキスト型で行けました。ありがとうございました。

959:NAME IS NULL
07/09/23 01:27:31 FBJ1MWDN
すみません、DBを業務で触るのは久々なので教えて下さい…。
以前はSybase(バージョン失念)を2年程弄っていたのですが、
今回MySQL5.xを弄る事になりまして。

DATE_TIME型のカラムをCHAR型にCONVERTし当日よりn日前のレコードを抽出したいのです。
確かこのような構文だったと記憶しているのですが。

datediff ( convert (char(8), dd, now(), 112) - n

いまいち思い出せず…。

960:NAME IS NULL
07/09/23 01:52:04
DATETIMEをCHARにCONVERT?
逆じゃないの?

mysql> desc test;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| dd | char(8) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.21 sec)

mysql> select * from test where datediff(convert(dd, date), now()) = -22;
+----------+
| dd |
+----------+
| 20070901 |
+----------+
1 row in set (0.01 sec)


961:NAME IS NULL
07/09/23 02:02:19
dd列にINDEXが効くように直してみた。
mysql> select * from test where dd = date_format(date_sub(now(), interval 22 day), '%Y%m%d');
+----------+
| dd |
+----------+
| 20070901 |
+----------+
1 row in set (0.11 sec)



最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4086日前に更新/290 KB
担当:undef