第5回中国地方DB勉強会で発表したスライドです。MySQLでよく起きる問題について、傾向と対策をまとめています。Read less
あまりにも処理に時間がかかるようなSQLを実行してしまい、MySQLがうんともすんとも言わなくなってしまうような状況、よくありますよね。っていうか、まぁそんな状況あってはならないんですが、時たまあります。そんな時、問題となっているクエリの処理を止めたいわけです。 特定のクエリを止める方法 MySQLで実行中のクエリ一覧を見て、SQLを強制終了する方法 こちらを見てもらえればやり方は分かります。単純にMySQLに入って、show processlist;で問題のあるクエリを発見し、プロセスIDを kill するだけ。とても簡単。 複数のクエリを一括で止める方法 今回は問題のあるクエリが100個あったらどうする…?的なのを解決するエントリーです。まぁ、問題あるクエリ100個ある状況は、アプリ的に問題あるんじゃね?っていうレベルですが。 1個ずつプロセスIDをコピペして…なんてやってられないです
クラウド時代の運用監視サービス「New Relic」にMySQLを監視するためのPLUGINをインストールする方法をまとめてみました。 前提 New Relicのアカウントを取得済みであること まだ取得されてない方はこちらをどうぞ 動作環境 監視エージェントを実行するサーバにJava1.6以上がインストールされていること 監視エージェントを実行するサーバにMySQLクライアントがインストールされていること 監視対象のMySQLが5.0以上であること 事前準備 MySQLに監視用アカウントの作成を行います mysql> CREATE USER newrelic@'%' IDENTIFIED BY 'himitsu'; mysql> GRANT PROCESS,REPLICATION CLIENT ON *.* TO newrelic@'%'; ユーザ名や接続許可するネットワークなどは適宜変更
解説が不十分な部分ついては、補足(コピペで本文に取り込める体裁だとありがたい)を頂けると助かります! mysqlのバックアップ手法に関しては様々な方法がありますので随時追記していきたいと思います! サーバー構成に関しても様々なパターンがありますので、随時追記していきたいと思います。 mysql-server 5.1.8以降では、以前の手法ではWarningが発生するようになったため、 それ回避した上での手法を公開したいと思います。 まずmysql5.1.8以前のバージョンでのバックアップ手法 mysqldump --opt --all-databases --default-character-set=binary -u root > /root/backup/mysql/all_db.sql
Mroongaについて MroongaはMySQL用のストレージエンジンです。すべてのMySQLユーザーに高速な日本語全文検索機能を提供します。Mroongaは以前はGroongaストレージエンジンと呼ばれていました。 特徴 最新リリース 2024-09-06にリリースされた14.07が最新リリースです。 インストール 最新記事 Mroonga 14.07リリース! (2024-09-06) Mroonga 14.04リリース! (2024-06-12) Mroonga 13.05リリース! (2023-08-02) Mroonga 13.01リリース! (2023-04-17) Mroonga 13.00リリース! (2023-02-09) Mroonga 12.12リリース! (2023-01-29) Mroonga 12.11リリース! (2023-01-06) Mroonga 12
AngularJSとPHPを組み合わせたCRUDのサンプルです。なるべくシンプルになるように作ってみました。 全ソースコード https://github.com/naga3/angular-php-basic 以下のデータベースとテーブルを作成して、それ以下の3ファイルを入力してindex.htmlを開くと動きます。 CREATE DATABASE school; USE school; CREATE TABLE students( id SERIAL PRIMARY KEY, name VARCHAR(255), age INT, comment TEXT ); <!doctype html> <html lang="ja" ng-app="app"> <head> <meta charset="utf-8"> <title>名簿</title> </head> <body ng-co
Alternative title: The things we do to store U+1F4A9 PILE OF POO (💩) correctly. Are you using MySQL’s utf8 charset in your databases? In this write-up I’ll explain why you should switch to utf8mb4 instead, and how to do it. UTF-8 The UTF-8 encoding can represent every symbol in the Unicode character set, which ranges from U+000000 to U+10FFFF. That’s 1,114,112 possible symbols. (Not all of these
こんにちはこんにちは。最近お腹痛いばっかり言ってることで有名なiwanagaです。 DeNAは外部的にはプラットフォーム的な部分の方がフィーチャーされることが多いですが、実はソーシャルゲームの提供も行っています。怪盗ロワイヤルとか、どこかで聞いたことがあるのではないでしょうか。 僕はDeNAでソーシャルゲームが誕生した辺りからずっとサーバサイドを見てきましたが、そんな運用の中で自分が貯めてきた知見とかTIPSをご紹介したいと思います。 かれこれ10タイトル近くはレビューしたり運用したりしてるため結構言いたいことはいっぱいあるので、小出しにしつつ評判よければ次も書きます。 ソーシャルゲームのためのMySQL入門一覧 ソーシャルゲームのためのMySQL入門 - Technology of DeNA ソーシャルゲームのためのMySQL入門2 - Technology of DeNA 「MySQL
ブログを更新しました。元の記事はコチラ herokuはMySQLをサポートしてないので、MySQLを使っている既存アプリをPostgresqlに移行してみた。 まぁheroku使いたいがためにデータベースを変更するってのもどうかと思いますが、実験がてら。Wordpressとかをherokuで無料で動かしたいって人にはちょっとは役に立つかも。 ここに可能性のある方法がならんでいます。 Converting from other Databases to PostgreSQL いろんな方法がありますが、誰にでも取っつきやすい(?)、PHPでコードを書いてる人がいたので、使わせてもらいました。 バグレポート送ったんだけど、速攻で修正してくれた上に、律儀に名前まで載っけてくれてる…。なんか嬉しい。 PHP_my2pg PHP_my2pg PHP_my2pgのページにSource codeがあるので
mysqlでは、collate = utf8_unicode_ciを指定すると、大文字-小文字だけでなく、全角-半角を同一視できるそうですが、実際にどの文字が同一視されるのかを試してみました。 collateとは http://tetlist.info/2009/01/mysql ↑このエントリでも分かりやすく紹介されていますが、collate(照合順序)とは、文字を比較(一致/不一致や表示順)する際のルールです。 utf8_unicode_ciで大文字-小文字だけでなく、全角-半角を同一視 mysqlのデフォルトcollateであるutf8_general_ciでは、大文字-小文字を同一視しますが、utf8_unicode_ciでは、さらに半角-全角も同一視します。 ※ci とは Case Insensitive の略称のようです tableやcolumn自体にcollateを設定する
さくらインターネット研究所さんの「MariaDB Galera Clusterを試す」という記事を読んで居ても立ってもいられなくなり、さっそく AWS で構築してみました。 上記の記事によれば 簡単にまとめると次のようになります。 Galera Replicationが複数のRDBMをレプリケーションするwsrep APIを提供し、同期をとります 完全同期型であるため、すべてのノードがアクティブかつマスターとなります クラスターノードのどれに対してもリード/ライトが可能です ノードの追加/削除は自動で行えます クライアント接続は通常のMySQLとなんら変わりなく使えます via. MariaDB Galera Clusterを試す (1) « さくらインターネット研究所 おー!スレーブ/マスター形式のレプリケーションよりも、断然使いやすそうやんか! ってわけで AWS の ELB 配下に複
DBエンジニアのための技術勉強会というイベントで、リレーショナルモデルにおけるDB設計について話す機会を頂いた。リレーショナルモデルは非常に重要であるにも関わらず、現場ではないがしろにされてしまっている。その結果、アプリケーションのロジックを上手くクエリで表現できず、開発現場では非効率な開発が行われ、多くの人がデスマ的な状況に追い込まれている。そういう危機意識について、これまで何度か本ブログでも書いてきたし、WEB+DB Pressで連載している動機もその点にある。リレーショナルデータベースはやはりリレーショナルデータベースとして使うべきだ。そのための鍵となるのが、DB設計である。 今回はなんと約2時間の持ち時間を頂いた。リレーショナルモデルについてはこれまで何度か話す機会を頂いたが、2時間というのは最長記録である。それに合わせてスライドもボリュームたっぷりのものになった。過去のスライドと
さくらインターネットMySQLを自動バックアップしてgmailに送る: PHPの種 ブログで運用していたところ、記事にこんなコメントが。 ネットワーク越しにバックアップするとなると、何らかの暗号化をした方が望ましいと思いますが、何か良い方法はないものでしょうか。 確かに言われてみればそうですね。MySQLにブログデータしか入ってなかったので、セキュアな考えが抜け落ちてました。ありがとうございます。 さくらのレン鯖にはgpg2が入っているので、それを活用させてもらいましょう! /usr/local/bin/mysqldump –opt -c -h [MySQL SERVER] -u [USERNAME] –password=[PASSWORD] [DB NAME] | /usr/local/bin/gpg -c –cipher-algo AES256 –batch –passphrase “
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く