MySQLメモ

InnoDBのデータファイルをテーブルごとに分割する

my.cfgの[mysqld]セクションに以下を追加

innodb_file_per_table

以下を実行(このAlter文はデフラグの効果もあり)

ALTER TABLE tablename TYPE=InnoDB

上位n件を取得する方法

select a.b from a where .... limit n

ユーザの作成

grant all on DB名.* to ユーザ名 identified by 'パスワード';
flush privileges;

create database DB名;

インデックス

  • 現在テーブルにつけられているインデックスの一覧の取得
    show index from テーブル名
  • インデックスを作成
    create index インデックス名 on テーブル名 (フィールド名);
  • インデックスの削除
    drop index インデックス名 on テーブル名;
  • インデックスの使用状況の確認
    explain select文

状態

  • innodbの状態
    show innodb status

参考URL

レプリカのマスターノードのバイナリログの削除方法

MySQLのレプリカをしばらく運用していると、バイナリログが増え、ディスクを圧迫し始めるので削除する方法。

  • まず、全スレーブにて
    > show slave status\G;
    を実行し、Relay_Master_Log_File (直前にSQLスレッドによって実行されたイベントを含むマスタバイナリログファイル名)を確認する。
  • 次に、マスターで、
    > PURGE BINARY LOGS TO 'xxxx-bin.yyyyyy';
    を実行する。yyyyyyは、全スレーブが処理し終わったバイナリログファイルの番号の最大値を指定する。

これにより消えてくれる。

また、

> SHOW BINARY LOGS

をマスターで実行すると現在存在するバイナリログの一覧を取得できる。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-06 (土) 17:20:06 (3572d)