MySQL

スロークエリログ記録

[mysqld] log_slow_queries=/var/log/slow-queries.log long_query_time=8

int型は丸められる!

int型などの数値型に、その型で扱える範囲を超えた数字を入れると、その型で扱える数字の最大値として登録されてしまう。エラーにはならない。 create table inttest ( i int ); insert into inttest values (2147483646); insert into inttest values (2147…

バージョン4と5のvarcharの違い

MySQLバージョン4.0と5.0 で varchar の扱いが変わっているようだ。 バージョン4では varchar(n) は nバイトの領域を確保だったのが、 バージョン5では n文字分を格納可能になっている。 4.1は動作環境を作れなかったため未確認だが、4.1.1で変わったと思…

found_rows()

MySQL の便利な構文である LIMIT 句を使用したときに、本来全体で何件かを知りたいことは多々ある。そのようなときには、同じ条件で select(*)の SQL 文を実行することで全体の件数が判る。 ・・・というのは当たり前の話。ここでは found_rows() 句をメモ。…

オートナンバー(AUTO_INCREMENT)

そういえば MySQL の auto_increment 属性って使ったことがなかった。 一応動かしておくべきだろうと思い、動作確認。以下サンプル。 auto_incrementに属性をつけたカラムは Primary key にしなければならない。これポイント。 mysql> create table ai_test …

SHOW STATUS

MySQLマニュアル(日本語版) 4.6.8.3 SHOW STATUS に詳細な説明あり。Max_used_connections 同時使用可能な最大接続数。 Threads_connected 現在開いている接続の数。 Open_tables 開いているテーブルの数。 など。

mysql_lex.h

enum enum_sql_command { SQLCOM_SELECT, SQLCOM_CREATE_TABLE, SQLCOM_CREATE_INDEX, SQLCOM_ALTER_TABLE, SQLCOM_UPDATE, SQLCOM_INSERT, SQLCOM_INSERT_SELECT, SQLCOM_DELETE, SQLCOM_TRUNCATE, SQLCOM_DROP_TABLE, SQLCOM_DROP_INDEX, SQLCOM_SHOW_DATA…

使用中のバージョン情報を得る

select version();

特定の曜日だけを抽出とか

DATE_FORMAT 関数が便利。 where DATE_FORMAT( birthday, '%w') = 3 とすると、誕生日カラム(当然datetime型)の日付が水曜日のものだけマッチする。 (例が悪いか(苦笑))日曜=0 月曜=1 : 土曜=6

sjisでblob使用の問題

クライアントで エスケープ(00 → 5C 30 のように) して MySQL に送信。 すべてサーバでアンエスケープされることを当然期待するが、 0x81〜0x9F,0xE0 〜 0xFCに続くコードのみはアンエスケープされずに 5C(\) が残ってしまう。 現時点で解決法なし。SJIS を…