タグ

mysqlに関するkibitakiのブックマーク (36)

  • MySQL max_connections は雑に設定しておけば良い - mita2 database life

    MySQL 誕生25周年 らしいです。めでたい! 25年、1つのソフトウェアが継続しているってすごい! max_connections について データベースを使っている開発者から「最大までどれぐらいコネクション数を増やせるのか」という質問を良くもらいます。 最大コネクション数(max_connections) の設定値を超えてしまい、too many connections エラーが出る。 max_connections を見直すとして、「じゃあどこまで大きくしていいのか?」と不安になるのはわかる。 以下の話は、コネクションプールを使っている前提のお話。 単にコネクション数が増えるだけでは、負荷は増加しない 単にコネクション数が増えるだけでは、DBサーバの負荷はあまり変化しない。 特にMySQLはスレッドモデルで実装されており、(プロセスモデルのデータベースと比較して)大量にコネクション

    MySQL max_connections は雑に設定しておけば良い - mita2 database life
  • mysql 接続数の確認 | 株式会社レジアスの技術ブログ

    最大接続数設定 mysql> show global variables like 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 151 | +-----------------+-------+ 1 row in set (0.00 sec) 起動してからの累積接続数 mysql> show global status like 'Connections'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Connections | 206 | +---------------+---

  • メンテのいらないソフトウェア - 誰かの役に立てばいいブログ

    ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 yrmcds: memcached クローンで、レプリケーション機能などを持つ usocksd: SOCKS4/5 サーバー & ライブラリ transocks: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ coil v2: Kubernetes の CNI ネットワークドライバ moco: MySQL を自動運用する Kubernetes オペレーター accurate: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあります。これらのソフトウェアの多くは、現役

    メンテのいらないソフトウェア - 誰かの役に立てばいいブログ
  • MySQLパフォーマンスチューニング -my.cnfの見直し- - Qiita

    ※RDSは使っていません。 負荷を見てみる DBサーバーの負荷状況を見てみます。 当時の監視ツールの画像がないのですが、以下の状況でした。 LA(Load Average)が突き抜けている リクエスト数は「常識的に考えて」それほどでもない メモリの使用量にあまり変化がない swapはしていない ストレージ容量を結構っている WEBサーバーから見れば、処理待ちのままプロセスが処理されていない典型的なパターンだったと思います。 DBサーバーとしては、LAに対し、メモリの使用量があっていないように思われました。 仮説 上記の状態から、仮説を立てます。 スロークエリ が頻発しているのではないか メモリ が正しく割り当てられていないのではないか 各種ログ の設定が適切ではないのではないか 仮説を検証することで、対策をしていきます。 設定を見直す 上記の仮説の設定は、MySQLの設定ファイルである「

    MySQLパフォーマンスチューニング -my.cnfの見直し- - Qiita
  • MySQLメモリのチューニング手順と、手軽に実施する方法を解説

    デフォルト設定はNG?MySQLのメモリのチューニング手順MySQLのメモリの適切なチューニングを実施していない場合、メモリ不足などによりシステム障害を引き起こす可能性があります。特にデフォルトの設定のままにしている場合、バッファーサイズが小さすぎる可能性が高く、早めの見直しが必要です。ここでは、メモリが適切に割り当てられているか確認する手順を解説します。 1.ストレージエンジンの種類の確認MySQLでは、利用するストレージエンジンによりメモリの使い方が異なります。そのため、MySQLのメモリチューニングを検討する場合、まずはお使いのデータベースで使用されているストレージエンジンの種類を確認する必要があります。 なお、MySQLの場合、ストレージエンジンはテーブル毎に設定可能なため、テーブル毎で使用するストレージエンジンを分けている場合は注意が必要です。 テーブル毎のストレージエンジンは以

  • A5:SQL Mk-2 - フリーのSQLクライアント/ER図作成ソフト (松原正和)

    特徴・機能 様々なデータベースへの接続 Oracle Database へはOCI接続(オラクルクライアント経由)、直接接続(オラクルクライアント不要)で接続出来ます。 PostgreSQL, MySQLへは直接接続(クライアントライブラリ不要)で接続出来ます。 Microsoft SQL Server へは NativeClient 経由で接続できます。 それ以外のデータベースへはADO(OLE DB)または、ODBCで接続出来ます。 SQL入力支援機能 Ctrl+SpaceでSQL文を解析しテーブル名やテーブルカラム名の入力補完が行えます。 共通表式や副照会も解析する強力な機能です。 GUIでのクエリーの設計と分析機能 GUIを使いクエリーの設計と分析を使ってクエリーを作成することができます。 実行計画取得機能 RDBMSSQLを実行する際の実行計画(アクセスプラン)を表示します。

  • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

    MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
  • SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる

    最近SELECT ... FOR UPDATEでデッドロックする話を何度かしたので。 前職のときにUPDATE同士がデッドロックしてたときに、SELECT ... FOR UPDATEで排他ロックを取ってからUPDATEしてデッドロックを防ぎますってPRをレビューしてたときのことで、複数レコードの排他ロックは一瞬ですべてのレコードのロックを取れるわけではなく、ロックを取る順番が揃っていないと簡単にデッドロックしますよという話です。 https://gist.github.com/kamipo/0bb4e37d58ba18a8cefb8aa02f778231 # frozen_string_literal: true require "mysql2" def client Mysql2::Client.new( host: "localhost", username: "root", dat

    SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
    kibitaki
    kibitaki 2020/12/16
    意図的にデッドロックを起こして〇〇する、って中二病方面ですごい好まれそうな技だけどあまり採用例ないね。
  • AWS 導入事例:任天堂株式会社、株式会社ディー・エヌ・エー | AWS

    全世界同時リリースする『マリオカート ツアー』の DBAmazon Aurora を採用 高い品質が求められるゲーム配信基盤の運用工数を、大幅に削減 世界的ゲームメーカーである任天堂株式会社。2015 年ごろからスマートデバイス向けゲームアプリの開発をスタートした同社は、株式会社ディー・エヌ・エー(以下、DeNA)との協業により、全世界で 4 憶ダウンロードを超える『Super Mario Run』、『ファイアーエムブレム ヒーローズ』、『どうぶつの森 ポケットキャンプ』などにおいても、ゲームサーバーを含む各種機能を AWS 上に構築・運用してきました。2019 年に『マリオカート ツアー』をリリースするにあたり、データベースとして Amazon EC2 上で運用する MySQL から Amazon Aurora を採用。ユーザーが快適にプレイするために必要なパフォーマンスとスケーラ

    AWS 導入事例:任天堂株式会社、株式会社ディー・エヌ・エー | AWS
  • Sequel proの代わりを探すためにTeamSQL、TablePlus、DBeaverを使ってみた結果 - Qiita

    Sequel proの代わりを探すためにTeamSQL、TablePlus、DBeaverを使ってみた結果MacSequelProDBeaverTeamSQLTablePlus 「mac DB」検索すると5番目くらいに出てくる「Sequel Pro」を使ってたけど、 MySQl8.0に対応していないので、案件によっては使えない。 接続できるっぽい情報もあったがこちらでは再現出来ず・・。 MySQL8.0でSequel Proを使えるようにする Sequel ProからMySQLにログインできないエラーを解決 そこで代わりになるツールを調べました。 選定ポイント 無料で利用可能か? ssh接続で、2台先のDBに接続できるか? ポートフォワードをコマンド実行するのは面倒。.ssh/configを使って簡単につなぎたい。 イメージ → 踏み台サーバ越しにあるMySQLにSequel Proでつな

    Sequel proの代わりを探すためにTeamSQL、TablePlus、DBeaverを使ってみた結果 - Qiita
  • MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita

    TL;DR この記事に書いた事 二分探索木のお話(前提知識) MySQLのInnoDBで利用されているB+木インデックスの構造と特性 (前提知識) MySQLのClusteredIndex,SecondaryIndexについて(前提知識) カーディナリティについて(前提知識) 実際の負荷対策 検出編 スロークエリ 検出編 その他のクエリ割り出しいろいろ クエリ・インデックスの最適化 explainの使い方と詳細 ケース別実践 単純にインデックスがあたっていないケース カーディナリティが低いインデックスが使われているケース 部分的にしかインデックス/複合インデックスがあたっていないケース 複合インデックスの順序誤りでインデックスが適用できていないケース 複合インデックスの最初がrange検索のケース ソートにインデックスが適用できていないケース ソートにインデックスが適用できていないケース(

    MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita
  • あなたが必要としていることを知らなかった10の開発ツール - Qiita

    以下はJay Chowによる記事、Top 10 Developer Tools You Didn't Know You Neededの日語訳です。 有償無償や日語対応の記載については訳者(私だ)の追記です。 Top 10 Developer Tools You Didn't Know You Needed これは、MacでプロフェッショナルのWeb開発者になるためのマスターガイドです。 ここに取り上げたものは、私にとってはなくてはならない(MUST)ツールです。 これらを使うことで、あなたはプログラミング作業に対して限りない恩恵を受けることでしょう。 あなたの開発環境に追加されるべき、より便利なツールが見つけられることを願っています。 1. JetBrains Tools App https://www.jetbrains.com/toolbox/ JetBrains製ツールのインスト

    あなたが必要としていることを知らなかった10の開発ツール - Qiita
    kibitaki
    kibitaki 2019/08/10
    DBeaver知らなかったけど
  • Visual Studio 2017から MySQL へ接続

    簡単ですが、いくつかやり方がありそうですので、一番簡単な方法を。 以下の公式サイトにある注意点を読みながら順番を考えてインストールする必要がありました。 https://dev.mysql.com/doc/visual-studio/en/visual-studio-install.html Prerequisites 以下が前提条件となります。順番にインストールします。NySQL for VSとConnectorはこの順番でないとなりません。 - Visual Studio 2017 : これは固定にします。以下2017対応バージョンのみ示します。 - MySQL for Visual Studio 1.2 or 2.0 - MySQL Connector/Net 6.8 以降 対応するVisual StudioやMySQLのバージョンとの関係は上記サイトにある以下の表にまとめられていま

    Visual Studio 2017から MySQL へ接続
    kibitaki
    kibitaki 2019/05/30
    NUGETよりこっちなんかしら?と悩む。
  • サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技

    2018/03/10 PHPerKaigi 2018 https://phperkaigi.jp/2018/Read less

    サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
  • mysqlでDB定義書からddlを自動生成

    こんにちは岡です。 汎用系からWEBに移ってきて一番驚いたのは、設計書がないプロジェクトが多いことでした。 お客様が求めていない事や、各種CMSが台頭してきて必要としないこともあるのでしょうか。 開発者向けとしては綺麗な実装とコメントがあれば詳細設計書はいりませんし、何よりスピード感が段違いなのでメリットも大きいのでしょう。 ただ、フルスクラッチで20TBLを超える開発となると、設計するうえでDB定義書くらいは欲しいところ。でも定義書を正としてDDLを直すは面倒くさい。 DB定義書からddlを自動生成するマクロ付のexcelが欲しい。 が、自動生成系を探してもしっくりくるものがなく、フリーで落としたものに手を加えていまだに使ってたりします。 ver1.1_DB定義書 シートをコピーしてテーブルを追加していき、先頭シートの作成ボタンを押すとdrop&createのddlを吐くだけです。 非

    kibitaki
    kibitaki 2018/05/10
    ありがたとうございます。
  • MySQLのクエリの良し悪しはrows_examinedで判断する - かみぽわーる

    仕事やらなんやらでMySQLのクエリの良し悪しを判断する必要があるとき、EXPLAINの内容だけだとどのぐらい良くなったり悪くなったのか分からないので SET long_query_time = 0; してrows_examined (そのクエリでrows_sent行の結果を返すために何行に触ったのか)も一緒に提示するようにしている(少なくともMySQL 5.7時点ではrows_examinedはslow_query_logでしか確認できないはずperformance_schemaが有効ならevents_statements_historyやその仲間たちで確認できるとのこと*1 MySQL :: MySQL 5.6 リファレンスマニュアル :: 22.9.6 パフォーマンススキーマステートメントイベントテーブル)。 例: 上の例のBeforeは、もともとDBAが書いた温かみのあるSQLでO

    MySQLのクエリの良し悪しはrows_examinedで判断する - かみぽわーる
  • MySQLを割と一人で300台管理する技術

    2017/09/05 db tech showcase Tokyo 2017 http://www.db-tech-showcase.com/dbts/tokyo

    MySQLを割と一人で300台管理する技術
  • MySQLインデックスのお手入れの基本 | Yakst

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

    MySQLインデックスのお手入れの基本 | Yakst
  • MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響

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

    MySQLに重大な脆弱性見つかる、パッチ存在せずデフォルトで影響
    kibitaki
    kibitaki 2016/09/13
    公開しました(エッヘン じゃねーよ。お手製パッチくれよ。
  • MySQL 5.7の罠があなたを狙っている

    2015/08/22 YAPC::Asia Tokyo 2015 Lightning Talk 2016/01/13 update about default_password_lifetime will be 0Read less

    MySQL 5.7の罠があなたを狙っている
    kibitaki
    kibitaki 2015/08/23
    ほんとに罠だった