You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Information 2024/7/24: Ibis-Polars vs Native Polars Ibis-Polars と Native Polars の処理速度の比較記事を書かれている方がおりました。 Ibis 経由で Polars を使用しても Polars と処理速度に大きな差がないことを示していました。 ibis-frameworkでPolarsとSQLをつかってみた 2024/1/14: Kaggle notebook for Ibis Kaggle で Ibis を使用するための Sample Notebook を用
これはなに ども、レバテック開発部のもりたです。 タイトルの通りなんですが、SQLチューニングってつまり宣言型言語でリファクタリングするってことだよね、というのを書きます。なお具体的なリファクタの方法とか実行計画の読み方とかはスコープ外です(別で書く予定)。 SQLチューニングはリファクタリング まずSQLチューニングというと、パフォーマンス改善みたいな意味合いが強いと思います。ただ、SQLチューニングは本質的にはリファクタリング的な行為であるはずです。リファクタリングの定義を確認すると、 リファクタリングとは、ソフトウェアの外部の振る舞いを保ったままで、内部の構造を改善していく作業を指します。 引用元: 『リファクタリング 既存のコードを安全に改善する 第2版』 雑にいえば、結果を変えないでコードを改善することです。ここでいう改善とは内部品質を向上させることで、例えば保守容易性であったり
TL;DR TypeORMで発生していたスロークエリを改善 スロークエリを改善したらECSの負荷も減少 はじめに スロークエリを改善したら、ECSコンテナ側の負荷も下がってなんでだろ?と思ったので記事にしようと思います。 環境 TypeORM v0.3.20 Node.js v18.x バックエンドインフラ ECS on Fargate => Amazon Aurora MySQL 負荷改善の前と後 まずはどのくらい改善したのかを示します。 この時ECSコンテナ8台動いてました。(4vCPU 8GBMem) 改善前 改善後 改善前と改善後は一日前の同じ時間帯のものです。 ちゃんと動いてるのか不安になるくらい下がってました笑 どのような対応をしたのか スロークエリの出ていたクエリでMySQLの実行計画を確認しました。 TypeALL,index, Using Filesort等はなかったので
This project provides basic tools and infrastructure for proving the correctness of the SQL queries performed against the database hosted in an untrusted environment. As a demo, this project implements a platform that connects "data miners" running SQL-prover nodes and users that wish to outsource their data and are willing to pay for such service. Other use cases of the zk-SQL include running it
"Nested Loop Joinしか取り上げて無いのにタイトルが大きすぎないか" と指摘を頂いたので、タイトルを修正しました。Merge JoinとHash Joinのことはまた今度書こうと思います。 「JOINは遅い」とよく言われます。特にRDBを使い始めて間がない内にそういう言説に触れた結果「JOIN=悪」という認識で固定化されてしまっている人も多いように感じています。 たしかに、JOINを含むようなSELECT文は、含まないものに比べて重たくなる傾向があることは事実です。また、本質的に問い合わせたい内容が複雑で、対処することが難しいものも存在します。しかし、RDBの中で一体どういうことが起きているのかを知り、それに基いて対処すれば高速化できることも少なくないと考えています。 本稿では、JOINの内部動作を解説した上で、Webサービスを作っているとよく出てくるJOIN SQLを例題に
SQLのチューニング方法 昔Qiitaで書いたものをzennにうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって本当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加
前回は「C XML and SGML (Non-Normative)」と「D Expansion of Entity and Character References (Non-Normative)」を読んだ。JIS X 4159では「附属書C(参考)XMLおよびSGML」と「附属書D(参考)実体参照および文字参照の展開」である。前者は、XMLとSGMLの関係について記述されている。どちらかといえば好奇心から見るべき文書であり、歴史の一端を垣間見るのに有用だろう。逆に後者は、生々しい現在進行形のXMLのディープな領域を正しく理解するのに有益だろう。もちろん、ここまでDTDやパラメタ実体を含む参照を活用する利用者は多くないかもしれない。しかし、ある種のXMLの応用は、間違いなくこれらのディープな参照の挙動を活用して行われている。もちろん、ここに書かれているのは、規定ではなく、分かりやすくする
はじめに PostgreSQL始めました。 SQLを学ぶ過程でWhere句とHaving句の違いがわからずに悩んだ時期があったので、その時感じたことを書いておきます。 環境 MacOS 10.10.5 PostgreSQL 9.4.5 Where句でもHaving句でも同じ結果が出るけど何が違うんだろう? 結論から言うと Where句はselect句の結果からwhere句で指定した抽出条件を実行する Having句はGroupBy句でグルーピングした結果からHaving句で指定した抽出条件を実行する という違いがあります。 同じ結果が出ることを確認 PostgreSQLのチュートリアルにあるデータベースを使います。手を動かして確認したい方はこちらを見てデータベースを用意していただければと思います。 今回使用するカスタマーテーブルは以下のようになっています。 customer_id | st
長い間MySQLを使ってアプリケーションやサービスを提供していると、セキュリティの都合や機能の高性能化によってアップグレードが求められることがあります。アップグレードを行った際にアプリケーションがそのまま動いてくれる場合もあるのですが、SQLモードの設定によって動かなくなってしまうこともあります。 アプリケーションが動かなくなってしまい、仕方がないのでよくわからないけどSQLモードの設定を空にする、なんて事はありませんか? 今回はそんなSQLモードの確認方法や、デフォルトの設定がどのような意味を持っているのかを紹介していきたいと思います。 デモンストレーション環境 この原稿を書いている時点で最新版である5.7.12を第5回 Dockerで複数バージョンのMySQLを開発環境に用意するで作成した環境で実行して確認していきます。 また、今回使用するデータは第2回 MySQLにはじめてのデータを
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く