タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

MySQLに関するroirrawedocのブックマーク (8)

  • MySQL :: Hash join in MySQL 8

    The build phase The literature usually divides hash join in two phases; the build phase and the probe phase. In the build phase, the server builds an in-memory hash table where rows from one of the inputs are stored, using the join attribute(s) as the hash table key. This input is also known as the build input, and let us assume that ‘countries’ is designated as the build input. Ideally, the serve

  • MySQLに投げられたすべてのSQLクエリをロギングする - モヒカンメモ

    概要 クエリビルダやORMが生成するクエリを確認したいなどの理由で、MySQLに投げられたクエリを確認したくなることがある そういうときは、MySQLのクエリログ (general_log) と言う設定をONにすることによって、すべてのクエリをログに吐かせることができる dev.mysql.com 5.2.3 一般クエリーログ 一般クエリーログは、mysqld の実行内容の一般的な記録です。サーバーは、クライアントが接続または接続解除したときに情報をこのログに書き込み、クライアントから受け取った各 SQL ステートメントをログに記録します。一般クエリーログは、クライアント側でエラーが疑われるとき、クライアントが mysqld に送信した内容を正確に知りたい場合に非常に役立つことがあります。 やってみる 1. 現在の設定を確認する mysql> select version(); +----

    MySQLに投げられたすべてのSQLクエリをロギングする - モヒカンメモ
  • Mysql2 の "MySQL client is not connected" について

    Rails アプリケーションのドメインロジックを共有するためにバッチでも Rails を使っているケースはあるかと思います。 先日、長時間稼働しているバッチで MySQL サーバの再起動後に MySQL client is not connected が起きたんですが、数年 Rails を使っていて初めて遭遇したエラーだったので、次の 2 点について調べてみました。 このエラーにはどう対処すべきなのか? バッチ特有の問題なのか? そもそも MySQL client is not connected とは? Mysql2 のこの辺で定義されているエラーです。 定義を見る限り、client が初期化されているにも関わらず、network socket (file descriptor) が無効な状態だとこのエラーになるみたいですね。 network socket が無効な状態になるケースですが

    Mysql2 の "MySQL client is not connected" について
  • innodb_thread_concurrencyに関する話 | GREE Engineering

    こんにちわ。せじまです。今回の話は軽く書こうと思っていたのですが、長くなりました。まぁInnoDBの話なのでしょうがないですね。 はじめ 今回はinnodb_thread_concurrencyについてお話しようと思います。できれば、事前にInnoDB の mutex の話(入門編)を読んでいただいた方が、より深く理解していただけるのではないかと思います。 長いので、最初に五行でまとめます 現代において、ほとんどのケースでは、innodb_thread_concurrencyはデフォルトの0のままで問題ないと思います。なぜなら、最近のInnoDBはかなり良くなってきたからです。 それでもinnodb_thread_concurrencyをチューニングするとしたら、「高負荷状態になったときでもスレッド間の公平性をなるべく担保し、安定稼働させるため」と割り切って使うのが良いでしょう。 inno

    innodb_thread_concurrencyに関する話 | GREE Engineering
  • 日々の覚書: utf8mb4_0900_ai_ci の速度をどう見るか

    TL;DR MySQL 8.0からデフォルトの照合順序が latin1_swedish_ci から utf8mb4_0900_ai_ci になった さすがに latin1 をそのまま使っているとは思えないけれど、 utf8mb4 だけで見てもデフォルトは utf8mb4_general_ci から utf8mb4_0900_ai_ci に変更になっている 「思ったよりは遅くならない」と見るか、「そんなに遅くなるのか」と見るかは人による気がする まずは等価比較。 それぞれ10億回繰り返しているので、1回当たりの時間はナノ秒単位になる。 あと、データは保管せずただ比較しているだけなので、単純にCPU勝負のワークロードになる。 mysql80 8> SELECT BENCHMARK(1000000000, '1' = '1' COLLATE utf8mb4_0900_ai_ci) AS utf8

  • MySQL 8.0は何が優れていて、どこに注意すべきか。データベース専門家が新機能を徹底解説 - エンジニアHub|Webエンジニアのキャリアを考える!

    MySQL 8.0は何が優れていて、どこに注意すべきか。データベース専門家が新機能を徹底解説 MySQLの最新版「MySQL 8.0」正式版が2018年4月にリリースされました。数多くの機能や設定が追加・変更されているMySQL 8.0の「知っておきたい便利な機能」や「危険なハマりどころ」などを、My SQLの専門家に教えてもらいました。 2018年4月、世界中のエンジニアが待ちに待ったMySQL 8.0の正式版がリリースされました。リリースに伴い、数多くの機能や設定が追加・変更されており、MySQLがより便利なものへと進化しています。 MySQL 8.0で積極的に利用すべき目玉機能や、知っておかなければ危険なハマりどころなど重要な変更点を、MySQLの保守サポートやコンサルティングなどを専門とする株式会社スマートスタイルの中野真也さんと成田優隆さんに解説してもらいました。 中野真也(な

    MySQL 8.0は何が優れていて、どこに注意すべきか。データベース専門家が新機能を徹底解説 - エンジニアHub|Webエンジニアのキャリアを考える!
  • MySQLのトランザクション制御がキモい話 - なからなLife

    MySQL Casual Advent Calendar 2016 - Qiitaの5日目の記事です。 AdventCalendar自体初参加でドキドキ。 トランザクションの開始は、BEGINしたときじゃない! MySQLでは、BEGIN(START TRANSACTION。長いので、以下、特筆すべき場合以外は「BEGIN」で)を宣言しても、内部的にはまだトランザクションを開始してません。 SQLを投げたタイミングで、トランザクション開始になります。 このとき、更新のない、FOR UPDATEもないSELECT文でも、トランザクションが開始されます。 なにそれきもい。 「AutoCommit=ON/OFF」による違い AutoCommit=ONのとき トランザクションはSQLを発行するたびにBEGIN/COMMITで完了し、ロールバックできません。 複数SQLを束ねて1つのトランザクション

    MySQLのトランザクション制御がキモい話 - なからなLife
  • テーブルスペースとログファイルについて(ibdata*、ib_logfile*)

    いつもmysqlの中身を見た時に巨大化しているファイルを良く見かけていましたが、 ( ´_ゝ`)フーンっていうぐらいにしか思っていなかったので ibdata*とib_logfile*について調べてみました(ΦωΦ)フフフ… 簡単な説明をすると、 ibdata*は共有テーブルスペース(全データを管理します。) ib_logfile*は、ログファイルらしいです。 データは直接テーブルスペースに更新がされるのではなく、 一旦ログファイルに更新内容が書き込まれる。 その後に、テーブルスペースに反映される流れになっているらしい。 テーブルスペースの更新はコストが高いのですぐに反映するのではなく、 ログファイルに書いておくことで、書き込みの性能をあげてるらしい(´・∀・`)ヘー そのため、InnoDBのデータは、テーブルスペースとログを合わせて完全な情報となるらしい。 ↓実際のファイルはこいつらですト

  • 1