MySQLに関するyoku_0825のブックマーク (123)

  • MySQL 8.0.14でSELECT COUNT(*)が加速しない!- 「innodb_parallel_read_threads」検証その2 - なからなLife

    「その1」と真逆のタイトル atsuizo.hatenadiary.jp の続きです。 要するに、innodb_parallel_read_threadsの効果がないケースの話です。 いや、思った以上に、効果がない。。。 というわけで、暗い感じのスタートになりましたが、前回の続きで 「3.「innodb_parallel_read_threads」は、フルスキャン以外のPKスキャンに効くか」 をやります。 環境 「その1」と同じです。 レコード件数も2^24=16,777,216件のままです。 今度はバージョン差異は見ずに、MySQL 8.0.14の中だけで、並列化の恩恵を受けられるかどうかを確認します。 条件 「PKクラスタインデックスにしか効かない」というドキュメントの記述に従い、PKだけを対象にして条件のパターンを用意しました。 全件カウント(前回の結果) PK指定で、中間範囲(Be

    MySQL 8.0.14でSELECT COUNT(*)が加速しない!- 「innodb_parallel_read_threads」検証その2 - なからなLife
    yoku_0825
    yoku_0825 2019/01/24
    むむむむ
  • MySQL 8.0.14でSELECT COUNT(*)が加速する!- 「innodb_parallel_read_threads」検証その1 - なからなLife

    それは突然やってきた MySQL 8.0.14がGAされました。 dev.mysql.com まあ、MySQLは結構な頻度でリリースがありますし、「GAとはなんぞや」との名言が生まれる程度に、マイナーリリースでも機能が増える、パラメータが増える、既存パラメータのデフォルト値が変わる、といったことが発生するかわいいヤツです。 まあ、あとでリリースノート読んでみるか、と思いつつ、ビールを飲みながらYoutube垂れ流してボケーっとしているところに、新しいものが出てくるとリリースノートとソースコードを読み漁る某APIの人のツイートが深夜に流れてきて、ふと気になったのが、今回のテーマである「innodb_parallel_read_threads」です。 InnoDB: InnoDB now supports parallel clustered index reads, which can im

    MySQL 8.0.14でSELECT COUNT(*)が加速する!- 「innodb_parallel_read_threads」検証その1 - なからなLife
    yoku_0825
    yoku_0825 2019/01/23
    すげえ! 速くなってる!!!
  • スロークエリログを詳細化するlog_slow_extraパラメータ - 41から始めました

    log_slow_extraパラメータが8.0.14から追加された 何それ?おいしいの? スロークエリーログが有効で出力先が含まれているFILE場合、サーバーはスローファイルに関する情報を提供するログファイル行に追加のフィールドを書き込みます。セクション5.4.5「遅いクエリーログ」を参照してください。 TABLE出力は影響を受けません。 https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_slow_extra 要するにファイル形式のスロークエリの場合、ログを詳細に出力するようになったよ、ってことらしい。 でもこれだと何が出力されるようになったのかわからん。 試してみる スロークエリを出すように変更 mysql> set global slow_query_log_file = '/

    スロークエリログを詳細化するlog_slow_extraパラメータ - 41から始めました
    yoku_0825
    yoku_0825 2019/01/23
    わーい、Percona Serverみたい!
  • ペパボに教えたMySQLのリアルタイム増分バックアップ(mysqlbinlogのストリームバックアップ) | GMO MEDIA CREATOR BLOG

    日々のWebサイトやアプリの制作を通じて、役に立ちそうな技術情報や楽しい話を発信しています。私たちはGMOメディア株式会社のクリエイターです。 TL;DR サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技 P.71 のこと mysqlbinlog --stop-never --read-from-remote-server --raw で簡単にできます ぬいぐるみが好きな方のDBA です。 このエントリー も GMOペパボ Advent Calendar 2018 の26日目の記事です。 私の観測範囲では以下のような26日目の記事が確認されています 🙂 Laravelを拡張して、使用したコネクションに対して自動的にトランザクションを張るようにする | GMO MEDIA CREATOR BLOG 日々の覚書: ペパボがProxySQLならこちらはMySQL Rout

    ペパボに教えたMySQLのリアルタイム増分バックアップ(mysqlbinlogのストリームバックアップ) | GMO MEDIA CREATOR BLOG
    yoku_0825
    yoku_0825 2018/12/26
    “このエントリー も GMOペパボ Advent Calendar 2018 の26日目の記事です。 私の観測範囲では以下のような26日目の記事が確認されています ”
  • 第87回 MySQLでケーキを焼いてみる | gihyo.jp

    この記事はMySQL Casual アドベントカレンダーの25日めの記事になります。 メリークリスマス! 皆さんMySQL好きですよね! そしてケーキが好きな人も多いと思います。なので今回は、12月25日ということでMySQLでパウンドケーキを焼いてみたいと思います。 仕組みとしては、MySQLのUDFからArduinoのPINの値を変更します。そして、Arduinoの値でリレーつき電源を動かしてオーブントースターにつながるコンセントの電源をON/OFFするという方法を取りました。 注意事項 また、今回の記事を見て試してみようと思った方は、通常の「道普請」の記事とは違い、圧倒的にやけど、感電等の怪我や事故に直結する可能性が高いので、追試を行う際には気をつけて試してみてください。 検証環境 今回はYumでインストールをしたMySQL 8.0.13と、システムワイドにインストールしたrbenv

    第87回 MySQLでケーキを焼いてみる | gihyo.jp
    yoku_0825
    yoku_0825 2018/12/25
    !? “この記事はMySQL Casual アドベントカレンダーの25日めの記事になります。”
  • "詳解MySQL5.7"社内読書会を終えて - tom__bo’s Blog

    この記事はMySQL Casual Advent Calendar 2018 10日目の記事です。 皆さんMySQLの学習はどのようにされていますか? MySQLを含めたデータベースが落ちることはそのままサービスの停止につながることが多く、安定運用にはそれなりの知識と経験が必要だと思います。 データを管理しているという特性上、設定や運用方法に欠陥があると一時的にサービスが止まるだけではなく、取り返しのつかない障害になってしまう可能性もあります。 そのため、失敗しながら学ぶといったことは許されないにもかかわらず、運用する中でどういった問題が起こるのかは運用してみないとわかりにくく、さらに番運用を想定したテストをすることも難しいため初学者が誰の手も借りずに一人前になるのはほとんど不可能だと思います。 MySQLは世界でもっとも普及しているオープンソースデータベースソフトウェア(公式HP)と公

    "詳解MySQL5.7"社内読書会を終えて - tom__bo’s Blog
  • MySQL5.7と8.0でのGroup Replicationの設定の違い - Qiita

    この記事は「MySQL Casual Advent Calendar 2018」20日目の記事です。 はじめに huatoです。 最近サーバ構築業務から遠ざかってます。 前回検証対応したときに放置していた問題点について再検証してみました。 検証目的での環境構築作業を簡略するために作成したansible playbookについても紹介しています。 前回検証時に放置してた問題点とは https://qiita.com/huato/items/e090c56393b54e6451af loose-group_replication_group_seedsのportは当初5.7の頃と同じ6606を設定していたが GRが正常動作しないため、エラーログを元に33061に変更 ずっと腹落ちしなかったので再検証しました。 結果だけ先に書くと https://dev.mysql.com/doc/refman

    MySQL5.7と8.0でのGroup Replicationの設定の違い - Qiita
    yoku_0825
    yoku_0825 2018/12/20
    なるほどcaching_sha2_passwordとSSLのやつ…
  • MySQL8.0.13でMongoDBからMySQLへJSONデータをインポート - Qiita

    MySQL8.0はGAとなった8.0.11以降のメンテナンスリリースでも新機能のリリースを行うことが公式に言及されており、今回ご紹介するMySQL ShellのJSONインポート関数も8.0.13で新しく追加されました。 記事ではMySQL Server Teamのブログ記事そのままの内容ですがMongoDBからMySQLへのJSONデータインポートを試したいと思います。 検証環境は以下の通りです。簡単のためMySQLとMongoDBは同一インスタンスにインストールしています。 ・CentOS7.5 (Vagrantで構築) ・MySQL8.0.13 ・MongoDB4.0.4 事前準備 まずMongoDBにサンプルデータを用意し、それをmongoexportでJSONファイルとして出力します。 上記ブログ記事の末尾にサンプルデータのリンクがありましたのでそちらを使用します。 $ mon

    MySQL8.0.13でMongoDBからMySQLへJSONデータをインポート - Qiita
  • MTSを使ってクエリをロールバックする。 - そろばんのしょ(第3版第2刷)

    この記事はMySQL Casual Advent Calendar 2018の16日目です。 元ネタはlefredさんのこちらのスライド FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery like a Rockstar ざっくりいうと、 マルチスレッドスレーブ(以下MTS)を使ってbinlogを読み込ませてPITRを早くするというものです。 検証環境はCentOS7、MySQL8.0.13。 例えばこんな感じなテーブル。 fuki1 [d1]> SELECT * FROM t1 limit 10; +----+------------+ | id | value | +----+------------+ | 1 | C8vAt5qSyl | | 2 | 15mtFfSGuz | | 3 |

    MTSを使ってクエリをロールバックする。 - そろばんのしょ(第3版第2刷)
    yoku_0825
    yoku_0825 2018/12/16
    パラレルPITRだ!!!
  • 整数型のカッコ「()」に入る数字は表示幅 - 41から始めました

    この記事はMySQL Casual Advent Calendar 2018 13日目の記事です。 テーブル作成時 カラムの型を定義しますが、数字列に対して hoge_id` bigint(20) hoge_flag` tinyint(1) というようにカッコ()の中に数字を入れていると思いますが、この数字がそもそも省略できることは知っていると思います。 省略するとデフォルト値(bigintなら20、tinyintなら4)が入ることまではちょっと調べたり、テーブル作った後に show create table した結果から確認できるのでその数字まで知っている人も多いと思います。 この数字、入力可能桁数だと思ってません? 僕は最初そう思ってました。 他のDBもそうだし、文字列型についてはそうですから。 でも整数型は違うんです。 この数字、表示幅なんです。 何を言っているのかというと、 MyS

    整数型のカッコ「()」に入る数字は表示幅 - 41から始めました
    yoku_0825
    yoku_0825 2018/12/13
    意外と知らない人多い印象
  • Serverside Prepare Statementの統計情報を見る - kenken0807_DBメモ

    この記事は MySQL Casual Advent Calendar 2018 の12日目の記事です。 さて、MySQLSQLステートメントの統計情報を見る時ってどうしますか? performance_schema.events_statements_summary_by_digest テーブルであったり、sys.statement_analysis ビューを見ますよね。少なくとも私は見ます。 しかし、残念ながら events_statements_summary_by_digest には serverside prepare statement の情報は収集されないのです。 MySQL5.7以降からは performance_schema に prepared_statements_instances テーブルがあり、 ここから serverside prepare statement

    Serverside Prepare Statementの統計情報を見る - kenken0807_DBメモ
    yoku_0825
    yoku_0825 2018/12/12
    "と思ったのですが、これdeallocateすると消えます" www
  • 第40回 「MySQL Innovation Day 2018 秋」「PostgreSQL Conference Japan 2018」開催 | gihyo.jp

    OSSデータベース取り取り時報 第40回「MySQL Innovation Day 2018 秋」「PostgreSQL Conference Japan 2018」開催 この連載では、OSSコンソーシアム データベース部会のメンバーが、さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。 2018年11月にはMySQL開発チームのリーダーが来日し「MySQL Innovation Day 2018 秋」が開催されました。PostgreSQLでは11月22日に主要なイベントのひとつである「PostgreSQL Conference Japan 2018」が開催されましたのでその様子を報告します。また、オープンソースカンファレンスから10月末のTokyo/Fallの様子と、私たちデータベース部会がセミナーをする12月の .Enterprise(東京渋谷)のお知らせがあります

    第40回 「MySQL Innovation Day 2018 秋」「PostgreSQL Conference Japan 2018」開催 | gihyo.jp
    yoku_0825
    yoku_0825 2018/12/12
    “なおイベント中盤の休憩では,MySQL 5.7までのUnicode絵文字の照合に関する課題⁠”Sushi-Beer issue⁠”にちなんでお寿司とビールを中心とした軽食が用意されていました。”
  • mita2 DB メモ: MySQL 8.0でレスポンスタイムのヒストグラムが見れるようになった

    このエントリーはMySQL Casual Advent Calendar 2018の7日目です。 自分は筆が遅く、11月から準備しようしよう、と思ってたにも関わらず、結局、直前になって書いてます。。。 さて、MySQL 8.0になって、performance_schemaが15個増えてました。 5.7では、87個。 mysql> select count(*) from information_schema.TABLES where TABLE_SCHEMA = 'performance_schema'; +----------+ | count(*) | +----------+ | 87 | +----------+ 1 row in set (0.02 sec) 8.0では102個。 mysql> select count(*) from information_schema.TAB

    mita2 DB メモ: MySQL 8.0でレスポンスタイムのヒストグラムが見れるようになった
    yoku_0825
    yoku_0825 2018/12/07
    おおお便利そう!
  • 非公式なmysql-upgrade-checkerをMySQL5.5で試してみる - 41から始めました

    このエントリーは MySQL Casual Advent Calendar 2018 の5日目の記事です。 そもそもMySQL Upgrade Checkerって? 今まではリリースノートを読んで、つぶさに問題点を洗い出して、現行のDB環境に問題が無いかを人手にチェックしていました。 それをMySQL5.7の場合にMySQL8.0にアップグレードする場合に限って、Oracle社が公式にアップグレード時のチェックツールを作りました。 (Oracleデータベースとかだと昔からあるんで、その文化MySQLにも入ってきた感じですね) 現在のUpgrade Checkerでは以下のようなことがチェックできる 古い temporal type の使用 DBのオブジェクト名と予約語の競合 utf8mb3キャラクタセットの使用 mysqlスキーマの予約されたテーブル名 64文字を超える外部キーの名前 廃

    非公式なmysql-upgrade-checkerをMySQL5.5で試してみる - 41から始めました
    yoku_0825
    yoku_0825 2018/12/05
    ちょっと対応考えてみます…!
  • ユニークキーのパフォーマンス - 41から始めました

    先日に続き、mysql-casualから。 しかも今度は自分からの質問。 yoku0825さんが答えて下さったので、自分のほうで検証して確認してみようと。 その結果をここにアップしました。 1.ユニークキーって? UNIQUE 制約を使用して、主キーに関係しない特定の列に重複した値が入力されないようにできます。UNIQUE 制約も PRIMARY KEY 制約も一意性を設定しますが、主キーではない列または列セットに一意性を設定する場合は、PRIMARY KEY 制約ではなく UNIQUE 制約を使用します。 UNIQUE 制約は 1 つのテーブルに複数定義できますが、PRIMARY KEY 制約は 1 つのテーブルに 1 つしか定義できません。 また、PRIMARY KEY 制約とは異なり、UNIQUE 制約は NULL 値を許容できます。ただし、UNIQUE 制約が適用される他の値と同様

  • Innotop for MySQL 8.0 – lefred's blog: tribulations of a MySQL Evangelist

    yoku_0825
    yoku_0825 2018/11/13
    “I did some maintenance on Innotop and I merged several pull requests including one to support MySQL 8.0 (thank you yoku0825 for the contribution).” YEAH!!
  • テーブルやカラムのCollationは揃えよう - 41から始めました

    元ネタはMySQL Casualのslack この辺以降 それを見て、 そういや自分も2年前(DB移行時)にこれ調べたなー 社内メンバーに改めてちゃんと周知しよう なんか記事書くか という軽い備忘録的な感じ。 ちなみに、揃えないとどうなるか? slackにもあったように、 インデックスが効かない!(抽出はできる) 試しにテストテーブルを作る(個人の趣味が多分に含まれているのは気にしないこと) 使った環境はMySQL8.0.13 CREATE TABLE `test1` ( `test1_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'testID1', `test1_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '名前', `test1

    テーブルやカラムのCollationは揃えよう - 41から始めました
    yoku_0825
    yoku_0825 2018/11/13
    “結果は変わらない。だが、実行計画は大きく違う。 これはデータが少ないうちは気づきにくく、データ量が増えてから「あーーー!!!」となるパターン。”
  • OSC新潟で美味い日本酒を呑んできました(違) - 叫ぶうさぎの悪ふざけ

    12月22日(土)追記:この記事は、オープンソースカンファレンス Advent Calendar 2018の22日目の記事でもあります。 冬がはーじまるよー♪ って聞こえてきそうな季節。OSC(オープンソースカンファレンス)新潟で登壇して、美味い日酒をたらふく呑んできました。控えめに言って最高でした。 新潟は想定と違って暖かかったんですが、今週は東京も含め冷え込むそうです!のでみなさんお体大事にしてくださいね。 今回は 日MySQLユーザー会(MyNA会) からの参加です。というわけで参戦レポートです。 OSC新潟って? オープンソースの文化祭! 様々なセッションがあり、ブースを設営して様々なビジネスにつなげていく。全国各地で行われているカンファレンスの新潟版でした。 いろんなジャンルの話をワントラックで、かつブースからも聞ける。会場の形式がそうだったのだと思いますが、これはすごく良い

    OSC新潟で美味い日本酒を呑んできました(違) - 叫ぶうさぎの悪ふざけ
    yoku_0825
    yoku_0825 2018/11/12
    “日本酒はお通しでもあり水でもあり酒でもありメインディッシュ”
  • Oracle MySQL Innovation Day 2018 秋

    yoku_0825
    yoku_0825 2018/10/25
    “ぼくらが8.0にいたるまでのみちのり(未到)”
  • STRAIGHT_JOINをつかったSQLチューニング | GMO MEDIA CREATOR BLOG

    日々のWebサイトやアプリの制作を通じて、役に立ちそうな技術情報や楽しい話を発信しています。私たちはGMOメディア株式会社のクリエイターです。 こんにちは。PHPエンジニアの千葉です。 近所の金木犀が咲いたとおもったら、すぐに散ってしまって少しさびしいです。秋ですね…。 問題となった箇所 ゲソてんには、メッセージ機能というものがあり、 フレンド同士でメッセージのやりとりをしたり、 管理画面からメッセージを配信したりすることができます。 このメッセージ機能をお知らせとして使いたい、 という要望があり、管理画面から配信したものだけに絞り込んで マイページに表示させてほしいという依頼がありました。 ↓マイページをスクロールすると下の方にあります。 このSELECTクエリが今回の主役です。 こんなふうに変わっていきました 第1段階 既存のクエリをコピペして、それをベースに 要件を満たすように手を入

    STRAIGHT_JOINをつかったSQLチューニング | GMO MEDIA CREATOR BLOG
    yoku_0825
    yoku_0825 2018/10/24
    MySQL 8.0には JOIN_ORDER がヒント句に書けるようになっていて早く本番に導入したいいいい