2008-01-23 Wed
mysqlでテーブル名やカラム名を補完する方法
- Summary
mysqlコマンドを--auto-rehashオプションをつけて起動する
% mysql --auto-rehash
my.cnfの[mysql]セクションにauto-rehashと書いておく
[mysql] auto-rehash
- Reference
mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ
http://d.hatena.ne.jp/hirose31/20080122/1200974354
2007-03-15 Thu
MySQL で日本語全文検索
- Reference
たたみラボ - MySQLで全文検索 - FULLTEXTインデックスの基礎知識
http://www.tatamilab.jp/rnd/archives/000389.html
たたみラボ - MySQL FULLTEXT + Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について
http://www.tatamilab.jp/rnd/archives/000390.html
2006-12-27 Wed
MySQLのメモリ関係チューニング
- Reference
DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
http://dsas.blog.klab.org/archives/50860867.html
2006-12-01 Fri
MySQLパフォーマンスに関する84のTIPS
- Reference
Debian Admin - Top 84 MySQL Performance Tips
http://www.debianadmin.com/top-84-mysql-performance-tips.html
- via
phpspot開発日誌 - 2006-11-28 - MySQLパフォーマンスに関する84のTIPS
http://phpspot.org/blog/archives/2006/11/mysql84tips.html
2006-11-28 Tue
MySQLの高速化 Tips
- Summary
my.cnf
[client] # セキュリティ面から変更すべき port = 3306 [mysqld] # インデックスをバッファに保存する際のメモリサイズ # MyISAMならOSキャッシュも使用するため,全メモリの30-40%を当てると良い. key_buffer = 256M # InnoDBはOSキャッシュを使用しないため,全メモリの70-80%を当てると良い. innodb_buffer_pool_size =512M # データのキャッシュサイズ.I/Oを減らす. # 数百のテーブルであれば,1024が良いらしい. table_cache = 256 # スレッドの作成,削除は負荷が大きい. # Threads_Createdの動きを見ながら変更. thread_cache = 16 # あまり効果は無いらしい. #innodb_additional_pool_size = 20M # ログファイルのサイズ. # 増やすとパフォーマンスが良くなるが,復旧に時間がかかる. # 64-512M程度まで. innodb_log_file_size = 64M # ログのバッファサイズ # 8-16Mまで. innodb_log_buffer_size = 8M # flush logをディスク,メモリに記録するか,記録しないかを設定する. # 必ずメモリに記録するよう設定すること. # 0 : flush log を記録しない. # 1 : flush log をディスクに記録する. # 2 : flush log をメモリに記録する. innodb_flush_logs_at_trx_commit = 2 # 入力データ保持のための最大バッファサイズ # 大きいファイルを扱う際に必須. max_allowed_packet = 1M # ORDER BYやGROUP BYのクエリ速度を上げる. # メモリが多くない限り増やしても意味ないらしい. sort_buffer = 1M # インデックスを使わない際のクエリ速度向上 record_buffer 1M # この秒数を超えるとslowクエリと認識される long_query_time = 1 # join用バッファ join_buffer = 131072 # クエリのキャッシュ量. # 増やしすぎると更新が反映されない場合がある # 32M-512Mくらいが良い. query_cache = 32M
- Reference
TechKnowledge - mysql を高速化したいときに読むメモ
http://tech.media-index.jp/2006/11/mysql_1.html
@IT - Linux Square - MySQLの高度な管理とチューニングテクニック(1/2)
http://www.atmarkit.co.jp/flinux/rensai/mysql11/mysql11a.html
All About - データベース - MySQLのチューニング
http://allabout.co.jp/internet/database/closeup/CU20040722A/
MySQL Performance Blog - What to tune in MySQL Server after installation
http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/
2006-11-21 Tue
phpMyEdit - データベースのメンテナンス画面を生成
- Summary
phpMyEditSetup.phpにアクセスしウィザード形式で進んでいくと,
最終的に指定したテーブルの操作用ライブラリが出来上がる.
- Reference
phpMyEdit: Instant MySQL Table Editor and PHP Code Generator
http://www.phpmyedit.org/
- via
phpspot開発日誌 - 2005-11-07 - phpMyEdit: DB操作コード自動生成
http://phpspot.org/blog/archives/2005/11/phpmyedit_welco.html
MOONGIFT - phpMyEdit - データベースのメンテナンス画面を生成
http://oss.moongift.jp/intro/i-2816.html
MOONGIFT - phpMyEdit レビュー
http://oss.moongift.jp/review/i-2817.html
2006-10-31 Tue
ZMR for MySQL (Zmanda Recovery Manager for MySQL) - MySQLのバックアップを自動化
- Reference
Download ZRM for MySQL and Amanda Network Backup
http://www.zmanda.com/downloads.html
Zmanda, Inc. - Press Release - 2006-09-22
http://www.zmanda.com/press-release-zrm-mysql.html
AMANDA, The Advanced Maryland Automatic Network Disk Archiver
http://www.amanda.org/
- via
MOONGIFT - Zmanda Recovery Manager for MySQL - MySQLのバックアップを自動化
http://oss.moongift.jp/intro/i-2642.html
MOONGIFT - Zmanda Recovery Manager for MySQL レビュー
http://oss.moongift.jp/review/i-2643.html
IMPRESS Enterprise Watch - 米Zmanda、オープンソースのMySQL用バックアップソフトをリリース
http://enterprise.watch.impress.co.jp/cda/foreign/2006/09/28/8729.html
2006-08-01 Tue
mysqldump2email - MySQLのダンプファイルをzipアーカイブしてメール送信
- Summary
以下のモジュールが必要
MIME::Lite
DateTime
YAML
- Usage
% mysqldump2email --conf /path/to/config.yaml
- config.yaml sample
mysqldump:
command: /usr/bin/mysqldump
username: your-mysql-username
password: your-mysql-password
#host: localhost
zip:
command: /usr/bin/zip
# if encryption needed
#password: your-zip-password
mail:
from: user@example.com
to: user@example.com
route:
via: smtp
host: localhost:25
#route:
# via: sendmail
gspace:
enable: 0
directory: /
tmpdir: /tmp
#time_zone: Asia/Tokyo- Reference
Ogawa::Memoranda - 2006-07-24 - mysqldump2email公開
http://as-is.net/blog/archives/001149.html
- via
オレンジニュース - 2006-07-28
http://secure.ddo.jp/~kaku/tdiary/20060728.html#p04
2006-07-26 Wed
MySQL Quick Admin
- Summary
phpMyAdminのような MySQL の管理ツール.
- 動作環境
PHP v4.3.1 +
MySQL v4.0.27-standard +
- Demo
http://demo.mysqlquickadmin.com/login.php
- Reference
MySQL Quick Admin
http://mysqlquickadmin.com/
- via
GIGAZINE - MySQLを操作する「MySQL Quick Admin」がオープンソース化
http://gigazine.net/index.php?/news/comments/20060725_mysql_quick_admin/
2006-07-06 Thu
mysqlreport - MySQL のステータスを表示
- Sample
$ ./mysqlreport --user dbuser --password dbpasswd
MySQL 4.0.24_Debian-10s uptime 30 2:35:55 Thu Jul 6 20:08:32 2006
__ Key _________________________________________________________________
Buffer usage 644.00k of 16.00M %Used: 3.93
Write ratio 0.31
Read ratio 0.00
__ Questions ___________________________________________________________
Total 424.72k 0.16/s
Slow 1 0.00/s %Total: 0.00 %DMS: 0.00
DMS 79.04k 0.03/s 18.61
__ Table Locks _________________________________________________________
Waited 0 0.00/s %Total: 0.00
Immediate 85.09k 0.03/s
__ Tables ______________________________________________________________
Open 183 of 256 %Cache: 71.48
Opened 930 0.00/s
__ Connections _________________________________________________________
Max used 6 of 100 %Max: 6.00
Total 4.12k 0.00/s
__ Created Temp ________________________________________________________
Disk table 519 0.00/s
Table 692 0.00/s
File 3 0.00/s
- 詳細な表示
% ./mysqlreport --user dbuser --password dbpasswd --all
MySQL 4.0.24_Debian-10s uptime 30 2:40:16 Thu Jul 6 20:12:53 2006
__ Key _________________________________________________________________
Buffer usage 644.00k of 16.00M %Used: 3.93
Write ratio 0.31
Read ratio 0.00
__ Questions ___________________________________________________________
Total 424.73k 0.16/s
QC Hits 322.68k 0.12/s %Total: 75.97
DMS 79.04k 0.03/s 18.61
Com_ 19.02k 0.01/s 4.48
COM_QUIT 4.01k 0.00/s 0.95
-Unknown 23 0.00/s 0.01
Slow 1 0.00/s 0.00 %DMS: 0.00
DMS 79.04k 0.03/s 18.61
SELECT 71.11k 0.03/s 16.74 89.97
UPDATE 4.18k 0.00/s 0.98 5.28
INSERT 2.67k 0.00/s 0.63 3.38
DELETE 1.08k 0.00/s 0.25 1.37
REPLACE 0 0.00/s 0.00 0.00
Com_ 19.02k 0.01/s 4.48
change_db 15.55k 0.01/s 3.66
set_option 1.99k 0.00/s 0.47
create_tabl 377 0.00/s 0.09
__ SELECT and Sort _____________________________________________________
Scan 2.55k 0.00/s %SELECT: 3.59
Range 1.32k 0.00/s 1.85
Full join 18 0.00/s 0.03
Range check 0 0.00/s 0.00
Full rng join 0 0.00/s 0.00
Sort scan 1.12k 0.00/s
Sort range 6.03k 0.00/s
Sort mrg pass 0 0.00/s
__ Query Cache _________________________________________________________
Memory usage 2.37M of 16.00M %Used: 14.80
Block Fragmnt 20.60%
Hits 322.68k 0.12/s
Inserts 70.73k 0.03/s
Prunes 1 0.00/s
Insrt:Prune 70.73k:1 0.03/s
Hit:Insert 4.56:1
__ Table Locks _________________________________________________________
Waited 0 0.00/s %Total: 0.00
Immediate 85.09k 0.03/s
__ Tables ______________________________________________________________
Open 183 of 256 %Cache: 71.48
Opened 930 0.00/s
__ Connections _________________________________________________________
Max used 6 of 100 %Max: 6.00
Total 4.12k 0.00/s
__ Created Temp ________________________________________________________
Disk table 519 0.00/s
Table 692 0.00/s
File 3 0.00/s
- Reference
mysqlreport :: Make easy-to-read MySQL status reports
http://hackmysql.com/mysqlreport
2006-06-17 Sat
PHPにmysql.soをコンパイルして追加
- Summary
# rpm -ivh php-5.0.4-10.src.rpm
# cp /usr/src/redhat/SOURCES/php-5.0.4.tar.gz .
# tar xzvf php-5.0.4.tar.gz
# cd php-5.0.4
# ./configure --with-mysql=shared
# make build-modules
# cp modules/mysql.so /usr/lib/php/modules/
# cp mysql.ini /etc/php.d/
- Reference
XooNIps Official Site - B-Wiki - fedoracore4
http://xoonips.sourceforge.jp/modules/bwiki/?fedoracore4
2006-03-16 Thu
MySQL で階層構造のデータを扱うには
- Reference
MySQL AB :: Managing Hierarchical Data in MySQL
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
mysql:12071
http://www.mysql.gr.jp/mysqlml/mysql/msg/12071
- via
オレンジニュース - 2006-03-15
http://secure.ddo.jp/~kaku/tdiary/20060315.html#p13
2006-01-25 Wed
MySQL Cheat Sheet
- Reference
MySQL Cheat Sheet
http://nparikh.freeshell.org/unix/mysql.php
- via
phpspot開発日誌 - MySQLコマンドチートシート
http://phpspot.org/blog/archives/2006/01/mysql_5.html
2006-01-19 Thu
FlashMyAdmin - Flash based MySQL Administration Tool
- Summary
Flashで開発された派手なMySQL管理ツール.
インタラクティブで軽い.
- デモのトップ
Englishを選択する.

- オプション画面

- サーバの選択画面

- フィールドの型を変更

- データの検索

- データを選択して表示 (マルチメディア)

- sample01のflowers.jpgをプレビュー

- Reference
FlashMyAdmin
http://www.flashmyadmin.org/original/flashmyadmin.org.php
FlashMyAdmin - Demo
http://www.flashmyadmin.org/flash/mysql/administration/trial/flashmyadmin.htm
2005-11-08 Tue
文字化け防止
mysqld --skip-character-set-client-handshake
- Reference
MySQL 4.1 Reference Manual :: D.1.2 Changes in release 4.1.15 (13 October 2005)
http://dev.mysql.com/doc/refman/4.1/en/news-4-1-15.html
- via
yohgaki's blog - MySQL 4.1, 5.0の文字化け回避
http://blog.ohgaki.net/index.php/yohgaki/2005/11/01/mysql_4_1_5_0a_ra_as_a_a_a_e_i
2005-06-21 Tue
UNIX Socket で mysql_connect
- Summary
mysql_connect() で UNIX Socket でも接続できる
mysql_connect('localhost:/tmp/mysql.sock', 'userid', 'password');
- Reference
cl.pocari.org - 2004-02-22
http://cl.pocari.org/2004-02-22-1.html
2005-01-17 Mon
2005-01-17 Mon
テーブルの修復方法
- Summary
MySQL でテーブルが破損した場合の発生エラー
・`tbl_name.frm' is locked against change
・Can't find file `tbl_name.MYI' (Errcode: ###)
・Unexpected end of file
・Record file is crashed
・Got error ### from table handler
perror ### を実行することでエラーの詳細情報を取得できる.
shell> perror 126 127 132 134 135 136 141 144 145 126 = Index file is crashed / Wrong file format 127 = Record-file is crashed 132 = Old database file 134 = Record was already deleted (or record file crashed) 135 = No more room in record file 136 = No more room in index file 141 = Duplicate unique key or constraint on write or update 144 = Table is crashed and last repair failed 145 = Table was marked as crashed and should be repaired
- 注意
エラー135 (no more room in record file) の場合は以下を実行する必要がある.
mysql> ALTER TABLE table MAX_ROWS=xxx AVG_ROW_LENGTH=yyy;
- 段階1 : テーブルのチェック
時間に余裕があれば,2列目のコマンドを実行.
myisamchk *.MYI
myisamchk -e *.MYI
mysqld が終了している場合,--update オプションを使用して
myisamchk がテーブルに 'checked' のマークを付けるようにする.
myisamchk がエラーを返したテーブルのみ修復が必要.
エラーを返したテーブルについては段階2へ.
チェック時に `out of memory' などの複雑なエラーが発生,又は myisamchk がクラッシュした場合は段階3へ.
- 段階2 : 簡単で安全な修復
myisamchk -r -q tbl_name
失敗したら以下の手順
1. データファイルのバックアップ
2. 以下を実行してインデックスファイルを再構築
myisamchk -r tbl_name
3. 2に失敗したら,以下を実行
myisamchk --safe-recover tbl_name
チェック時に `out of memory' などの複雑なエラーが発生,又は myisamchk がクラッシュした場合は段階3へ.
- 段階3 : 困難な修復
1. データファイルを安全な場所に移動
2. テーブル記述ファイルを利用して,新しい空白のデータとインデックスファイルを作成する.
使用している SQL バージョンに TRUNCATE TABLE がない場合は,代わりに DELETE FROM table_name を使用
shell> mysql db_name mysql> SET AUTOCOMMIT=1; mysql> TRUNCATE TABLE table_name; mysql> quit
3. 古いデータファイルを新しく作成したデータファイルにコピーする
4. 段階2に戻る.
- 段階4 : 非常に困難な修復
1. バックアップから記述ファイルをリストアし,段階3へ.
又は,インデックスファイルをリストアして,myisamchk -r を実行し,段階2へ.
2. 別のデータベースにテーブルのコピーを作成する.
テーブルのコピーを作成したデータベースから,新しいデータファイルを削除する.
記述ファイルとインデックスファイルを,クラッシュしたデータベースに移動する.
これで新しい記述ファイルとインデックスファイルができ,データファイルは前のものがそのまま残る.
段階 2 に戻り,インデックスファイルを再構築する.
(テーブルがどのように作成されたか正確にわかっていれば)
- Reference
MySQL Manual - テーブルの修復方法
http://dev.mysql.com/doc/mysql/ja/Repair.html
2004-09-03 Fri
MM Mysql Driver
- Reference
SourceForge - MM Mysql Drivers
http://mmmysql.sourceforge.net/




