タグ

DBに関するOhYeahのブックマーク (47)

  • SQLトランザクション分離 実践ガイド | POSTD

    (注:2017/10/16、いただいたフィードバックを元に翻訳を修正いたしました。) (注:2017/10/11、いただいたフィードバックを元に翻訳を修正いたしました。) データベースのドキュメントで分離レベルを目にして、軽く不安を感じつつ、あまり考えないようにしたことはないでしょうか。トランザクションの日常の使用例できちんと分離について言及しているものはほとんどありません。多くはデータベースの初期設定の分離レベルを利用しており、後は運頼みです。しかし、来、理解しておくべき基的なトピックであり、いくらか時間を投入してこのガイドの内容を学習すれば、もっと快適に作業できるようになるでしょう。 私はこの記事の情報を学術論文、PostgreSQLドキュメンテーションから集めました。分離レベルの 何たる かだけでなく、適用の正確さを保持しつつ最大速度で使うにはいつ使うべきか、という疑問に答えるべ

    SQLトランザクション分離 実践ガイド | POSTD
  • 第43回 MySQLの準結合(セミジョイン)について | gihyo.jp

    semijoinフラグがONの場合は、それに関連するduplicateweedoutフラグ、firstmatchフラグ、materializationフラグ、およびloosescanフラグの制御が可能となります。 準結合(セミジョイン) セミジョインはOracle Databaseを使用したことある方にはおなじみの動作ですが、MySQL5.6で追加されました。semijoinフラグをONにすることで、WHERE句またはON句内にINを使用したサブクエリに対してセミジョインが行われます。セミジョインとはサブクエリ内のテーブルの重複レコードを取り除き、結合と同じような動きをします。 しかし、このセミジョインが動作するにはいくつかの条件があるため注意が必要です。 INまたは=ANYを使用したサブクエリであること 単一のSELECT文でUNIONを使用していないこと Group byなどの集約関数

    第43回 MySQLの準結合(セミジョイン)について | gihyo.jp
    OhYeah
    OhYeah 2017/04/18
  • 第42回 MySQLのちょっとコアなドキュメントを探しにいこう | gihyo.jp

    その他のMySQLドキュメント 第39回 MySQLのドキュメントを探しにいこう と同じ出だしで恐縮ですが、MySQLのドキュメントを活用していますか? MySQLのドキュメントといえば 日語版 MySQL 5.6 リファレンスマニュアル を想像されるかと思いますが、MySQLのドキュメントにはその他のものも数多くあります。通常の場合、検索エンジンなどを経由してたどり着く、Webページになっている日語版のリファレンスマニュアル(オンラインリファレンスマニュアル)で十分な情報が得られるでしょう。 第39回では主に日語版のオンラインリファレンスマニュアルのTIPSを紹介しましたが、今回はそれ以外の「知っているとごく稀に役に立つかも知れない」豆知識を紹介します。 過去のリファレンスマニュアルのありか ドキュメントのトップページ のラベルから「More」を選びます。 先頭の段落の「Archi

    第42回 MySQLのちょっとコアなドキュメントを探しにいこう | gihyo.jp
    OhYeah
    OhYeah 2017/04/06
  • 第40回 カラムのデータ型の異なる行ベースレプリケーションの挙動 | gihyo.jp

    このオプションは動的に変更可能ですが、レプリケーションの再起動が必要です(STOP SLAVEとSTART SLAVE⁠)⁠。 以下、各モードについて説明します。 ALL_LOSSY このモードはスレーブのカラムの型がマスターのカラムの型よりも小さい場合、データを切り捨ててしまうかもしれない変換(不可逆変換)を許可します。Int型とBigint型や、varchar型とchar型などの互換性のある型であれば、レプリケーションされたデータをスレーブの型に合わせてデータを適合するということです。 たとえば、マスターがvarchar(20)でスレーブがvarchar(10)だった場合に、20文字のデータがレプリケーションされたときは10文字目までは格納して、それ以降は切り捨てて登録されます。マスターとスレーブ間でデータの不整合が起こる可能性のあるモードです。 ALL_LOSSYの動作 前述で使用し

    第40回 カラムのデータ型の異なる行ベースレプリケーションの挙動 | gihyo.jp
    OhYeah
    OhYeah 2017/03/07
  • Facebook、新しいMySQL用ストレージエンジン「MyRocks」をオープンソースで公開。フラッシュに適したデータの書き込みと圧縮効果

    Facebook、新しいMySQL用ストレージエンジン「MyRocks」をオープンソースで公開。フラッシュに適したデータの書き込みと圧縮効果 FacebookはMySQL用の新しいストレージエンジン「MyRocks」をオープンソースで公開しました。同社のエンジニアである松信嘉範(Yoshinori Matsunobu)氏がFacebookのブログに投稿した記事「MyRocks: A space- and write-optimized MySQL database」で紹介しています。 MySQLのデータベースエンジンとして使われているInnoDBは優れているものの、フラッシュストレージと組み合わせたときに書き込まれるデータ量の効率性などに課題があったため、MyRocksに取り組んだと説明されています。 InnoDB is great for performance and reliabil

    Facebook、新しいMySQL用ストレージエンジン「MyRocks」をオープンソースで公開。フラッシュに適したデータの書き込みと圧縮効果
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.10 サーバーステータス変数

    MySQL サーバーは、その操作に関する情報を提供する多くのステータス変数を保持します。 これらの変数およびその値は、SHOW [GLOBAL | SESSION] STATUS ステートメントを使用して表示できます (セクション13.7.7.37「SHOW STATUS ステートメント」を参照してください)。 オプションの GLOBAL キーワードはすべての接続にわたって値を集計し、SESSION は現在の接続についての値を表示します。 mysql> SHOW GLOBAL STATUS; +-----------------------------------+------------+ | Variable_name | Value | +-----------------------------------+------------+ | Aborted_clients | 0 |

    OhYeah
    OhYeah 2016/11/17
  • 秒間100万クエリを受け付ける大規模ソーシャルゲームのバックエンドDBシステムの設計・運用ノウハウ

    2016/08/26 CEDEC 2016

    秒間100万クエリを受け付ける大規模ソーシャルゲームのバックエンドDBシステムの設計・運用ノウハウ
  • MySQLインデックスのお手入れの基本 | Yakst

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

    MySQLインデックスのお手入れの基本 | Yakst
  • データベースについてのそもそも論

    先月のはじめのほうで、「リレーショナルデータベースとの上手な付き合い方」というタイトルで、2回発表をした。ひとつは「まべ☆てっく Vol.1」であり、もうひとつは「Hacker Tackle(ハカタクル?)」である。 「リレーショナルデータベースの開発・運用に纏わるもろもろの話をして欲しい」というような内容の話をしてくれないかという同じような依頼を、ちょうど2日違いのイベントで頂いた。9/8のまべ☆てっくと、9/10のHacker Tackleである。そうなると必然的に話す内容も、同じようなものになってくる。同じ人物(=私)が話すのだから、テーマも同じで時期も同じであれば、内容が同じようなものになるのが自然である。もし違うものになってしまっているのであれば、片方はウソをついているということになるはずだ。今日は発表に使用したスライドを紹介しつつ、なぜデータベースを使うべきなのか(あるいは使う

    データベースについてのそもそも論
    OhYeah
    OhYeah 2016/10/10
  • MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ

    最近、Elastic BeanstalkやECSと戦っているSREチームの菅原です。 P5をやりたいのにPS3もPS4も持っていないので指をくわえて羨ましがっている毎日です。 この記事では、突然のアクセス増に備えるために、MySQLのスレーブを1〜2時間でスケールアウトできるようにした話を書きます。 MySQL on EC2 クックパッドは周知の通りAWSを利用していますが、主要なデーターベースについてはAmazon RDSではなくMySQL on EC2を使っています。 これは以下のような理由によるものです。 歴史的な経緯: AWS移行当時、RDSが無かった。また、移行後もしばらくはTritonnを使っていたため、RDSを使うことができなかった オンラインメンテナンスの実現: VPCルートテーブルを使った仮想IPとMHA for MySQLを使ってダウンタイムゼロのマスタDBの切り替えを

    MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ
  • MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響

    攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 米Oracle傘下のオープンソースデータベース「MySQL」に未解決の脆弱性が見つかったとして、セキュリティ研究者が9月12日に概略やコンセプト実証コードを公開した。サイバー攻撃に利用された場合、root権限で任意のコードを実行され、サーバを制御される可能性が指摘されている。 研究者のDawid Golunski氏が公開した情報によれば、MySQLの脆弱性は複数発見され、、中でも特に深刻な1件については、リモートの攻撃者がMySQLの設定ファイルに不正な内容を仕込むSQLインジェクション攻撃に利用される恐れがある。 この脆弱性は、MySQLの最新版を含む5.7系、5.6系、5.5系の全バージョンに、デフォルトの状態で存在する。現時点でOracle MySQLサーバの脆弱性修正パッチは存在

    MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響
    OhYeah
    OhYeah 2016/09/13
  • ExcelやGoogle Analytics、MySQLなどのデータをまとめて簡単に可視化できる「DataDeck」

    ビジネスを運営していて、その成長を試行錯誤しながら進めていくにあたって、バラバラのデータをマージして可視化することは必要不可欠なことですよね。それをエクセルやGoogleスプレッドシートなどを使ってさまざまなソースからデータを引っ張ってきてグラフ化するのがまだまだ一般的なはず。 その大変な作業を簡単な設定をするだけで済ませられ、さらに表示データをデータソースと同期できるのが、今回ご紹介するツールです。 組織のマインドマップツールをマインドマイスターにすべき理由 伸びてる産業、会社、事業を紹介しまくるStrainerのニュースレターに登録!! 複数のソースからデータをまとめて可視化できる「DataDeck」 「DataDeck」は、さまざまなデータソースが持つデータを同期して、ダッシュボード上にグラフで視覚化してくれるサービス。 連携できるデータソースには、エクセルやCSVをはじめ、Goog

    ExcelやGoogle Analytics、MySQLなどのデータをまとめて簡単に可視化できる「DataDeck」
  • ゲームエンジニアのためのデータベース設計

    GameServerDevelopers Vol.1 https://gsdevelopers.doorkeeper.jp/events/42497Read less

    ゲームエンジニアのためのデータベース設計
  • 第20回 mycliを使って快適にSQLを実行する | gihyo.jp

    新しいアプリケーションの機能を実装する際に、ローカルや開発者向けのデータベースにアクセスして、プログラムを実装する前に何度かSQLをためしに実行することもあるかと思います。その際に、補完機能や以前実行したSQLの検索機能等がある場合とない場合では、作業の効率が変わってきます。 そこで、今回は補完や検索機能など、多くの便利な機能をもつmycliというクライアントについて紹介をしていきます。 デモンストレーション環境 今回は5.7.12を第5回 Dockerで複数バージョンのMySQLを開発環境に用意するで作成した環境で実行して確認していきます。また、今回使用するデータは「第2回 MySQLにはじめてのデータを入れてみる」で紹介をしている郵便番号のテーブルを用いて紹介を行います。 mycliのインストール ここではMySQLのクライアントの1つであるmycliを紹介します。mycliは自動補完

    第20回 mycliを使って快適にSQLを実行する | gihyo.jp
  • 第17回 MySQLのユーザー管理について[その1] | gihyo.jp

    今回から何回かに分けて、MySQLのユーザー認証について説明します。今回はまず、「⁠接続元ホスト名⁠」⁠、「⁠ユーザー⁠」⁠、「⁠パスワード」がどこに保管され、どのような順番で評価されるかを見ていきましょう。 今回のデモンストレーション環境はあえて「匿名ユーザー」を有効にしておくために、MySQL 5.6をyumリポジトリーからインストールしたものになっています。各バージョンのyum版, rpm版の構成の違いは第10回 yum, rpmインストールにおけるMySQL 5.6とMySQL 5.7の違いを参考にしてください。 筆者がCentOS 6.6上で今回の環境を作るために実行したコマンドは以下の通りです。 $ sudo yum install -y http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm $

    第17回 MySQLのユーザー管理について[その1] | gihyo.jp
  • SQLアンチパターン 幻の第26章「とりあえず削除フラグ」

    SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902Read less

    SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
    OhYeah
    OhYeah 2016/05/08
  • 今どきのSQLインジェクションの話題総まとめ - PHPカンファレンス2015発表資料

    2. アジェンダ • SQLインジェクション対策もれの責任を開発会社に 問う判決 • PHP入門書のSQLインジェクション脆弱性の状況 • O/RマッパやSQLジェネレーターのSQLインジェク ションの話題 – Rails SQL Injection Examplesの紹介 – Zend FrameworkのSQLインジェクション – JSON SQL Injection – Drupageddon(CVE-2014-3704) Copyright © 2008-2015 HASH Consulting Corp. 2 3. 徳丸浩の自己紹介 • 経歴 – 1985年 京セラ株式会社入社 – 1995年 京セラコミュニケーションシステム株式会社(KCCS)に出向・転籍 – 2008年 KCCS退職、HASHコンサルティング株式会社設立 • 経験したこと – 京セラ入社当時はCAD、計算幾何

    今どきのSQLインジェクションの話題総まとめ - PHPカンファレンス2015発表資料
    OhYeah
    OhYeah 2016/05/08
  • トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016

    トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016 数年前にNoSQLが登場した当時、NoSQLにはデータの一貫性を保証してくれるトランザクション機能などが十分に備わっていないため、業務システムのバックエンドとして使うのは容易ではないと考えられていました。 しかしその後、NoSQLをバックエンドにした業務アプリケーションは現実にはいくつか登場してきています。ワークスアプリケーションズが2014年に発表したERPの「HUE」もCassandraをバックエンドに採用した、格的な業務アプリケーションです。 そのHUEの開発に関わるスタッフが、どういう実装ならばNoSQLが業務アプリケーションのバックエンドに使えるのか、それにはどういう意味があるのか、などについて議論したセッション「

    トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016
  • 第11回 MySQLの基礎を学ぶ | gihyo.jp

    はじめに みなさんこんにちは。技術系Q&Aサイトteratail開発チームの橋佑介です。 MySQLは世界で広く使われているオープンソースのRDBMSです。今では多くのPaaSやSaaSでも利用でき、GoogleCloudSQLAmazon Auroraなどといったクラウドコンピューティングサービスで独自実装されているRDBMySQLを基礎とし、互換性を保ったものが利用されています。 このようにWebサービスを利用する上で非常に採用頻度が高いMySQLですが、利用するときに知っておくべき基礎的な機能について紹介していきたいと思います。 ストレージエンジン MySQLの大きな特徴の一つとして、ストレージエンジンがあげられます。 ストレージエンジンとは、パーサによって最適化されたSQLクエリを実際に実行する機能部分です。MySQLではさまざまなテーブル型に対するSQL操作を処理するコンポ

    第11回 MySQLの基礎を学ぶ | gihyo.jp
    OhYeah
    OhYeah 2016/05/06
  • [速報]マイクロソフト、Oracleからの移行ならばSQL Serverライセンスを無償提供すると発表 - Publickey

    [速報]マイクロソフト、Oracleからの移行ならばSQL Serverライセンスを無償提供すると発表 マイクロソフトは、年内にリリース予定のSQL Server 2016のローンチイベント「Data Driven」をニューヨークで開催。Oracle DatabaseからSQL Serverへ移行する顧客に対して、SQL Serverのライセンスを無償提供すると発表しました(関係者によると、日でも同様のキャンペーンが実施される予定とのことです)。 イベントでは、SQL Serverの新機能や先行ユーザーの事例などが発表され、最後に登場した米マイクロソフト プレジデント Judson Althoff氏がSQL Server 2016がもたらす市場へのインパクトについて紹介。 さらにJudson氏は競合となるOracle DatabaseよりもSQL Serverの方がTCOが圧倒的に低く、

    [速報]マイクロソフト、Oracleからの移行ならばSQL Serverライセンスを無償提供すると発表 - Publickey