「MySQL」の版間の差分
提供: Wikinote
細 (→覚え書き) |
(→覚え書き) |
||
(同じ利用者による、間の3版が非表示) | |||
行5: | 行5: | ||
mysql コマンドで接続する。 | mysql コマンドで接続する。 | ||
− | # mysql -u | + | # mysql -u user -p [database] |
mysql> show databases; | mysql> show databases; | ||
行18: | 行18: | ||
+--------------------+ | +--------------------+ | ||
5 rows in set (0.00 sec) | 5 rows in set (0.00 sec) | ||
+ | mysql> use pt2_db | ||
+ | Database changed | ||
+ | mysql> show tables; | ||
+ | +----------------------+ | ||
+ | | Tables_in_pt2_db | | ||
+ | +----------------------+ | ||
+ | | Recorder_categoryTbl | | ||
+ | | Recorder_channelTbl | | ||
+ | | Recorder_keywordTbl | | ||
+ | | Recorder_logTbl | | ||
+ | | Recorder_programTbl | | ||
+ | | Recorder_reserveTbl | | ||
+ | +----------------------+ | ||
+ | 6 rows in set (0.00 sec) | ||
=== テーブルのチェックと修復 === | === テーブルのチェックと修復 === | ||
行43: | 行57: | ||
データベース全体をチェックする場合は、mysqlcheck コマンドが使える。 | データベース全体をチェックする場合は、mysqlcheck コマンドが使える。 | ||
− | # mysqlcheck -u | + | # mysqlcheck -u user -p wikidb |
Enter password: | Enter password: | ||
wikidb.archive OK | wikidb.archive OK | ||
行51: | 行65: | ||
wikidb.filearchive OK | wikidb.filearchive OK | ||
... | ... | ||
+ | |||
+ | === テーブルの最適化 === | ||
+ | |||
+ | データベースの更新? が重くなってきたら実行してみる価値はあるかも。 | ||
+ | うちの環境では明らかに CPU 使用率が低下する。 | ||
+ | |||
+ | # mysqlcheck -o -u user -p pt2_db | ||
+ | Enter password: | ||
+ | pt2_db.Recorder_categoryTbl Table is already up to date | ||
+ | pt2_db.Recorder_channelTbl Table is already up to date | ||
+ | pt2_db.Recorder_keywordTbl OK | ||
+ | pt2_db.Recorder_logTbl OK | ||
+ | pt2_db.Recorder_programTbl OK | ||
+ | pt2_db.Recorder_reserveTbl OK | ||
+ | |||
+ | === SQL === | ||
+ | |||
+ | ソフ開に合格した時は覚えてたんだが、使わないとやはり忘れてしまうなぁ。 | ||
+ | |||
+ | ==== データを抽出 ==== | ||
+ | SELECT 列名 FROM テーブル名 WHERE 条件式 | ||
+ | |||
+ | * [http://ja.wikipedia.org/wiki/SELECT_(SQL) SELECT (SQL) - Wikipedia] | ||
+ | |||
+ | ==== レコードを削除 ==== | ||
+ | DELETE FROM テーブル名 WHERE 条件式 | ||
+ | |||
+ | * [http://ja.wikipedia.org/wiki/DELETE_(SQL) DELETE (SQL) - Wikipedia] | ||
+ | |||
+ | ==== レコードを更新 ==== | ||
+ | UPDATE テーブル名 SET 列名 = 値 WHERE 条件式 | ||
+ | |||
+ | * [http://ja.wikipedia.org/wiki/UPDATE_(SQL) UPDATE (SQL) - Wikipedia] |
2012年3月1日 (木) 22:24時点における最新版
覚え書き
接続
mysql コマンドで接続する。
# mysql -u user -p [database] mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | pt2_db | | test | | wikidb | +--------------------+ 5 rows in set (0.00 sec) mysql> use pt2_db Database changed mysql> show tables; +----------------------+ | Tables_in_pt2_db | +----------------------+ | Recorder_categoryTbl | | Recorder_channelTbl | | Recorder_keywordTbl | | Recorder_logTbl | | Recorder_programTbl | | Recorder_reserveTbl | +----------------------+ 6 rows in set (0.00 sec)
テーブルのチェックと修復
某 PHP アプリが正常に動作しないと思ったら、データベースのテーブルが破損していた。
mysql> check table Recorder_programTbl; +----------------------------+-------+----------+----------------------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +----------------------------+-------+----------+----------------------------------------------------------------------------------+ | pt2_db.Recorder_programTbl | check | error | Table './pt2_db/Recorder_programTbl' is marked as crashed and should be repaired | +----------------------------+-------+----------+----------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
以下のコマンドで修復できる。
mysql> repair table Recorder_programTbl; +----------------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +----------------------------+--------+----------+----------+ | pt2_db.Recorder_programTbl | repair | status | OK | +----------------------------+--------+----------+----------+ 1 row in set (1.24 sec)
データベース全体をチェックする場合は、mysqlcheck コマンドが使える。
# mysqlcheck -u user -p wikidb Enter password: wikidb.archive OK wikidb.category OK wikidb.categorylinks OK wikidb.externallinks OK wikidb.filearchive OK ...
テーブルの最適化
データベースの更新? が重くなってきたら実行してみる価値はあるかも。 うちの環境では明らかに CPU 使用率が低下する。
# mysqlcheck -o -u user -p pt2_db Enter password: pt2_db.Recorder_categoryTbl Table is already up to date pt2_db.Recorder_channelTbl Table is already up to date pt2_db.Recorder_keywordTbl OK pt2_db.Recorder_logTbl OK pt2_db.Recorder_programTbl OK pt2_db.Recorder_reserveTbl OK
SQL
ソフ開に合格した時は覚えてたんだが、使わないとやはり忘れてしまうなぁ。
データを抽出
SELECT 列名 FROM テーブル名 WHERE 条件式
レコードを削除
DELETE FROM テーブル名 WHERE 条件式
レコードを更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件式