タグ

MySQLと裏技に関するiwwのブックマーク (10)

  • 【MySQL】インポート時間短縮のためのDBパラメータチューニング / 開発者向けブログ・イベント | GMO Developers

    バイナリ互換性がないMySQLバージョン間(5.6→8.0)のDB移行が必要となり、DBを停止して、mysqldumpによるデータ移行を計画しました。その際にDBのダウンタイムをなるべく短くするため、インポートにかかる時間をパラメータチューニングによって短くできないか検証しました。 注意点 記事の内容は、筆者の個人的な見解や認識に基づいて作成しているため、正確性、信頼性、完全性、最新性を保証するものではありません。 記事は、2023/04/25 時点の情報をもとに作成しております。 最新の情報については、他の情報源と照らし合わせてご確認ください。 今回紹介するパラメータはインポート時に一時的に設定するパラメータと仮定しており、運用時は適さないパラメータもあります。 インポートが完了したら運用に適したパラメータへの変更をお願いします。 前提条件 インポートするデータ スキーマ毎にmysq

  • MySQL | 実行中クエリの確認(show processlist)と強制終了(kill) - わくわくBank

    クエリの結果が返ってこなくて困った経験はないでしょうか?ここでは、実行中クエリの確認方法と強制終了させる方法について紹介します。 mysql> show processlist; +-----+------+--------------------+--------------+---------+------+--------------+------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +-----+------+--------------------+--------------+---------+------+--------------+------------------------------------+ | 243 | root

    MySQL | 実行中クエリの確認(show processlist)と強制終了(kill) - わくわくBank
    iww
    iww 2023/08/31
    show processlist; で 今動いてるクエリがわかる。 超便利
  • MySQL でスリープする - ablog

    MySQL で Orcale Databasedbms_lock.sleep(秒数) のように sleep させたい場合は、select sleep(秒数) でできる。 5.6.10-log awsuser: [mydb] 15:26> select sleep(5); +----------+ | sleep(5) | +----------+ | 0 | +----------+ 1 row in set (5.24 sec) 5.6.10-log awsuser: [mydb] 15:26> select sleep(10); +-----------+ | sleep(10) | +-----------+ | 0 | +-----------+ 1 row in set (10.09 sec) プロシージャにして実行してみる。 5.6.10-log awsuser: [my

    MySQL でスリープする - ablog
  • MySQL : 確実にn秒以上かかるクエリをSLEEPを使って発行する - あたまんなか

  • 【linux】巨大なファイルから必要な部分だけ抜き出す at softelメモ

    問題 MySQLの巨大なダンプファイルから、ごく一部を抜き出したい。 うまく途中だけ抽出したり、ファイルを分割する方法は? 答え ファイルの大きさによって対応を変えるとよい。 ファイルサイズがほどほどの場合 巨大すぎなければ、以下で分割できる。 csplit ダンプファイル.dump '/DROP TABLE IF EXISTS/' {*} ファイルが大きい場合 行数を調べて分割する場合は、「– Current Database:」のようなダンプファイルによくある表現で検索して、 egrep -n '^-- Current Database:' mysql_2014-11-18.dmp …… 401237:-- Current Database: `aaaa` 414577:-- Current Database: `bbbb` 425362:-- Current Database: `c

    【linux】巨大なファイルから必要な部分だけ抜き出す at softelメモ
  • MySQLでクエリキャッシュする方法

    このドキュメントの内容は、以下の通りです。 はじめに クエリキャッシュの設定が 0 の場合 クエリキャッシュの設定の確認方法 キャッシュサイズの設定 キャッシュのステータス my.cnfでの設定 クエリキャッシュでのSELECTのオプション はじめに MySQLのクエリキャッシュとは、SELECTステートメントのテキストを結果と合わせ格納します。 後で同じクエリを受け取ったときに、クエリの解析と実行をせずに、 クエリキャッシュから結果を取り出し、クライアントに返します。 同じクエリが何度も実行される環境では、クエリキャッシュが役に立ち、パフォーマンスが向上します。 クエリキャッシュの設定が 0 の場合 query_cache_size が 0 の場合は、 クエリキャッシュを無効になります。 query_cache_size=0 クエリキャッシュの設定の確認方法 クエリキャッシュの確かめ方を

  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
    iww
    iww 2011/10/06
    ALTER TABLE tbl2 ENGINE MyISAM; でデフラグ
  • guro_chanの日記 » MySQLのクエリをtcpdumpで調べる

    当なら tcpdump を使わなくとも MySQL 側でクエリログを取る設定にすれば良い。けれどもすでに稼働中の MySQL サーバであるから、設定を投入して再起動というわけにいかない。少しでもサービスが停止するとオラーって怒鳴る人が発生するので退っ引きならない。 クエリはTCPパケットに搭載されて運ばれてくるので何とか tcpdump で覗き見ることができないか調べたところ、公式サイトに載っていた。やった。 Learn to use the tcpdump and strings utilities. In most cases, you can check whether MySQL data streams are unencrypted by issuing a command like the following: shell> tcpdump -l -i eth0 -w –

  • MySQLでALTER TABLE文の進捗状況を確認する - SH2の日記

    MySQLでテーブルへのカラム追加やテーブルの再編成を行うには、ALTER TABLE文を使用します。MySQLのALTER TABLE文は、変更後の定義にもとづく作業用テーブルを作成し、変更前のテーブルから作業用テーブルへデータをコピーして、最後に二つのテーブルを入れ替えるという仕組みになっています。テーブルへのインデックス追加についても、現在のところ大半のケースで内部的にALTER TABLE文が実行されています。 ALTER TABLE文の怖いところは、処理がもうすぐ終わるのかどうかが分からないところです。テーブルサイズが1GBを超えるあたりから分単位の時間がかかるようになり、100GBともなると当に終わるのか?と見ていて不安になります。メンテナンス時間が限られている場合は、作業を中断すべきかどうか難しい判断を迫られることもあります。 実は、というほどではありませんが、ALTER

    MySQLでALTER TABLE文の進捗状況を確認する - SH2の日記
  • 2010-08-29 - @~の・・・と思った

    自宅で使ってるMySQLサーバに新しいデータベースを作りたくなったんだけど、rootパスワードを忘れてしまったので、ググってみたけどバージョン5.1ではその方法は使えなかったので、英語マニュアルを見たけど、再度忘れた時にやり方をまた英語で読むのがめんどくさいのでメモ。 mysqlを動かすユーザでログインする作業があるから外のネットワークからログイン出来ない環境にしてから作業した方がいいかも 以下 http://dev.mysql.com/doc/refman/5.1/ja/resetting-permissions.html からの抜粋メモ MySQLを動かしてるユーザでログインする MySQLを止める 以下の内容のファイルを/tmp/mysql-initとかいう名前で作る SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ここに新しいパスワー

    2010-08-29 - @~の・・・と思った
  • 1