Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

でかいテーブルをdumpしてimportしなおすときに、alter enable keysで "repair with keycache" に悩まされてたんですが、MySQL Forums見てたらそのものズバリなのを見つけたのでメモ。 http://forums.mysql.com/read.php?35,155467,166902 ご存知の方には当たりまえな感じですが、自分はそもそも repair by sorting と repair with keycache の2通りのメッセージが出し分けられていること自体に気づいてませんでした。 mysqldump mysqldumpをつかってデータベースを(そのままimportに使える)SQL文に吐き出します。 % mysqldump -uuser -ppass -hhost hoge > hoge.sql このときhoge.sqlの中身はこん
先日大きめ(といっても500万行くらい)のテーブルにインデックス付きのカラムを追加しようとして痛い目にあったので調査。 大きめのテーブルにカラムやインデックスを追加するとどうなるか 今回は単純に、「ALTER TABLE 〜 」で追加しようとしました。追加するカラムは3つで、 varchar(255) インデックスなし varchar(255) ↓のdate 型カラムとマルチカラムインデックスの形式のユニークインデックスあり date インデックスあり SQL を実行し、状況を「SHOW PROCESSLIST」で監視していたら、1つ目のカラム追加で次のような状態に… 最初にState が「copy to tmp table」状態になり、次の状態に遷移するまで1時間かかる 次にState が「Repair with keycache」状態になり、完了までに1時間かかる 次のカラム追加に対す
バイナリログファイルのレプリケーションを使用して、RDS for MySQLまたは MariaDB DB インスタンスと Amazon RDS の外部にある MySQL または MariaDB インスタンスとの間でレプリケーションを設定できます。 [開始する前に] レプリケートされたトランザクションのバイナリログファイルの位置を使用して、レプリケーションを設定できます。 Amazon RDS DB インスタンスでレプリケーションをスタートするために必要なアクセス権限は限定されており、Amazon RDS マスターユーザーは利用できません。そのため、Amazon RDS の mysql.rds_set_external_master (RDS for MariaDB および RDS for MySQL メジャーバージョン 8.0 以前) または mysql.rds_set_external_
目黒川の桜きれいですね〜(*^^*)…なーんてガラじゃないことを言いたくなるくらい良い咲きっぷりでしたよ、エエ。で、来週末、花見に行くんだけど、まだ散らないでほしいっすねー。 えーっと、久しぶりにMySQLの記事。binlogを使ったリストア手法について。ネットを漁るとMySQLの運用に関する記事は多くヒットするんだけど、障害からのデータリカバリ、特にロールフォワードを扱った記事が思ったより多くない。おれは運が良いのか悪いのかMySQLのデータリカバリをしなければならないような局面に何度か直面しているので、手順について書いてみようかな、と。ここではMySQL〜5.5を対象にしている。直近での最新のメジャーバージョンはMySQL5.6なんだけど、おれはまだ5.6について大して知らない。5.6ならもっとイケてるやりかたがあるかもしれない。あったらいいな。 0. 環境 次のような環境を前提として
RDS MySQLで、5.6のエンジンがサポートされた。 Amazon Web Services ブログ: 【AWS発表】 Amazon RDSがMySQL 5.6をサポート! そのなかで バイナリログアクセス - バイナリログを付属のmysqlbinlogツールを使って、ダウンロードしたりストリームすることができます。 この機能はオンプレミス環境とのデータの同期や、監査ログ、分析、レプリケーションエラーのデバッグといった様々な目的に使うことができます。この機能を利用するには、自動バックアップ機能を有効にする必要があります。 と書かれている。まずは権限の確認。ユーザ名「test」で作ったRDS MySQL5.5と5.6を比較すると MySQL 5.5 mysql>SHOW GRANTS FOR test\G *************************** 1. row ******
“InnoDBはクラスタインデックスを用いてデータが格納されている。そのため、PRIMARY KEYを用いた検索はとっても高速であるが、セカンダリインデックスを利用した検索はそれほど速くない。また、セカンダリインデックスのリーフノードにはPRIMARY KEYの値が格納される。そのため、サイズが大きなカラム(VARCHARなど)をPRIMARY KEYにしてしまうと、無駄なディスク領域を消費してしまうので注意が必要だ。VARCHARなどの文字列は数値よりも比較にかかる計算コストが高いので、文字列をPRIMARY KEYにするのは避けるべきである。 また、明示的にPRIMARY KEYを作成しない場合には、内部的に6バイトのROWIDがPRIMARY KEYとして作成されるが、これは無駄な領域であるので極力PRIMARY KEYを明示的につけるようにしよう。” — 漢(オトコ)のコンピュータ
昨日の夜にmuninをフラフラーっと見てたんです。とあるDBサーバで今度作業するっていういので今の状況を確認しておこうと見たら・・・・ 2GBもswapしてるじゃないですか! アタヽ(д`ヽ彡ノ´д)ノフタ うーん、swap I/Oの頻度はそこまで多くないから死にはしないけど原因見つけて対処しないとなっと。 前に読んだhttp://d.hatena.ne.jp/fat47/20121121/1353495937:【メモ】MySQLでのswap発生とNUMAアーキテクチャを思い出しました。 「お、確かにR410でCPU2個詰めるからもしかしたら・・・」 と思ったので搭載CPUの数を調べようと/proc/cpuinfoを見たら # cat /proc/cpuinfo | grep physical | grep id physical id : 1 physical id : 1 physic
1. クレデンシャルファイルの作成 # vi /opt/aws/apitools/rds/cred.txt AWSAccessKeyId=アクセスキーID AWSSecretKey=シークレットキー # アクセスキーID と シークレットキーは下記から # https://portal.aws.amazon.com/gp/aws/securityCredentials 2. 設定 export AWS_RDS_HOME=/opt/aws/apitools/rds export AWS_CREDENTIAL_FILE=/opt/aws/apitools/rds/cred.txt export PATH=$PATH:/opt/aws/bin/ export EC2_HOME=/opt/aws/apitools/ec2 export JAVA_HOME=/usr/lib/jvm/jre expo
初期設定 RDSのコンソール上で下記を設定してください slow_query_log=1 log_output=FILE slow_query_log_file=/rdsdbdata/log/slowquery/mysql-slowquery.log (デフォルト値) log_outputはデフォルトでTABLEとなっています。 TABLEでも mysql.slow_query テーブルにログが溜まっていくのですが、ほったらかしにしてログが膨れ上がることが多々あるでしょう。 殆どの場合、直近のログさえあれば十分なのに、「mysql.slow_queryが膨れ上がってSELECTの結果が終わらない!!」 ということはしばしばあるかと思います。私もなりました。 FILEにしていれば、1時間毎のログが1日分残ります。これなら、ファイルが大きすぎて分析できない!ということは無いでしょう。 分析方法
RDSのクエリ調査を実施する際にすべきこと。 (1)RDSの設定 general_log:1 ・・・全てのクエリをログに残す slow_query_log:1 ・・・スロークエリ(時間のかかっているクエリをログに残す) long_query_time:1 ・・・スロークエリの時間(秒) (2)設定確認 show global variables like 'general_log'; show global variables like 'slow_query_log'; show global variables like 'long_query_time'; (3)全クエリの確認 select * from mysql.general_log; (4)スロークエリの確認 select * from mysql.slow_log;
cloud9プロジェクトの作成 cloud9でPHPを選択してプロジェクトを作ります。 MySQLの起動 $ mysql-ctl start Installing MySQL * Stopping MySQL database server mysqld ...done. * Starting MySQL database server mysqld ...done. * Checking for tables which need an upgrade, are corrupt or were not closed cleanly. MySQL 5.5 database added. Please make note of these credentials: Root User: hgoe Database Name: hoge * Starting MySQL database se
さくらVPSでPHPで開発したシステムを動かしていたのですが、一部の入力画面の処理はWebで作るのはちょっと大変そう。 じゃぁACCESSなら画面作るの簡単だし…と思ったけど、MySQLはVPSで動いていてiptableでポートはふさがっている。 クライアントは固定IPアドレスではないので、IPアドレス固定でポートは空けられない。 MySQLのポートを無条件で空けたくない。 クライアントはWindowsだから、SSHをコマンドで…というのはちょっと面倒。 という状況に陥って、どうしようか考えていました。 TeraTermとかPuTTYもアリだけど、もっと簡単にできないものか。 と探していたら、ありましたわこれが。 PortForwarderという名前そのまんまのものが。 さっそく使ってみたら良い感じです。 クライアントはWindows7の64bit版。 これでちゃんと動きます。 バッチファ
クラウド時代のWebアプリケーション・スマートフォンアプリを開発・運用する会社です。 03-4577-8680 03-6673-4950 ネタバレ:犯人は ヤス xdebug。 PHPExcelというPHPライブラリがありまして、PHPでシンプルなExcelを生成するのに便利なので、何かと利用しているわけです。 #「シンプルな」というのはどういうことかと言うと、 #既存のExcelファイルを開いて操作することも可能ではあるのですが、 #いわゆる「Excel方眼紙」や、図表が入っている場合には、ほぼ再現できないためです。 さて、このPHPExcel、「遅い」ともっぱらの評判です。 しかし。 手元の環境で、 ・6×50行 ・150シート というデータで生成しているのですが、これが10分以上かかる(!)というのは、さすがに何かおかしいと思うわけです。 検索した結果、高速化させる方法としていくつか
目的 Windows8.1(あえて64bitと明記)でvagrantでテストサーバを立てる。 都合上、php4/mysql4/apache2で構成。 用意するもの vagrant 1.3.5(最新) VirtualBox 4.2 現在4.3が最新ですが、Windows系64bitではVirtualBox Host-Only Ethernet Adapterがインストールできず積みます。(積みました) ソースはここ→ https://github.com/mitchellh/vagrant/issues/2392 お好みのboxファイル 今回は http://www.vagrantbox.es から CentOS 6.4のminimalなものを探して、 https://github.com/2creatives/vagrant-centos/releases/tag/v0.1.0 構成のもの
macOS Sierra 版(3部作になりました)はこちら。 [【macOS Sierra】Mac OSX 10.12 macOS Sierra にRuby + Rails4 開発環境の構築 【初心者必見】] (http://qiita.com/keneo/items/e81bad87995fae566234) [【macOS Sierra】Mac OSX 10.12 macOS Sierra にAMP環境の構築【初心者必見】【続編】] (http://qiita.com/keneo/items/8bee152aee75123b7a07) [【macOS Sierra】Mac OSX 10.12 macOS Sierra にNode.js 開発環境の構築 【初心者必見】] (http://qiita.com/keneo/items/08da941711a224b06700) [【El Ca
こんにちは、牧野です。久々のブログになりました。。 私事ですが、昨年末、鎌倉に引っ越しました。 今は毎日、鎌倉から1時間半くらいかけて会社に通っています。 前の自転車通勤と比べて片道1時間くらい余計にかかるのですが、通勤電車は混んでおらず(大体11時出社)、席に座って好きなことをして過ごせるので、かえって楽になりました。 会社が始まるのが遅ければ、鎌倉暮らしはおすすめです。 さて、今回はPHPのコードカバレッジについてです。 コードカバレッジとは、プログラムコードのうちどれくらいの割合実行されたのかを表すものです。 例えば、システムのテストをした結果、コードカバレッジが100%になっていれば、全てのプログラムを一通りテストできた、ということが言えます。 今回やりたかったのは、ウェブアクセスして動作確認を進めていく中で、全体のうちどれくらいの割合テストできたのか、どの部分がまだテストできてい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く