タグ

MySQLに関するrochefortのブックマーク (151)

  • 今から備えるMySQL最新バージョン5.7

    2015/06/10 db tech showcase 2015 Tokyo ログを貼り付けている部分が見にくくなっていますので、 http://yoku0825.blogspot.jp/search/label/5.7 などでも同じような内容が見られたりしますRead less

    今から備えるMySQL最新バージョン5.7
  • CVE-2016-6662 MySQL Remote Root Code Execution / Privilege Escalationについて - Qiita

    CVE-2016-6662 MySQL Remote Root Code Execution / Privilege EscalationについてMySQL 免責 取り敢えずわかっている範囲で書いただけなので、手元で再現やパッチの正当性は確認していません。 自己責任でどうぞ。 これ(2016/09/22 22:00)以降新しい情報が出てきても、おそらくもう更新しません。 CVE-2016-6662 についてはこちら MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響 - ITmedia ニュース oss-sec: CVE-2016-6662 - MySQL Remote Root Code Execution / Privilege Escalation ( 0day ) この脆弱性を再現させるために必要なもの (未検証) 5.5.52, 5.6.33, 5.7.15は影響を

    CVE-2016-6662 MySQL Remote Root Code Execution / Privilege Escalationについて - Qiita
  • SIOS Tech. Lab - エンジニアのためになる技術トピックス

    はじめに こんにちは。サイオステクノロジーの佐藤隆太郎です。 今回から、Stripe Connectについてのブログを書いていきます。Connectは、PaymentsやBillingなどとは異なり、マーケットプレイスや […]

    SIOS Tech. Lab - エンジニアのためになる技術トピックス
  • DB 設計時のサイズ見積り[最新版] - Qiita

    こんにちは、すっかり秋ですね!@yone098 です。 みなさんDBの設計してますか? DB設計時のサイズ見積り 以前はてなダイアリーで書いた記事は5年前のものであり、リンクが切れているものがあるので最新版として MySQL, PostgreSQL, Oracle, SQLServer におけるDB設計時のサイズ見積りをまとめ直しました。 URL内のバージョン表記を変えると以前のバージョンの情報になります。 MySQLは、あまり情報に変化は無かったので Excel でマクロなどを作成して自社で自動算出出来るようにするのが良いと思います。 データタイプごとに必要な要求ストレージが決まっているのでレコードサイズが決まり、あとは要件次第で何レコードになるかを予測します。 データタイプごとに必要な記憶容量 テーブルの最大サイズ関連 http://dev.mysql.com/doc/refman/5

    DB 設計時のサイズ見積り[最新版] - Qiita
  • Amazon RDS における MySQL 5.6 のパラメータ設計例 - bekkou68 の日記

    (最終更新日: 2017/9/25) はじめに production 環境で MySQL 5.6 動かすためのパラメータ設計についてまとめました。この記事がカバーする内容は次のとおりです。 パラメータを設定するスクリプト。 各パラメータにおける変更するかどうかの判断基準。 想定されるメモリの消費サイズを算出してパラメータが妥当かどうか確認する方法。 サービスの状況に応じててきぎ読みかえてください。 【結論】パラメータグループ作成・パラメータ設定のスクリプト 結論として、パラメータグループを作成し、パラメータを設定する aws-cli のスクリプトを置きます。Amazon AWS の Web Console から設定することもできます。 #!/bin/sh # == パラメータグループ作成 aws rds create-db-parameter-group --db-parameter-gr

  • MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ

    仕事MySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基的なところから学習しなおした。 MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。インデックスを使用すれば、数百とか数億ものレコードが入っているテーブルから、一組のレコードを迅速に見つけて取り出すことが可能になる。 しかし、インデックスは速度を改善することもあるが、挿入の邪魔になって遅くなることもある。 インデックスを適切に使うために、まずはインデックスの基概念をおさえる必要がある。 インデックスの概念 インデックスとは インデックスの仕組みを理解するには、まずMySQLがどのようにクエリに応答するかを知る必要がある。 例えば、 SELECT * FROM phone_book WHERE last_name = 'Hoge'

    MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ
  • 『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』

    サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。

    『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』
  • MySQLでクエリチューニングことはじめ

    最近、寒暖の差が激しいですがみなさん体調は崩されていないでしょうか? こんにちわ。モニプラ for Facebookを担当しています高橋です。 サービス開始当初は問題なかったものの稼働が高くなりデータ量が多くなって クエリのパフォーマンスが悪化すること…よくありますよね? 今回はクエリチューニングの基的な手順とケース別に解決方法を解説したいと思います。 クエリチューニングの手順 1.スロークエリログで問題のクエリをあぶり出す まずはどのクエリが問題なのか特定する必要があります。 アプリケーション側でクエリの実行時間を測定し自前でログを出力しておくというのも手ですが、 お手軽にMySQLの設定で一定時間以上掛かったクエリをログに出力しておくことができます。 スロー クエリ ログ(MySQL 5.1 リファレンスマニュアル) mysqldを–log-slow-queriesオプションつきで起

  • [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst

    Percona MySQL Webinarsの発表(MYSQL開発でやってしまいがちな致命的なミスについて)のQAをご紹介します。 発表はSQLアンチパターン著者のBill Karwinさんの発表です。 オリジナル: http://www.percona.com/resources/mysql-webinars/how-avoid-even-more-common-deadly-mysql-development-mistakes July 17, 2014 by Bill Karwin 水曜日に「MySQLを開発する上でよく起こる(そして致命的な)ミスをどのように回避するか」をPercona MySQL webinarsで発表した。お見逃の際は、ビデオとスライドを見る為に登録すればまだご覧にいただける。 参加いただいた皆様、そしてとりわけすばらしい質問をしていただきありがたく思っている

    [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst
  • grcでMySQLのクエリ結果に色を付ける

    grc(Generic Colouriser)を使ってMySQLのクエリ結果に色を付ける方法の紹介です。 この投稿はMySQL Casual Advent Calendar 2014の7日目の記事です。 if which grc >/dev/null 2>&1 ; then : else wget http://kassiopeia.juls.savba.sk/~garabik/software/grc/grc_1.5.tar.gz tar zxvf grc_1.5.tar.gz cd grc-1.5 sudo sh ./install.sh sudo wget -O /usr/share/grc/conf.mysql https://raw.githubusercontent.com/nitso/colour-mysql-console/master/.grcat >/dev/null

  • MySQL 5.7で絶対に必要になると思うlog_timestampsの設定

    気づかなかったけど、これ5.7.2から入ってたのか。 フツーに扱うDATETIME型(やその親戚)は time_zone 変数に支配されるけど、ログに出力される時刻は log_timestamps 変数に支配される。 この変数の取りうる値は UTC または SYSTEM で、暗黙のデフォルトはUTC 。。 mysql57> SELECT @@version; +---------------+ | @@version | +---------------+ | 5.7.5-m15-log | +---------------+ 1 row in set (0.00 sec) mysql57> SHOW GLOBAL VARIABLES LIKE '%time_zone'; -- タイムゾーンはフツーにJST +------------------+--------+ | Variable_

  • MySQL 5.7のoptimizer_switch、derived_mergeとは何ぞや - かみぽわーる

    このエントリはMySQL Casual Advent Calendar 2015の8日目です。 MySQL 5.7.6からoptimizer_switchにderived_mergeが追加されデフォルトで有効になっている。基的にこれはほっといたらだいたいサブクエリが速くなるやつなので気にしなくてもいいんですが、ちょっと非互換があるのでさくっと説明します。 root@localhost [mysqlcasual] > CREATE TABLE t1 (a int); Query OK, 0 rows affected (0.03 sec) root@localhost [mysqlcasual] > CREATE TABLE t2 (b int); Query OK, 0 rows affected (0.03 sec) root@localhost [mysqlcasual] > INS

    MySQL 5.7のoptimizer_switch、derived_mergeとは何ぞや - かみぽわーる
    rochefort
    rochefort 2016/01/12
    derived_merge=offにするか、サブクエリをマージできない(マテリアライズされる)クエリに書き換えるとよいです(DISTINCTやLIMITをつけるとマージできなくなる)。
  • pt-online-schema-changeと5.6 InnoDBのオンラインALTER TABLE使い分け

    この記事は MySQL Casual Advent Calendar 2015 の9日目です。 MySQL 5.6から InnoDBのオンラインDDL が導入されて久しいですが、一方で pt-online-schema-change (以下pt-osc)もまだまだ元気です。MySQL 5.5とそれより前ではpt-osc一択になりますが、MySQL 5.6とそれ以上の場合はInnoDBさんに任せるかpt-oscを使うかを選択することができます。 MySQL 5.6でもpt-osc一択にしても構わないといえば構わないんですが、いくつかのケースではInnoDBさんに任せた方が速くなったり安定したりするので、そのあたり解説していきます。 TL;DR ウチの使い分け。 原則 pt-osc スレーブの台数が多すぎない かつ データ容量が馬鹿でかくてストレージいつぶしそう または INSERT大杉で2

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

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

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
    rochefort
    rochefort 2016/01/12
    oak-online-alter-table
  • 二千万レコードあるテーブルへのalterをサービスを止めずに流す | All Your Bugs Are Belong To Ass

    ※このエントリはMySQL Casual Advent Calendar 2015の5日目のエントリです。 openark-kit というものについて ここまで読んでわかった方は、この先を読む必要はありません。 openark-kitとは、mysqlの運用に便利なツールキットを14個あつめたソフトウェアパッケージです。 Shlomi Noachという方がPythonで開発しており、少なくとも2009年に発表されているようです。 2015-12-05時点での最新版は196.1となっており、.tar.gz および .deb で配布されております。 このエントリを書いた背景事情 そもそも僕自身、50を超えるクラスタ化されたmysqlノードと一緒に業務生活を送っております。 ところが、システムが非常に古くさい構成のため、合計レコード数が2億から3億程度ある垂直分割されたテーブルに対しALTERを投

    rochefort
    rochefort 2016/01/12
    oak-online-alter-table
  • MySQL 5.6 パラメータ 検討会

    1 MySQL 5.6 パラメータ検討会 MyNA(日MySQLユーザ会)会 2013年7月 2013/07/29 平塚 貞夫 2013/08/06 Revision 2 2 自己紹介 • DBエンジニアやってます。専門はOracleMySQL。 – システムインテグレータで主にRDBMSのトラブル対応をしています。 – 仕事の割合はOracleMySQL:PostgreSQL=5:3:2ぐらいです。 • Twitter:@sh2nd • はてな:id:sh2 • • 写真は実家で飼っているミニチュアダックスのオス、アトムです。 3 日のお題 4 MySQL 5.6のパラメータ検討 • MySQL 5.6にはさまざまな新機能が追加され、パラメータ数が大幅に増えました。 • SHOW GLOBAL VARIABLESの項目数で100個以上増えています。 – MySQL 5.5.31:

  • InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013 - あおうさ@日記

    はじめに この記事は、MySQL Casual Advent Calendar 2013 7日目の記事です。 〜 Casual に記事を書けばええんやでヽ(´ー`)ノ 〜 私がMySQLで えっ?! っと思った下記エントリーの挙動が何故そうなってしまうのかを書きたいと思います。 InnoDBで行ロック/テーブルロックになる条件 MyISAM はテーブルロック、InnoDB は行ロックが掛かるというのは有名な話じゃないかと。 ただ、最近知ったのですが、InnoDB だとしても必ずしも行ロックになるわけではなく、テーブルロックになる場合もあるようですね。 ... InnoDB であってもユニーク制約 or インデックスが張られているカラムで検索した場合以外はテーブルロックになってしまうようです。これは注意しないと思わぬところでテーブルロックになってしまって大変なことになりそう! http://

    InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013 - あおうさ@日記
  • 第6回 MySQLチューニング(5) パラメタチューニングの基礎 | gihyo.jp

    max_connections 最大接続数は通常システムの要件から算出して行きます。システムとして想定される同時接続数を見積もり、そのうちデータベースまで到達するリクエストの比率、それぞれのデータベースでの処理時間を待ち行列理論に照らして考慮します。データベースに到達する同時リクエスト数が同じだとしても、処理時間が違う場合はデータベース内で同時に実行されている処理の件数も違ってくるため、同時接続数も違ってきます。注意すべき点は、システム開発の早い段階では見積もりの精度が高くないため、ある程度余裕を持たせた設計で始め、かつ段階的に見積もりの精度を高めていくことが求められることです。 接続が切断されるとMySQLサーバ内の接続スレッドも破棄されます。コネクションプーリング機能を使用していない環境では、接続による接続スレッドの生成と切断による切断スレッドの破棄が繰り返され、オーバーヘッドとして無

    第6回 MySQLチューニング(5) パラメタチューニングの基礎 | gihyo.jp
  • コードで行うMySQLのアカウント管理 - クックパッド開発者ブログ

    インフラストラクチャー部の菅原(@sgwr_dts)です。 インフラストラクチャー部のメンバーはオペレーションのため強力な権限のMySQLアカウントを使用していますが、サービス開発をするエンジニアも業務のためにサービスのDBの参照・更新権限を持ったアカウントが必要になることがあります。 セキュリティやオペレーションミスのことを考えると、すべてのエンジニアのアカウントをスーパーユーザーにするわけにはいかないため、都度適切な権限を付与していますが、手動での作業は地味に手間がかかります。 そこでクックパッドではMySQLのアカウント情報をコード化し、リポジトリで管理するようにしています。 gratanによるコード化 MySQLのアカウント管理はgratanという自作のツールを使って行っています。 gratanを使うとMySQLのアカウントをRubyのDSLで記述することができるようになります。

    コードで行うMySQLのアカウント管理 - クックパッド開発者ブログ
    rochefort
    rochefort 2015/08/04
    アカウント管理
  • MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!)

    MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!) 【2016/01/13 10:12】 MySQL 5.7.11でdefault_password_lifetimeのデフォルトは0に変更になりました! それ以降のバージョンであればこの記事の内容は気にする必要はありません。 日々の覚書: MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい! TL;DR default_password_lifetime= 0 を秘伝のmy.cnfに入れておくつもり。 MySQL :: MySQL 5.7 Reference Manual :: 5.1.4 Server System Variables パラメーターの意味は読んで字のごとく、「最後にパスワードが更新さ

    rochefort
    rochefort 2015/06/16
    default_password_lifetime // これはひどい