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

こんにちは。増田です。Amazon で PS4 Pro の料金が定価に戻っていたので、日曜日にうっかりポチッとしてしまいました。今日も元気です。 先月、RDS for MySQL を 5.5.40 から 5.5.53 にアップデートしました。今月で MySQL 5.5.40 のサポートが切れ、強制アップデートされるためです。 私が対応するのは今回で 3 回目になりますが、今までは Staging 環境で検証した後、深夜作業で Apply Immediately もしくは Reboot していました。 今回は MySQL のメジャーアップデートではないため、問題が起きる可能性は少ないのですが、仮に問題があった場合にロールバック出来ません。 そのため、出来るだけ安全側に倒してアップデートしてみました。この記事を書くことで、属人化を廃することを期待していたり、もっと良いやり方があれば知りたいとい
MySQL で EXPLAIN を使って実行計画を調べていると Extra フィールドに「Select tables optimized away」というメッセージが表示された。これはなんだろうか? mysql> explain select max(id) from products ; +----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+
こんにちは。エンジニアの中山です。 最近、ふるさと納税を初体験しました。 手間がかかりそうという先入観を持っていたのですが、実際にはネットで申し込めて、決済はクレジットカードで、美味しい特産品がすぐに届きました。 こんなに簡単なら、もっと早くから知っていればよかったのにと、知識の大切さを再認識しました。 マネトク!にはそんなお得な情報がたくさんあります。 さて、本題。 サービスが成長してデータベースが大規模化・高使用頻度化してくると、やはり遅いクエリが気になってきます。 対策として、インデックスの工夫、クエリのチューニング、キャッシュ設定、高速なハードウェアへの置き換え等の施策を行うことで、改善をすることができます。 しかし、さらに成長が進むと、それらの手段だけでは足りず、次の手が欲しくなってきます。 高速化する手段の1つとして、パーティショニングが手軽で効果的なので試してみました。 パー
MySQLのロック機能を使って楽に cronジョブの多重実行回避をしようという話 たかがロック、されどロック システムで非同期にキューの処理などを行う場合、cronを使って短い間隔でバッチジョブを起動してキューを処理するという方法がよく取られるが、キューの混み具合によってはバッチジョブにかかる時間が長くなってしまうため、前に実行されたジョブがまだ走っているかどうかチェックして、もし走っている場合は処理を実行せずにそのまま終了するといった制御が必要になる。 たまにこの制御をしていないバッチジョブが溜まりに溜まってシステムをハングさせているのを見かける。 適当な空のファイルを作成してこれを flockするとか、システムコールレベルでアトミックに作成できることになっているオブジェクト(シンボリックリンクなど)を駆使してロックの代わりにするとかといったテクニックが典型的に利用されるが、これらを真面
MySQL 5.6での機能強化点(その1) - パフォーマンスと使い勝手を大きく向上 | Think ITに書いてあるようにMySQL 5.6からオンラインでDDLを実行してもレコードのINSERT, UPDATEはできるようになったとあるので、これが本当なのか検証してみた。MySQLにおいてレコード数の多いテーブルに対するALTER TABLE文の発行は以前から問題視されていて、pt-online-schema-changeみたいなものを駆使するのが常套手段だった。 検証環境 ConoHa VPS 2GB Ubuntu 14.04 MySQL 5.6.17-0ubuntu0.14.04.1-log my.cnf データはWikipediaのダンプデータのenwiki-20140502-redirect.sql.gz というテーブルを使用。テーブル定義はこんな感じ。 CREATE TABL
ただ書き込みの劣化はゆるやかで、リクエストが極端に遅延するような感じではありませんでした。 まさに無停止でのテーブル定義の変更に成功している形! 1億レコードのテーブルで実行した場合 ちなみに、1億レコードある別のテーブルでも検証してみました。 Altered `mydatabase`.`_click_new` OK. 2016-03-11T15:05:07 Creating triggers... 2016-03-11T15:05:08 Created triggers OK. 2016-03-11T15:05:08 Copying approximately 11802820 rows... Copying `mydatabase`.`click`: 1% 31:14 remain # ... 定義の変更には30分くらいかかりましたが、こちらもリクエストには大きな影響を与えることなく完
今更だけど MySQL 5.6 ではオンラインDDLの機能が追加されている。今日はこのオンラインDDLについて勉強したことを書いてみる。 MySQL のマニュアル MySQL :: MySQL 5.6 Reference Manual :: 14.11 InnoDB and Online DDL にいろいろ書いてある。いまから書くことはこのマニュアルから得た知識が元になっている。 DDL てなによ? データではなく、テーブル自身を操作するためのSQL文のこと。CREATE, ALTER, DROP, TRUNCATEなど。オンラインDDLではCREATE INDEX, DROP INDEX, ALTER TABLEに適用される。 http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_ddl 5.1 までの ALTER TABLE
mysqldump 5.0.45 大量のデータをダンプし、復元しようとすると以下の例外が発生。 ERROR 2013 (HT000) at line xxx: Lost connection to MySQL server during query ダンプファイルのエラー行数をみてみると長いSQL文が生成されていた。 [オプション] http://dev.mysql.com/doc/refman/4.1/ja/mysqldump.html この中のオプションで、 e, --extended-insert というオプションがあり、これがデフォルトで使用されているよう・・・ これは、「さらにコンパクトで速い挿入ステートメントを提供」ということらしいが これを解除して復元出来るようになった。 mysqldump --opt --extended-insert=false -uroot -p da
mysqldumpででかめのテーブルを出力してたら、「mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table 」とかいうメッセージがでて途中で失敗しちゃいやんの。 ググッてもなかなか日本語の情報ないねー。 英語読み読み、mysqlのグローバル変数 net_read_timeoutとnet_write_timeout値をいじるらしい、と。 mysql> show variables like '%timeout%' したら、readが30でwriteが60だった。 mysql> set global net_read_timeout=3600; mysql> set global net_write_timeout=3600; とかやったら、タイムアウトしなくなりました。 #
JavaScriptとMySQLがつながる。そう Node.jsならね。 前置き node.js始めて3日目程度の知識で書いています。 また、MySQLもそんなに詳しいわけではないです。 この記事は本家のドキュメントを元に作成しました。 コードもほぼ本家のコピペです。 間違い等ありましたらコメントでおしえてください。 ここではnode-mysqlを使います。 インストール npm install mysql コネクション var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret' }); //これは省略してもoK。 connection.connect();
こんにちは、dotstudioの代表ののびすけです。 前回の記事(AzureでMySQLのセットアップと接続方法)に続きMySQLの話です。 今日は初心者向けに、Node.jsからMySQLにアクセスする方法をチュートリアル的に紹介します。 MySQLモジュール(ドライバー)こちらのモジュールを利用します。 おそらく一番利用されているMySQLのNode.jsモジュール(ドライバー)になります。 https://www.npmjs.com/package/mysql npm init --yes npm i mysql --save これでインストールはできました。 MySQLデータベースを用意接続を試す前にデータベースが用意できているか確認しましょう。 前回の記事(AzureでMySQLのセットアップと接続方法)などを参照してみましょう。 仮データをいれておきましょう。 今回は’test
1 (5) ( ) JPOUG> SET EVENTS 20120721 2012/07/21 2 • DB Oracle MySQL – RDBMS – Oracle MySQL 8 2 • Twitter @sh2nd • id:sh2 • 3 • – 1 http://d.hatena.ne.jp/sh2/20090802 – 2 http://d.hatena.ne.jp/sh2/20090816 – 3 http://d.hatena.ne.jp/sh2/20100112 – 4 http://d.hatena.ne.jp/sh2/20100510 • 4 • 2 4 5 • • A • D A • Apache Bench • Apache JMeter • HP LoadRunner B • SPECjbb2005 C • Oracle Real Application Te
HOMEサーバ管理インストールメモメールサーバ構築のまとめ(複数のバーチャルドメイン+Postfix+MySQL+Dovecot+procmail+Clam AntiVirus+spamassassin+postfixadmin) メールサーバ構築のまとめ(複数のバーチャルドメイン+Postfix+MySQL+Dovecot+procmail+Clam AntiVirus+spamassassin+postfixadmin) 2011.01.06 postfix インストールメモ postfix, postfixadmin, procmail, メールサーバ 2013/02/23追記 dovecot2にアップグレードしたエントリーはこちら 2013/02/22追記 TLS対応。エントリーはこちら 2013/01/15追記 wpの設定を変えたこともあり見難いので随時記事を添削します。 201
Cloud9でDB接続するやり方を毎回ggってるのでメモ。 Terminal側での処理 まずは起動 $ mysql-ctl start mysql> の入力画面にする $ mysql-ctl cli 新規DBや新規テーブルの作成はTerminalから直接SQL叩けばOK ※phpMyadminもインストールできる $ phpmyadmin-ctl install Setting Up PHPMyAdmin ちなみにphpMyadminのURIは https://[workspace名]-[UserName].c9users.io/phpmyadmin/index.php PHP側からDBを使う $servername = getenv('IP'); $username = getenv('C9_USER'); $password = ""; $database = "使用するDB名"; $
ウィスキー、シガー、パイプをこよなく愛する大栗です。 MySQLやAuroraでRead Heavyな環境だとだとRead Replicaを多数用意すると思います。多数のRead Replicaを効率的に使用するためにはリクエストの負荷分散が必須です。MySQLの負荷分散を行うためのプロダクトはいくつかありますが、今回はMySQL Routerを試してみました。 MySQL Router MySQL Router プロダクトのページにトップには、以下の様な記載があります。透過的なルーティングと言うことで、MySQLに接続するつもりでMySQL Routerに接続すれば良いということです。 MySQL Routerはアプリケーションと任意のバックエンドのMySQLサーバー間の透過的なルーティングを提供する軽量のミドルウェアです。データベースへの接続を適切なバックエンドのMySQLサーバーへ効
先日、PHPのMySQL関数が5.5で非推奨になり、将来のバージョン(PHP6とか?)で使えなくなるという話が出ました PHP 5.5 で mysql 拡張モジュールが非推奨になり、E_DEPRECATED エラーが表示されるようになりました。将来の PHP のバージョンで削除されます。 mysql 拡張モジュールに依存する CMS を使ってサイトを運用している場合、将来、運用サーバーに導入されている PHP のバージョンの切り替えに備えて、 mysqli もしくは PDO に対応した CMS のバージョンへのアップグレードするか、別の CMS やウェブサービスに切り替える必要があります。 PHP 5.5 で mysql 拡張モジュールが非推奨になり、将来において WordPress を筆頭にさまざまな CMS のアップグレード作業が必要になります – Sarabande.jp なんだかこ
MariaDBとは? MariaDBは、MySQL派生のオープンソースな関係データベース管理システム(RDBMS)である。 MariaDBの開発は、MySQLのオリジナルコードの作者でMySQL ABの創設者でもあるMichael “Monty” Wideniusにより、 現在オラクルによって所有されているMySQLをフォークして立ち上げられたプロジェクトにより行われている。 配布ライセンスは、GNU General Public Licenseのバージョン2。 via http://ja.wikipedia.org/wiki/MariaDB 基本的にはMySQLと互換のリレーショナルデータベースです。 特別な学習コストなく使えるそうです。 つい先日、MariaDB 10.0.1がリリースされたので、インストールをしてみました。 MariaDBをインストール CentOS 6.3で試してみ
こんにちは、@yoheiMuneです。 本日はAmazonLinuxやCentOSにMySQL5.7をインストールする方法をブログに残したいと思います。 目次 yumレポジトリの追加とインストール 今回はyum経由でMySQLをインストールします。最初から入っているyumのレポジトリは少し古いので、MySQL5.7のレポジトリを追加します。 yum -y install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm なおこの記事以降で、さらに新しいMySQLが出ているかもしれませんので、最新のrpmはこちらより確認してください。 レポジトリの追加ができたら、インストール可能な内容を確認します。 $ yum repolist enabled | grep "mysql.*-community.*" my
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く