タグ

mysqlに関するouestのブックマーク (268)

  • 大人のためのInnoDBテーブルとの正しい付き合い方。

    InnoDB関連でよくある質問のひとつに「テーブルのメンテナンスは何をすればいいんですか?」というものがある。InnoDBMySQL 5.5でデフォルトストレージエンジンとなるため、InnoDBのテーブルメンテナンス計画を立ようと思う機会も増えることだろう。そこで、今日はInnoDBのテーブルメンテナンスの各種方法となぜそうしなければいけないかという理由を解説しようと思う。 ANALYZE TABLEテーブルメンテナンスの代名詞といえば、インデックス統計情報の更新ではなかろうか。運用を続けるうちに、知らず知らずインデックス統計情報が狂ってしまい、思うような性能が出ない。RDBMSにはそのような問題がつきものであるが、InnoDBの場合、ANALYZE TABLEは不要である。なぜなら、InnoDBが自発的に統計情報を更新するからだ。InnoDBは以下の条件に適合すると、ANALYZE T

    大人のためのInnoDBテーブルとの正しい付き合い方。
  • Launchpad

    46,736 projects, 2,024,682 bugs, 1,009,473 branches, 81,487 Git repositories, 3,137,519 translations, 815,739 answers, 76,107 blueprints, and counting...

  • はてなブログ | 無料ブログを作成しよう

    知らないヒトが残したがった日常を 〖日記祭〗 頑張って微調整しましたがスマホでは見づらいかもしれません 2024年12月8日、下北沢にて日記祭。 note.com その名の通り、日記をたのしむイベントです。 誰かの日々の日記を""にまとめた「日記」即売会や、日記にまつわるテーマのトークショーや音楽ライブ、作品展…

    はてなブログ | 無料ブログを作成しよう
  • Maatkit の mk-query-profiler を少し使ってみた - @kyanny's blog

    Maatkit というMySQL 用のユーティリティプログラムがあります。詳しくは インフラ系エンジニア勉強会 "hbstudy"でMaatKitについて発表してきました - marqs blog とか maatkitを一通り使ってみたメモ - ククラフト とかをどうぞ。 mk-query-profiler という、 SQL のプロファイリングをするやつを少し使ってみたのでメモ。そもそもプロファイリングって何よ?というと、たぶん 漢(オトコ)のコンピュータ道: プロファイリングで快適MySQLチューニング生活 みたいな話です。 SET profiling=1; が使える環境ならばそっちを使ったほうが良いのかも。 以下、実行例。諸事情により一部伏せてます。 -vv は verbose の意で、これつけないと I/O Operations と InnoDB Data Operations が表

    Maatkit の mk-query-profiler を少し使ってみた - @kyanny's blog
  • プロファイリングで快適MySQLチューニング生活

    MySQL 5.1からデフォルトで有効になっている便利な機能としてプロファイリングというものがある。MySQL 5.0でも利用出来たのだが、実験的な機能という位置づけであり、搭載されていたのはGPL版のMySQL Community Server限定だった。MySQL 5.1からは全てのエディションでプロファイリングを利用することができる。 プロファイリング機能を利用すると、クエリの状態(特に状態遷移やリソースの消費状況)を詳細に分析できるのでとても便利だ。MySQLエンジニア必携の機能といって良いだろう。というわけでプロファイリング機能の使い方を説明しよう。 MySQLサーバにログインしたら、まずは次のようにしてプロファイリングを有効にする。 mysql> SET profiling=1; すると、クエリの情報が記録されるようになる。次に、分析したいクエリを実行する。クエリはなんでもいい

    プロファイリングで快適MySQLチューニング生活
  • nabokov7; rehash : マイ・ブラックホール (2) - いかにして私はブラックホールに辿り着いたか

    July 24, 200915:39 カテゴリmysqlプログラミング マイ・ブラックホール (2) - いかにして私はブラックホールに辿り着いたか ブログのアクセス解析用に使うストレージを選定するのに先だって,こんな条件下での速度比較をしてみた。 主な処理は,ブログ毎,あるいはページ毎のアクセス数のカウントアップ。つまり,ブログid & 記事id をキーとして,memcached なら set/incr, sqlなら insert 〜 on duplicate key update 〜 文の発行をする。200個のプロセスが,それぞれ平行して「あるキーのカウントアップ(書き込み) を行い,続いて別のキーの読み出しを行う」という処理を500回繰り返す。(合計10万回のカウントアップと10万回の読み出しに相当。)ストレージは,ベンチマークを行うスクリプトとは別のサーバ上にあり,必ずネットワーク

  • HandlerSocketソースコード公開しました | BLOG - DeNA Engineering

    はじめまして、樋口と申します。 先日のDeNA Technology Seminar #2でお話させていただきました HandlerSocket Plugin for MySQL のソースコードを公開しました。 HandlerSocketとは? 簡単に言うと、MySQLデータベースへのアクセスを高速化するためのプラグインです。MySQLSQLパーザをすっ飛ばし、ネットワーク通信とマルチスレッド処理周辺を置き換えることによって、InnoDB等のデータベースエンジンの性能を限界まで引き出します。 このHandlerSocketですが、すでにモバゲータウンにて実際に運用しています。従来MySQLとmemcachedの構成で運用していた箇所を、HanderSocketを組み込んだMySQLだけの構成に置き換えました。その結果、MySQLサーバの負荷軽減、memcachedの負荷軽減、ネットワーク

    HandlerSocketソースコード公開しました | BLOG - DeNA Engineering
  • Geohash で緯度経度の範囲検索のベンチマークとか - Pixel Pedals of Tomakomai

    Geohash で特定範囲内の地点を取得する時は、以下のような戦略をとるといいみたいです。 東京タワーの周りを探す場合は、「xn76gg」だけを検索するのではなく、’xn76gu’,'xn76gf’,'xn76u5′ ,’xn76ge’,'xn76gs’,'xn76uh’,'xn76u4′,’xn76gd’,'xn76gg’も同時に検索することで、おおよそ 2km*3kmの範囲で検索が可能です。 緯度経度を文字列で表すGeoHash - @masuidrive blog 実際にやってみました。以下の赤い領域に10万個の地点を設置し、緑枠内に含まれる地点(今回は127件)を検索します。緑枠は、(35.727353, 139.716654)〜(35.827353, 139.816654)の範囲です。 下準備 MySQLに以下のようなInnoDBのテーブルを作りました。 CREATE TABLE

    Geohash で緯度経度の範囲検索のベンチマークとか - Pixel Pedals of Tomakomai
  • A Better Cached

    下記の論文紹介です。Thesis introduction: Se Kwon Lee, Jayashree Mohan, Sanidhya Kashyap, Taesoo Kim, and Vijay Chidambaram. 2019. Recipe: converting concurrent DRAM indexes to persistent-memory indexes. In Proceedings of the 27th ACM Symposium on Operating Systems Principles (SOSP ’19). Association for Computing Machinery, New York, NY, USA, 462–477. DOI:https://doi.org/10.1145/3341301.3359635

    A Better Cached
  • Re: @kazuho: handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] - blog.nomadscafe.jp

    handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] kazuho (Kazuho Oku) http://twitter.com/kazuho/status/21477219149 考えて答えてみる。 HandlerSocketやmycachedを利用し、MySQLへの接続数が数万単位で行えるようになったり、より多くのクエリ数が発行できるようになっても、memcachedは不要ではないし、使うべきケースもあります。 memcachedは単なるKVSではなく、ExpiresとLRUがついたキャッシュサーバです。キャッシュオブジェクトには期限を付ける事ができ、期限が過ぎたキャッシュは無効にされ、またアクセスがされていない不要になったオブジェクトは削除され、空いたスペースは新しいキャッシュオ

  • MySQLのconfigureオプションを知りたいとき - かみぽのメモ

    MySQLのバイナリパッケージとか、自分がコンパイルしてないMySQLのconfigureオプションを知りたいときはmysqlbugスクリプトを使うとよいです。 % VISUAL='grep "Configure command" 1>&2' /usr/local/mysql/bin/mysqlbug > /dev/null Configure command: ./configure '--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/data' '--libexecdir=/usr/local/mysql/bin' '--with-comment=MySQL Community Server (GPL)' '--with-server-suffix=' '--enable-thread-safe-client' '

    MySQLのconfigureオプションを知りたいとき - かみぽのメモ
  • 今日の MySQL - Partitioning 編 - - 日向夏特殊応援部隊

    さてと、ありがちな下記のようなテーブルを作ってみます。ちなみに 5.1.45 で試してます。 DELIMITER ; DROP TABLE IF EXISTS diary; CREATE TABLE diary ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(64) NOT NULL, `content` text NOT NULL, `created_on` datetime NOT NULL, `updated_on` datetime NOT NULL, PRIMARY KEY (`id`,`updated_on`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY RANGE ( to_days(updated_on)) ( PARTITION p

    今日の MySQL - Partitioning 編 - - 日向夏特殊応援部隊
    ouest
    ouest 2010/08/17
  • MySQL 5.1.49リリース - SH2の日記

    出てます。今回はバグ修正が36件あり、そのうちセキュリティに関するものが8件、レプリケーションに関するものが4件となっています。InnoDB PluginはMySQL 5.1.48における1.0.9からバージョンアップが行われ、1.0.10となりました。 MySQL 5.1.49ではセキュリティ修正が目立って多いので、内容を確認しておきたいと思います。 innodb_file_formatまたはinnodb_file_per_tableを変更したあとにDDL文を実行すると、サーバがクラッシュすることがありました。(Bug#55039) 一意制約のついたSET型のカラムを持つテーブルを結合すると、サーバがクラッシュすることがありました。(Bug#54575) INまたはCASE式において引数にNULL値を指定すると、サーバがクラッシュすることがありました。(Bug#54477) BINLOG

    MySQL 5.1.49リリース - SH2の日記
  • ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ
  • maatkitを一通り使ってみたメモ - はまさき

    #hbstudy11でid:marqsさんがMaatkitに関する発表をしていて,僕も仕事でちょこちょこ使っていたので ダイアリーあたりに書きますね と云ったきり,書く書く詐欺になっていたので,さすがに書こうと思います. 割とみなさん知っているツールだと思うのですが,ウェブ上で日語の情報がなかなか見つからないので,何かのお役に立てればと思います.というか英語読めってことなのかもしれませんが. Mattkit 公式 MySQL Tools and Management Software to Perform System Tasks by Percona Maatkitは「実践ハイパフォーマンスMySQL」の著者であるBaron Scheartzによって作り始められた,MySQLやPostgreSQLのようなオープンソースのデータベースのための高品質なコマンドラインツールです. 実践ハイパ

    maatkitを一通り使ってみたメモ - はまさき
  • 漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法

    遅ればせながら モダンな Perl の開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンな Java の開発環境の構築方法 に続いてみる。MySQLは言語じゃないけど。 コンパイラ等MySQLをソースからビルドするのでなければコンパイラ等は必要ないけど、どうせアプリ開発に必要なので「MySQLなんかいつでもハックしてやるぞ!」という意気込みを示すために入れておこう。OSXならXcode、LinuxならGCC。最新のソースコードじゃないとヤダ!という粋な人にはBazaarのインストールもお勧めしたい。Bazaarは言わずと知れた分散バージョン管理システムであり、MySQL開発チームも採用している。最新のソースコードは次のコマンドでゲット可能だ。 shell> bzr branch lp:mysql-server/5.1 mysql-5.1

    漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法
  • mysql full-text parser plugin collection

    MySQL (5.1 and later) full-text parser plugins collection. This collection provides bigram, mecab , space, snowball and suffix parser. If you want to use Chinese or Japanese, bigram plugin might be useful.

  • mysqlftppc 紹介

    MySQLは広く使われているRDBMSです。速いし、レプリケーションのノウハウもあるし、Web上にたくさんの情報もあるからいざというときも安心、というのがその理由でしょう。 そんなMySQLの弱点の1つがデフォルトでは日語で全文検索できないことです。でも、日語で全文検索したいし。。。どうしよう。 そんなあなたに最近の日語の全文検索事情を紹介します。Solr?Elasticsearch?Groonga?PostgreSQLはどうやっているの?Mroonga?Sphinx? いろいろ考えると日語で全文検索するときもMySQLを使うのがいいね!と思えてくるから不思議です。最近の日語の全文検索事情を聞いて一緒に考えてみませんか?

    mysqlftppc 紹介
  • MySQL5.1 + full-text parser plugin - Ktat's Wiki

    家サイトは以下。 http://sourceforge.net/apps/mediawiki/mysqlftppc/index.php?title=Main_Page 環境CPU: Core2Duo OS: CentOS5(64bit) メモリ: 4GB MySQL: 5.1.43 (ノーチューニング) MySQL5.1インストール家サイトから、rpm をダウンロードして、入れるだけ。 server client devel Mecab のインストールmecab体 % tar zxvf mecab-0.98.tar.gz % ./configure --prefix=/usr/local/mecab/ --enable-utf8-only % make % make install mecab辞書 % export PATH=$PATH:/usr/local/mecab/bin/ %

  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記