タグ

mysqlに関するtgkのブックマーク (97)

  • How to Export Amazon RDS MySQL Results to CSV – tennant.io

    tgk
    tgk 2024/12/20
    RDS for MySQLではmysqldumpやselect into outfileでCSVを出力できないので(DBサーバのファイルシステムに触れないから)、代わりにこんなことをするしかない、という例
  • What does MySQl explain Extra "Using where" really mean?

    tgk
    tgk 2024/10/06
    「私はMySQLのコンサルタントだが Using where に一貫性のある意味があるとは思っていない。いまは無視している」
  • why the extra is "using where;using index" instead of "using index"

    tgk
    tgk 2024/10/06
    「"Using where; Using index"て何なの?」→「Using whereは信用ならない」
  • MySQL 8.0 は遅くなってきてる?何故?(2)

    前のエントリの続きです。 念を押しておきますが、このブログの「内容は個人の考えであって、所属組織とは方針が異なる」と考えてください。 さて、MySQL 8.0.xの単スレッド性能がどんどん遅くなってきた要因は幾つかありそうなので切り分けていきたいと思います。 まずは、数年前のエントリ「やはりC++はCよりも遅い?」の影響をできるだけ正確に見積もりたいところです。実行バイナリの最適化レベルを合わせて比較して初めて、ロジックの劣化が判るわけです。コンパイラのオプションの範疇でできるだけ最大の最適化を行って計測したいところです。いくつか試した結果、clangのPGO+LTO が手軽な中では最も効果があったのでそれで同じ計測をしてみましょう。(GCCのPGO+LTO と clangのPGOのみ はこれよりも少し劣ったのでとりあえず。) (補足) PGO は、一旦ターゲットとなる処理をプロファイリン

    MySQL 8.0 は遅くなってきてる?何故?(2)
    tgk
    tgk 2024/09/12
    「8.0.xでは ... 提供されるバイナリの最適化レベルは据え置きなのでどんどん遅くなってきた」
  • MySQL 8.0 は遅くなってきてる?何故?(1)

    いろいろありますが、今後のことを考える前にまずは、バージョン8.0.xの現状を一旦整理・理解してから決めようと思います。 念を押しておきますが、このブログの「内容は個人の考えであって、所属組織とは方針が異なる」と考えてください。 MySQL内部の人は、クラウドとか最新のサーバーとかしか利用していないのかも知れず、MySQL 8.0 が日に日に遅くなっていることに気づいていない人しかいないのでしょう。しかし、数年前のローカルPCで動かすと年々動作が鈍くなっているのを感じます。マイナーバージョンアップで単スレッド性能が下がり続けるなんて商用システムではリスキーです。 証明が難しく、ずっと放置せざるを得なかったのですが、非常に重要な事柄ですので今一度、オープンになっているソースを基に分析をしてみます。 まず、測るモノサシを決めましょう。以前のエントリ「MySQLバージョンアップによるInnoDB

    MySQL 8.0 は遅くなってきてる?何故?(1)
    tgk
    tgk 2024/09/09
  • MySQLの新製品「HeatWave」はInnoDBの最大400倍高速、テラバイト級を超える大規模データを分析可能なインメモリデータベース。スクエニやSCSKがその性能を検証[PR]

    しかもHeatWaveはスケールアウトによる規模拡大が可能で、テラバイト級からそれを超える大規模データにも対応。 Oracle Cloud Infrastructureの備えるオーバーヘッドの小さなベアメタルサーバやネットワークを基盤としたスケールアウト機能により、サーバ台数とともにプロセッサコア数が増えても、ほぼリニアな性能向上を実現しています。 さらに、実行されたクエリと実行時間を学習データとして蓄積されていくため、HeatWave自身がインメモリデータベースにおけるデータの最適な配置を学習し、提案する機能も新たに備えるようになりました。 SQLを判別、最適なデータベースエンジンへ自動投入 この強力なデータ分析機能を、通常のMySQLとの違いをほとんど意識することなく利用できるのも、HeatWaveのもう1つの大きな特長でしょう。 HeatWaveはInnoDBとHeatWaveのデー

    MySQLの新製品「HeatWave」はInnoDBの最大400倍高速、テラバイト級を超える大規模データを分析可能なインメモリデータベース。スクエニやSCSKがその性能を検証[PR]
    tgk
    tgk 2021/05/10
    「これをHeatWaveに切り替えた結果、ETLが不要になり単純なレプリケーションで迅速かつシンプルにデータ転送が可能で、しかもつねに最新のデータで分析可能」
  • Level up your MySQL query tuning

    Experience our online live events, exclusive and interactive. Thousands technical articles, magazines, cheatsheet and more. Up to 25% discount for more than 30 conferences a year with international experts. Exclusive content from over 30+ renowned software brands. GET STARTED

    Level up your MySQL query tuning
    tgk
    tgk 2020/10/03
    loose index scanとは。そのガチガチの発動条件は。あとtight index scanというレトロニムがある模様
  • blog dds: 2018-08-05 — How I slashed a SQL query runtime from 380 hours to 12 with two Unix commands

    How I slashed a SQL query runtime from 380 hours to 12 with two Unix commands I was trying to run a simple join query on MariaDB (MySQL) and its performance was horrendous. Here’s how I cut down the query’s run time from over 380 hours to under 12 hours by executing part of it with two simple Unix commands. Below is the query, with forms part of a more complex GHTorrent analysis I implemented usin

    tgk
    tgk 2018/08/13
    ふつうのクエリをMySQLにNLJさせるより、unixコマンドで12時間かけて人力JOINした方が速かった人の話。MySQLではcovering indexで逃げられない時はどうするのが正解なのか? 生データを結合カラムでソートして保存したらいいのか?
  • MySQLのデータをcsv,tsv形式でダンプする - Qiita

    出力形式はSQLCREATE文とINSERT文になりますが、オプションを指定することで、 csvや tsv形式にすることが可能です。 #csv,tsv出力のオプション csv(tsv)で出力するには、 --tabと --fields-terminated-by の2つのオプションを使用します。 ##--tabオプション ファイルの出力先ディレクトリを指定するオプションです。 --tab=/tmpと指定すれば、/tmp以下にファイルが出力されます。 このオプションは、csv(tsv)形式で出力する場合は必須です。 ##--fields-terminated-byオプション 区切り文字を指定するオプションです。 デフォルトはタブになりますので、tsvファイルで出力する場合はこのオプションは不要です。 csv形式で出力したい場合は、 --fields-terminated-by=,と指定します

    MySQLのデータをcsv,tsv形式でダンプする - Qiita
    tgk
    tgk 2018/02/07
    mysqldumpのデフォルトの出力形式はINSERT文だった。あと出力を圧縮するオプションはない。圧縮したかったらgzipにパイプするとか
  • MySQL 8.0 : クエリーキャッシュのサポート終了 | Yakst

    役に立つ場面もある一方、スケーラビリティー上問題があるとされてきたMySQLのクエリーキャッシュが、MySQL 8.0で廃止されることになる。その背景と理由。 免責事項 この記事はMorgan Tocker氏によるMySQL Server Blogの投稿「MySQL 8.0: Retiring Support for the Query Cache」(2017/5/30)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 Reneが昨日、ProxySQLのブログにこう書きました。 MySQLのクエリーキャッシュはパフォーマンスを改善するためにあるが、それは重大なスケーラビリティー上の問題を抱えていて、深刻なボトルネックに簡単になってしまいかねない。 これは、MySQLチーム内でも確かに長い間言われてきたことです。今日の記事の題に入る前に、少しイントロダクションを書かせて

    MySQL 8.0 : クエリーキャッシュのサポート終了 | Yakst
    tgk
    tgk 2017/06/05
    いよいよ普通のRDBになるMySQL
  • SQLを繰り返し実行したら段階的に応答速度が上がった話 - なからなLife

    MySQL Casual Advent Calendar 2016 - Qiitaの6日目の記事です。 AdventCalendar自体初参加でドキドキ、してたら、成り行きで2日連続。 コレ用のきれいなエビデンス取れるような環境要していなかったので、普段より荒っぽいですが、Casualな感じで失礼します。 大きなテーブルを繰り返しSELECTしてたら、挙動が変わったんですよ。 バッファに載っているなら載っているで早いだろうし、載っていいなら最初ガッツリ遅くて、次からグイっと速くなるだろうと思っていたんですよ。 バッファに載りきらないなら、何回やっても遅いだろうと思っていたんですよ。 で、ちょいと計測的なことをやってた関係で、同じSQLを何度か叩いて平均、中央を見ようと思っていたんです。 そしたら、 45.71秒、44.90秒、24.44秒、13.32秒、13.12秒・・・ と、段階的に応答

    SQLを繰り返し実行したら段階的に応答速度が上がった話 - なからなLife
    tgk
    tgk 2016/12/07
    「SQLの1発目で、Oldに乗る範囲だけOldに乗る。OldからYoungに移ったあと、もう一度SQL叩いたところで、空いたOldに残りからまた0.74GBが乗る」「そんな感じで、段階的に応答速度が上がる、という事象」
  • このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる

    YAP(achimon)C::Asia Hachioji 2016midの資料です。

    このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる
    tgk
    tgk 2016/07/04
    「PostgreSQL SSDなのに遅い」そうなのか ランダムアクセスで頑張る件数をふやすパラメータがないとかか
  • MySQL と寿司ビール問題 - かみぽわーる

    MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる に関連するトピックで、 MySQL には寿司ビール問題というのがある。 寿司ビール問題どっかで詳しくお話を聞くべきだよなぁ。。。— RKajiyama (@RKajiyama) March 18, 2015 これはどういう問題かというと、 MySQL の Unicode では binary collation にしてコードポイントで比較しないと🍣と🍺に限らず絵文字が同値判定されるという問題です。 あれ? MySQL の utf8mb4 charset って、4バイト文字同士を比較すると同じ文字扱いされる? SELECT '🍣'='🍺' → 1 MySQL的には寿司とビールは同じ扱い。— とみたまさひろ (@tmtms) December 22, 2014 MySQLで select

    MySQL と寿司ビール問題 - かみぽわーる
    tgk
    tgk 2015/03/23
    「MySQLのUnicodeではbinary collationにしてコードポイントで比較しないと絵文字が同値判定される」「この挙動はドキュメントに明記されており、仕様である」
  • http://kwatch.houkagoteatime.net/blog/2014/12/20/postgresql-features/

    http://kwatch.houkagoteatime.net/blog/2014/12/20/postgresql-features/
    tgk
    tgk 2014/12/22
    「MySQLでは非相関サブクエリでも相関サブクエリのように実行されるため、上の例だとサブクエリが N 回実行されてしまいます」!!!
  • MySQLのロックについて - SH2の日記

    JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG)に参加して発表をしてきました。IIJさまのセミナルームは窓からの眺めがすばらしいですね。JPOUGの運営メンバのみなさま、会場を提供してくださったIIJのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは「MySQLのロックについて」と題してネクストキーロックなどの説明をしました。プレゼンテーション資料と、調査のために作成したツールを公開します。 プレゼンテーション資料 (PDF) Lock Inspector 1.0 プレゼンテーション資料からリンクしているウェブサイトの一覧です。 MySQL Lists: mysql: Re: InnoDB's inner workings + checkpoints 過去記事の訂正 @kami

    MySQLのロックについて - SH2の日記
    tgk
    tgk 2014/09/14
    ネクストキーロックなるものについて
  • Hayato Matsuura on Twitter: "MySQL 5.7.5から、innodb_buffer_pool_sizeがオンライン変更可能に!後で調整できなくて困るパラメータのダントツ第1位だったのでこれは助かる。 5.7.5が待ち遠しい http://t.co/SGSf3nennn #mysql"

    tgk
    tgk 2014/08/24
    「innodb_buffer_pool_sizeがオンライン変更可能に」
  • InnoDBのプライマリキーとセカンダリキー | Yakst

    InnoDBのテーブルから、プライマリキーを取得するクエリを書いたのに、なぜかセカンダリインデックスが使われることがある。この仕組みを、InnoDBのインデックスの格納方法から解説する。 今日、EXPLAINの結果を色々と試してみている時に、興味深い問題にぶち当たったので、ドキュメントには載っていないこの現象をここで共有しておこう。 とても単純なInnoDBのテーブルを考えるところから始めよう。2つのINT型のカラムを持ち、最初のカラムがプライマリキーで、2番目のカラムに普通のインデックスが張ってある。 CREATE TABLE `t1` ( `id1` int(10) unsigned NOT NULL, `id2` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id1`), KEY `id2` (`id2`) ) ENGINE=InnoDB;

    InnoDBのプライマリキーとセカンダリキー | Yakst
    tgk
    tgk 2014/03/31
    InnoDBのsecondary indexにはrowidではなく主キー値が入っている→主キーのフルスキャンはclusterd indexよりsecondary indexをなめた方が速い
  • MySQL5.6でクッソ遅くなるSQL実行しました - Glitch

    MySQL5.6.3から、FROM句サブクエリにおける一時テーブルで、インデックスが作成されると聞いたので、テストしてみた。 MySQL :: MySQL 5.6 Reference Manual :: 8.13.16.3 Optimizing Subqueries in the FROM Clause (Derived Tables) 比較対象はMySQL5.5.32とMySQL5.6.12です。 SELECT * FROM (SELECT * FROM test_tbl) y WHERE col3=3; 正直こんなSQL発行するなっていう文ですが。 対象テーブルtest_tblはこんなかんじ。 CREATE TABLE `test_tbl` ( `col1` int(11) NOT NULL AUTO_INCREMENT, `col2` varchar(10) DEFAULT NULL

    MySQL5.6でクッソ遅くなるSQL実行しました - Glitch
    tgk
    tgk 2014/02/21
    「今回はテンポラリなインデックスを作った方が速い」というオプティマイザの判断ミス(=制御可能)なのか、あるいは判断なしにとにかくインデックスを作りに行く(=制御不可能)のか
  • PostgreSQLの共有バッファ(shared_buffer)とMySQLのバッファプール(buffer_pool)のメカニズム比較 - interdb’s blog

    PostgreSQLMySQLのバッファについて。 PostgreSQLのバッファマネージャ 詳細はこちらをみて頂くとして、PostgreSQLのバッファマネージャは、2005年リリースのバージョン8.1で大幅に変わった。 以下の表をみて頂くとわかるようにページ置換アルゴリズムは、8.0まではリストで実装したLRUとそのバリエーションであったが、8.1から配列で実装したClockSweep方式になった。 ページ置換アルゴリズムとロックの変遷 バージョン ページ置換アルゴリズム バッファマネージャのロック 方式 説明 PostgreSQL での呼称 説明 7.4まで [〜2004] LRU "Least Recently Used"の略称。最もオーソドックスなアルゴリズム。 BufMgrLock 排他ロックのみ。ページの入れ替えだけでなく、読み取りでも排他ロックをかける*1。 8.0.0〜

    PostgreSQLの共有バッファ(shared_buffer)とMySQLのバッファプール(buffer_pool)のメカニズム比較 - interdb’s blog
    tgk
    tgk 2013/11/12
    PostgreSQL/MySQLの、巨大テーブルのスキャンでバッファが上書きされてしまわない仕組み
  • (帰ってきた)InnoDBパフォーマンス最適化の基礎 | Yakst

    MySQL Performance Blogの翻訳。Perconaのサポートエンジニアである筆者が、InnoDBのパフォーマンスチューニングの基礎について、ハードウェアやOSの選定からパラメータの推奨値まで解説する。 最近、2007年にPeter Zaitevが書いた「InnoDBパフォーマンス最適化の基礎」という記事を見つけた。これは素晴らしい記事で、読んでいると、MySQLとPercona Serversそして今日利用可能な全ての基盤技術に関して、6年近くの間に何が変わってきたのかを見直してみたいと思わせるものだ。 当にたくさんのことが変わったものだ!この記事では、InnoDBの使用に効果的なパラメータの多くに、特にパフォーマンスの観点から焦点を当てる。私はサポートエンジニアで、Percona SupportではInnoDBパラメータの適切なサイズに関する質問がたくさん寄せられている

    (帰ってきた)InnoDBパフォーマンス最適化の基礎 | Yakst
    tgk
    tgk 2013/09/27