ブックマーク / yakst.com (81)

  • MySQLインデックスのお手入れの基本 | Yakst

    Percona Database Performance Blogの翻訳。既に運用を始めたデータベースで、インデックスが正しく使われているか、無駄や不足がないかを確認する方法のまとめ記事。クエリをひとつひとつ確認するのではなく、統計情報を元に判断する分かりやすい方法。 このブログ記事では、MySQLインデックスに手入れする基的なステップについて見ていこうと思います。 データベースは、インデックス次第でハイパフォーマンスにも、役立たずで遅くて大変にもなりうることはご存知でしょう。インデックスは、時々手入れをする価値がある非常に重要なものです。それでは、何をチェックすればよいのでしょうか?順不同ですが、確認すべき点を挙げてみます。 1. 使われていないインデックス sysスキーマで、使われていないインデックスをとても簡単に見つけられます。 schema_unused_indexes ビューを

    MySQLインデックスのお手入れの基本 | Yakst
    tmatsuu
    tmatsuu 2016/11/03
    大変よい
  • InfluxDB 1.0 GAリリース : 振り返りとこれから | Yakst

    InfluxDB 1.0 GAがついにリリースとなりました。1.0までの約3年間の振返り、これからのバージョンで何を計画しているかについてご紹介します。 出典について この記事はInfluxData BlogのPaul Dix氏によるInfluxDB 1.0 GA Released: A Retrospective and What’s Next(2016/9/8)を翻訳したものです。 日、オープンソースの時系列データベース InfluxDBと、高可用構成と高スループットを実現するためのクラスタリングのスケールアウトをサポートした商用版であるInfluxEnterpriseの1.0版のリリースをご案内します。日は、我々の会社の歴史上最も重要な日となりました。このリリースまでには約3年もの年月がかかり、これを機にプロジェクト歴史を振り返り、ユーザーの皆さんに1.x系のリリースでどのよう

    InfluxDB 1.0 GAリリース : 振り返りとこれから | Yakst
    tmatsuu
    tmatsuu 2016/10/19
    おめでとう
  • DNSの仕組み | Yakst

    DNSの仕組みと一般的な使い方について、DNSに関する作業をする時によく使うコマンドや、具体的な例を交えてまとめた入門的記事。 私はよくドメイン名に関する問題に遭遇します。どうしてウェブサイトが動かないんだ? どうしてこんなくだらないのが上手くいかないんだ、何やってもダメだ。ただ動かしたいだけなのに! 質問をしてくる人はたいてい、DNSが何かを知らず、基的な部分がどのように動くのかの理解にも乏しいです。より一般的には、みんなDNSが強くて複雑なものだと思っているのです。この記事では、その恐怖を和らげようと努力してみようと思います。一度基的なコンセプトを理解してしまえば、DNSは簡単です。 DNSとは まず大事なことから始めましょう。DNSは、Domain Name Systemの略です。基的には、これはグローバルに分散されたキーバリューストアだと言えます。世界中のサーバーは、あなたが

    DNSの仕組み | Yakst
    tmatsuu
    tmatsuu 2016/10/02
    仕組みというよりはdigコマンドの実践的使い方紹介かな。でもnslookupコマンドやhostコマンドを使うぐらいならdigを使うのが良い。RHEL系ならbind-utils、Debian系ならdnsutilsでインストールできるよ。
  • git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは? | Yakst

    Gitでブランチ(コミット)間の違いを表示するgit diffコマンドに存在するダブルドット(..)記法とトリプルドット(...)記法の違いについて、Stackoverflowの分かりやすい回答。 「git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは?」という質問へのMark Longair氏の回答 git diffコマンドは通常(「通常」というのは、例えばマージコンフリクトを解消する際などには3ウェイマージを表示することがあるため)、コミットグラフにおける完全な2つのポイント間のツリーの状態の違いを表示します。git diffでの..と...の表記は、以下の意味になります。 言い換えると、git diff foo..barはgit diff foo barと完全に同じです。どちらも2つのブランチfooとbarの最新の変更同士の違いを表示します。

    git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは? | Yakst
    tmatsuu
    tmatsuu 2016/08/11
    厳しい
  • MySQLのメモリー使用量を最適化する設定のベストプラクティス | Yakst

    Percona Data Performance Blogの翻訳。Percona CEOのPeter Zaitevによる、MySQLのメモリー使用量をどのように決めるべきか、またそれを決める時に気にするべきことは何かについてのまとめ。 この記事では、最適なMySQLのメモリー使用量を設定するためのベストプラクティスを扱おうと思います。 使用できるメモリーのリソースをどのように使うか正しく設定するのは、MySQLを最適なパフォーマンスでかつ安定して使うために最も重要なことのひとつです。MySQL 5.7では、デフォルトの設定では非常に少ない量のメモリしか使いません。デフォルトのままにしておくのは、最も良くないことのひとつでしょう。しかし、不適切に設定してしまうと、パフォーマンスを更に悪くする(あるいはクラッシュする)ことにもなりかねません。 MySQLのメモリ使用量を設定するにあたっての最初

    MySQLのメモリー使用量を最適化する設定のベストプラクティス | Yakst
    tmatsuu
    tmatsuu 2016/07/19
    あの記事の翻訳ありがたや。
  • 読みやすいREADMEを書く | Yakst

    いくつかのオープンソースプロジェクトを公開している筆者からの、読みやすくユーザーにやさしいREADMEを書くためのアドバイス。 この記事は、Rowan Manning氏による「Writing a Friendly README」(2016/3/14)を翻訳したものです。 あなたのプロジェクトのREADMEは、かなり重要です。そこはプロジェクトに初めて来た人が大抵最初に見るであろう場所であり、唯一のドキュメントであることもよくあります。あなたのオープンソースプロジェクトにとってのREADMEは、企業にとってのウェブサイトのようなものです。ウェブサイトはユーザーエクスペリエンスの注目を集めるところですが、READMEがユーザー観点で考えられることはほとんどありません。 この記事では、分かりやすいREADMEを書くために役立ち、開発者(ユーザー)の要求に見合い、開発者がプロジェクトを初めて見たの

    読みやすいREADMEを書く | Yakst
    tmatsuu
    tmatsuu 2016/06/22
    おーあの記事の翻訳か。素晴らしいありがとうありがとう
  • Percona Server 5.7のパフォーマンスの改善(Percona Data Performance Blogより) | Yakst

    Percona Server 5.7のパフォーマンスの改善(Percona Data Performance Blogより) Percona Server 5.7の性能改善に関するブログ記事を紹介します。 LRUフラッシュのマルチスレッド化および、ダブルライトバッファーの並列化などにより、同時並行度の高いI/Oバウンドの負荷に対するパフォーマンス改善を行っています。 出典について この記事はThe Percona Data Performance Blog内のAlexey Stroganov氏、Laurynas Biveinis氏、Vadim Tkachenko氏によるPercona Server 5.7 performance improvements(2016/3/17)を翻訳したものです。 このブログ投稿は、Percona Server 5.7のパフォーマンスの改善についての記事です

    Percona Server 5.7のパフォーマンスの改善(Percona Data Performance Blogより) | Yakst
    tmatsuu
    tmatsuu 2016/04/09
    つよい
  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
    tmatsuu
    tmatsuu 2016/03/09
    iostat、-xは指定してたが-zは使ってなかったな。sarも覚えておく
  • MySQL 5.7以後のレプリケーションのデフォルト値(MySQL High Availabilityより) | Yakst

    MySQL 5.7以降のレプリケーション関連のデフォルト値について、変更点および考慮事項についてご紹介します。 免責事項 この記事はMatt Lord氏によるMySQL High Availabilityの投稿「MySQL Replication Defaults After 5.7」(2016/1/13)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 大多数の人たちにとって、デフォルトあるいは「そのまま使える」設定から得られる体験がその製品に対する体験となるので、大多数の場合においてデフォルトの設定が良いことは我々にとっては非常に重要です。これは常に大変な課題で、なぜならば、関連するハードウェアの設定、利用するソフトウェア、アプリケーションがどのように利用されるか、などの複合的な要素の掛け合わせがあるからです。しかし、これには間違いなく力を注ぐ価値があります。Mor

    MySQL 5.7以後のレプリケーションのデフォルト値(MySQL High Availabilityより) | Yakst
    tmatsuu
    tmatsuu 2016/01/30
    memo
  • default_password_lifetimeのアップデート | Yakst

    MySQL 5.7.11でdefault_password_lifetimeのデフォルト値が0になった。そのことに関する経緯と今後の展望。 免責事項 この翻訳は MySQL Server Blogの記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。 MySQL 5.7の私たちのゴールは secure by default です。これは設定の変更や追加のステップを実行することなく、MySQLを新規にインストールしたその時点から番環境で使えるように安全にすることです。 セキュリティーのための一つの設定として、MySQL 5.7は指定された日数パスワードが変更されていないアカウントを無効化する新しい機能が追加されました。これは ユーザー単位及びグローバルオプションで設定することが可能 です。デフォルトでは360日(default_password_lifetimeオプシ

    default_password_lifetimeのアップデート | Yakst
    tmatsuu
    tmatsuu 2016/01/30
    1つ目の時限爆弾は無事解除された
  • Bashのよくある間違い | Yakst

    原文は2015年8月22日時点のものを利用しており、それ以降に追記、更新されている可能性があります。 翻訳は原作者の許可を得て公開されています。 Thanks for GreyCat! このページはBashプログラマーが陥りがちなよくあるエラーについてまとめました。以下の例は全てなんらかの欠陥があります。 クオートをいつも使い、どんな理由があっても単語分割を使わなければ、多くの落とし穴からあなた自身を守ることができます!単語分割はクオート表現をしない場合にはデフォルトでオンになっている、Bourneシェルから継承された壊れたレガシーな設計ミスです。落とし穴の大半はクオートされていない展開になんらか関連し、単語分割しその結果をグロブします。 1. for i in $(ls *.mp3) BASHプログラマーたちがループを書く際にもっとも犯しがちなよくあるミスは以下のような感じです。: f

    Bashのよくある間違い | Yakst
    tmatsuu
    tmatsuu 2015/10/25
    とても良かった
  • MySQL 5.6と5.7における高度なクエリチューニングのQ&A(The Percona Performance Blogより) | Yakst

    9年弱前投稿 修正ありMySQL 5.6と5.7における高度なクエリチューニングのQ&A(The Percona Performance Blogより) 出典について この記事はThe Percona Performance Blog内のAlexander Rubin氏による「Advanced Query Tuning in MySQL 5.6 and MySQL 5.7 Webinar: Q&A」(2015/8/24)を翻訳したものである。 8月22日のオンラインセミナー「MySQL 5.6および5.7における高度なクエリーチューニング」に参加していただいてありがとう(私のスライドおよび動画はここで確認できる)。ここでは質問とその回答の一覧を紹介する(いい質問をありがとう) 。 Q: ここにexplainの例がある mysql> explain extended select id, s

    MySQL 5.6と5.7における高度なクエリチューニングのQ&A(The Percona Performance Blogより) | Yakst
    tmatsuu
    tmatsuu 2015/09/13
    よかった。再来週役に立つ
  • The art of command line (日本語訳) | Yakst

    コマンドラインで素早い操作ができるのは、優れたエンジニアの資質の一つとも言える。そのためのテクニックを集めた珠玉のコマンド集。 原文のコミット bb0c38c0899339e836c37eead4a9534b06c56662 The Art of Command Line メタ情報 基 日常的に使うもの ファイルとデータの処理 システムのデバッグ ワンライナー 目立たないが便利なもの さらなるリソース 免責事項 コマンドラインで流れるように操作ができるということは、軽く見られたり他人から理解されないスキルだとみなされることもあるでしょう。しかしそのスキルは、明らかにかすぐ分かるようかは問わず、エンジニアとしてのあなたの柔軟性や生産性を改善してくれるものです。ここでは、Linuxでコマンドラインを使う上で便利だと思ったメモやTipsの数々を挙げてみます。あるものは基礎的ですが、非常に詳しい

    The art of command line (日本語訳) | Yakst
    tmatsuu
    tmatsuu 2015/09/08
    とてもいい感じだ。いくつか知らないのもあったのであとで見直す
  • InnoDBにおける効果的な関数インデックス(MySQL Server Blogより) | Yakst

    MySQL 5.7では生成列の機能が追加され実体化されない仮想列を作成できるようになった。ユースケースとしては関数インデックスを効果的に利用すると、JSONなどをうまく扱える可能性がある。 免責事項 この記事はJimmy Yang氏によるMySQL Server Blogの投稿「JSON Labs Release: Effective Functional Indexes in InnoDB」(2015/4/9)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQL 5.7.6では、我々は生成列(Generated Columns)と呼ばれる新しい機能を追加した。最初の段階では全ての生成列は、仮想的なものであってもマテリアライズされていた。これでは不要なディスクスペースが使用され、ディスクI/Oが発生するだけでなく、いかなるテーブルの変更に対してもテーブルを完全に

    InnoDBにおける効果的な関数インデックス(MySQL Server Blogより) | Yakst
    tmatsuu
    tmatsuu 2015/08/23
    MySQLもついに関数インデックスを実装か。5.7.7から。
  • MySQL 5.7におけるサーバーのデフォルト値の改善 (MySQL Server Blogより) | Yakst

    MySQL 5.7でのデフォルト値の変更について簡単に紹介する。レプリケーション、InnoDB、パフォーマンススキーマ、セキュリティー、オプティマイザ、その他全般の改善など様々な改善がされている。 免責事項 この記事はMatt Lord氏によるMySQL Server Blogの投稿「Improved Server Defaults in 5.7」(2015/7/22)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 Morganと私はしばらく前にMySQLの"今やもう良くない(out of the box)"設定および挙動のデフォルト値を改善する計画を開始した。コミュニティーと密接に実施することにより、すばらしい改善の一覧が作成できた。これはMySQL 5.7.7のリリースから成果を出し始めた。私は何が変わったか、通常のユーザーおよびインストールの場合、なぜMySQL

    MySQL 5.7におけるサーバーのデフォルト値の改善 (MySQL Server Blogより) | Yakst
    tmatsuu
    tmatsuu 2015/08/08
    結構いろいろある注意。
  • MySQL 5.7.8のmysqlpumpについての注意事項 | Yakst

    MySQL 5.7.8-rc2が日 (訳注:この 元記事 は2015/08/03に公開された) リリースされた。新しいmysqlpumpという新しいサーバーユーティリティも一緒にリリースされている。このユーティリティーはmysqldumpにいくつかの新しい機能を取り込んだものだ、たとえば データベース, テーブルのパラレルダンプ。これはダンプの速度を向上させる。 ダンプファイルのリストア時にInnoDBのfast index creationを有効利用する。InnoDBのテーブルに対しては、行をINSERTした後にセカンダリーインデックスを後から追加するようになっている。 テーブル, ビュー, ストアドプロシージャ, ユーザーアカウントなど、データベース内のオブジェクトをより上手くコントロールする ユーザーアカウントの情報を、mysql.userテーブルへのINSERTではなく、CREA

    tmatsuu
    tmatsuu 2015/08/08
    見間違いそうだな。dumpじゃなくてpump(ポンプ)か
  • MySQL 5.7.7におけるレプリケーションのデフォルト値(MySQL High Availabilityより) | Yakst

    MySQL 5.7.7ではコミュニティーのフィードバックにもとづき、レプリケーション機能のデフォルト値での改善がいくつか行われている。記事では、binlog_gtid_simple_recovery, binlog-format, binlog_error_action, sync_binlog, slave_net_timeout, @@session.gtid_executedについての変更について説明する。 免責事項 この記事はSujatha Sivakumar氏によるMySQL High Availabilityの投稿「Replication Defaults in MySQL-5.7.7」(2015/7/8)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 コミュニティーのフィードバックにもとづいて、MySQL 5.7.7のリリースの一部として、レプリケーシ

    tmatsuu
    tmatsuu 2015/08/07
    binlog-format=ROWがデフォルトか。
  • MySQLおよびMariaDBに大きなサイズの行を挿入する | Yakst

    MySQLで大きなサイズのデータを挿入する際の注意点について記載する。max_allowed_packet, innodb_log_file_sizeに注意し、マルチパートアップロードにmysql_stmt_send_log_data関数を使う。 出典について この記事は「Inserting large rows in MySQL and MariaDB」(2015/7/20)を翻訳したものである。 MySQLにおけるLONGBLOBの最大容量は4GBであり、max_allowed_packetの最大値のサイズは1GBである為、私はLONGBLOBを完全に使いきることができるのだろうかと思い立った。 そこでこれをテストし始めた。MySQL Connector/Pythonを使ってPythonスクリプトを書き、MySQL Sandboxを使ってMySQL 5.6.25のインスタンスを作成した

    MySQLおよびMariaDBに大きなサイズの行を挿入する | Yakst
    tmatsuu
    tmatsuu 2015/08/02
    おーinnodb_log_file_sizeも制限になるのか。先日の画像をDBに入れる場合にひっかかった話はこれかー。
  • MySQLのinformation_schemaの便利なクエリ(MySQL Step-by-Step Blogより) | Yakst

    出典について この記事はMySQL Step-by-Step BlogのUseful queries on MySQL information_schema(2015/07/15)を翻訳したものです。 MySQLのinformation_schemaはデータベースのインスタンス、ステータス...などなどの日々のDBAの仕事に必要とされる有用な情報を備えている。 私が日々使う基的なinformation_schemaへのいくつかのシンプルなクエリがあり、私自身が参照するためにこの投稿を書いており、または誰か他の人にも良いリファレンスになるだろう... 主キーまたはユニークキーがないテーブルをみつける 主キーは非常に重要であり、MySQLのInnoDBのテーブルでは主キーをクラスタインデックスとして利用するため、主キーがないと深刻な性能問題につながりかねない。 主キーがないと、スレーブのロギ

    MySQLのinformation_schemaの便利なクエリ(MySQL Step-by-Step Blogより) | Yakst
    tmatsuu
    tmatsuu 2015/07/30
    いいね。主キー確認と断片化確認は監視に組み込めそう。でも最初の「主キーまたはユニークキー」ってなってるけど、主キーがなくてもユニークキーがあれば性能問題は改善されるんだろうか。
  • MySQLとNUMAの悲しい現状(Stewart Smith氏のブログより) | Yakst

    "swap insanity"と呼ばれる事象はMySQLがNUMAアーキテクチャで発生する問題として良くしられており、バグがレポートされたのは2010年に遡る。Stewart Smith氏の記事ではMySQLとNUMAの問題について述べ、これを改良するパッチについても紹介されている。 出典について この記事は、Stewart Smith氏のブログ記事「The sad state of MySQL and NUMA」(2015/07/08)を翻訳したものです。 2010年にまで遡ると、MySQL Bug 57241がレポートされ、"swap insanity"問題についての指摘がx86のシステム上ではより深刻になってきた。とりわけ、以後NUMAがより一般的になるに従ってである。 スワップの問題はあるNUMAノード上のメモリが枯渇し、他のノードとスワップせざるを得なくなるためである(Jere

    MySQLとNUMAの悲しい現状(Stewart Smith氏のブログより) | Yakst
    tmatsuu
    tmatsuu 2015/07/22
    5.6.27から使えるようになるinnodb_numa_interleaveか。メモ