Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
JustSystems Corporation
PPTX, PDF
1,733 views
スマイルゼミの裏側(db編)
JustTechTalk#06発表資料。スマイルゼミのデータベース設計&開発におけるアンチパターンについて。
Engineering
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PPTX
ジャストシステムのDevOps実例 今後の取り組み
by
JustSystems Corporation
PPTX
Viewを使って開発を楽にする話
by
Isamu Watanabe
PDF
cloudpack監視・運用保守のなかで生まれた自社開発の取り組みと知見
by
shuichi takahashi
PDF
チームファシリテーション体験研修のご紹介
by
ESM SEC
PDF
はじめてのTeam foundation server執筆裏話
by
Kazushi Kamegawa
PDF
バッチソリューションAzarea cluster 2016
by
AzareaCluster
PDF
Alfresco勉強会#28 メタデータテンプレート
by
Jun Terashita
PDF
20200923 miyazaki
by
beyond Co., Ltd.
ジャストシステムのDevOps実例 今後の取り組み
by
JustSystems Corporation
Viewを使って開発を楽にする話
by
Isamu Watanabe
cloudpack監視・運用保守のなかで生まれた自社開発の取り組みと知見
by
shuichi takahashi
チームファシリテーション体験研修のご紹介
by
ESM SEC
はじめてのTeam foundation server執筆裏話
by
Kazushi Kamegawa
バッチソリューションAzarea cluster 2016
by
AzareaCluster
Alfresco勉強会#28 メタデータテンプレート
by
Jun Terashita
20200923 miyazaki
by
beyond Co., Ltd.
What's hot
PDF
OSSを用いた監視/運用ツールの運用課題について
by
真治 米田
PDF
20200923 fujisawa
by
beyond Co., Ltd.
PDF
守る - cybozu.com 運用の裏側
by
Cybozucommunity
PPTX
2012 事業計画
by
Toshiaki Takeda
PPTX
Azure express route tips
by
Takanori Tsuruta
PDF
Msセミナー20170830 slideshare
by
NHN テコラス株式会社
PDF
「リザーブドキングスライム」をやっつけて一撃レベルアップ!
by
Tomoya Ishida
PDF
Alfresco study29 activitymonitoring
by
Takeshi Totani
PPTX
2018 m365-e5-zero trust-network
by
Takanori Tsuruta
PDF
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
by
Takeshi Kuramochi
PPTX
Salesforce dug meetup#8isvforce
by
ynakahira
PDF
WordPress サイトの 長期的メンテナンス
by
Naoko Takano
PPTX
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
by
uchan_nos
PDF
QAにおけるスクラム導入 Before/After
by
Shiro Takumi
PDF
20191204_WordPressの教科書出版記念イベント_パフォーマンスチューニングとセキュリティ_小川
by
Tomoya Hokari
PDF
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
by
Jun Terashita
PPTX
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
PDF
Google Cloud Platformでソーシャルゲームを1本出してみた!
by
Hasegawa Yusuke
PDF
超小規模環境のMySQL #mysqlcasual
by
鉄次 尾形
OSSを用いた監視/運用ツールの運用課題について
by
真治 米田
20200923 fujisawa
by
beyond Co., Ltd.
守る - cybozu.com 運用の裏側
by
Cybozucommunity
2012 事業計画
by
Toshiaki Takeda
Azure express route tips
by
Takanori Tsuruta
Msセミナー20170830 slideshare
by
NHN テコラス株式会社
「リザーブドキングスライム」をやっつけて一撃レベルアップ!
by
Tomoya Ishida
Alfresco study29 activitymonitoring
by
Takeshi Totani
2018 m365-e5-zero trust-network
by
Takanori Tsuruta
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
by
Takeshi Kuramochi
Salesforce dug meetup#8isvforce
by
ynakahira
WordPress サイトの 長期的メンテナンス
by
Naoko Takano
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
by
uchan_nos
QAにおけるスクラム導入 Before/After
by
Shiro Takumi
20191204_WordPressの教科書出版記念イベント_パフォーマンスチューニングとセキュリティ_小川
by
Tomoya Hokari
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ
by
Jun Terashita
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
Google Cloud Platformでソーシャルゲームを1本出してみた!
by
Hasegawa Yusuke
超小規模環境のMySQL #mysqlcasual
by
鉄次 尾形
Viewers also liked
PPTX
ATOK Spark のご紹介とJavaによるプラグイン開発について
by
JustSystems Corporation
PDF
ArrayListをじっくり読んでみた - JavaコアSDKを読む会を社内でやって気づいたこと -
by
JustSystems Corporation
PDF
「訴求ファースト」と「こだわり駆動開発」~教育、医療、もの書き市場で戦うプロダクトマネージャーの考え方~
by
JustSystems Corporation
PDF
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
PDF
BIツールActionista!のOLAP集計エンジンJungarian
by
JustSystems Corporation
PPTX
ジャストシステムの形態素解析技術 その2 機械学習編
by
JustSystems Corporation
PPTX
ジャストシステムの形態素解析技術
by
JustSystems Corporation
PDF
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
by
JustSystems Corporation
PPTX
ピタジョブの裏側 - クローラ・スクレイパ編 -
by
JustSystems Corporation
PDF
人工無脳バトル 1st STEP 回答と解説
by
JustSystems Corporation
PDF
BIツールActionista!のインメモリーデータベースIMDB
by
JustSystems Corporation
PDF
UX / UIデザインって何?
by
JustSystems Corporation
PPTX
Shaping up ATOK to fit to your iPhone / iPad
by
JustSystems Corporation
PDF
Groonga meetup20151129
by
JustSystems Corporation
PDF
訴求ファースト。キービジュアル。
by
JustSystems Corporation
PDF
タッグ開発の現場 【エンジニアとデザイナー編】
by
JustSystems Corporation
PPTX
広報紙オープンデータの意義と効果について
by
OCJ 藤井
PPTX
いかに「MOOCブーム」の価値を高めるか?
by
Katsusuke Shigeta
PDF
What's New in Java SE 9
by
Yuichi Sakuraba
PPTX
キャンパス内ルート案内アプリ
by
ken_fujita
ATOK Spark のご紹介とJavaによるプラグイン開発について
by
JustSystems Corporation
ArrayListをじっくり読んでみた - JavaコアSDKを読む会を社内でやって気づいたこと -
by
JustSystems Corporation
「訴求ファースト」と「こだわり駆動開発」~教育、医療、もの書き市場で戦うプロダクトマネージャーの考え方~
by
JustSystems Corporation
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
BIツールActionista!のOLAP集計エンジンJungarian
by
JustSystems Corporation
ジャストシステムの形態素解析技術 その2 機械学習編
by
JustSystems Corporation
ジャストシステムの形態素解析技術
by
JustSystems Corporation
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
by
JustSystems Corporation
ピタジョブの裏側 - クローラ・スクレイパ編 -
by
JustSystems Corporation
人工無脳バトル 1st STEP 回答と解説
by
JustSystems Corporation
BIツールActionista!のインメモリーデータベースIMDB
by
JustSystems Corporation
UX / UIデザインって何?
by
JustSystems Corporation
Shaping up ATOK to fit to your iPhone / iPad
by
JustSystems Corporation
Groonga meetup20151129
by
JustSystems Corporation
訴求ファースト。キービジュアル。
by
JustSystems Corporation
タッグ開発の現場 【エンジニアとデザイナー編】
by
JustSystems Corporation
広報紙オープンデータの意義と効果について
by
OCJ 藤井
いかに「MOOCブーム」の価値を高めるか?
by
Katsusuke Shigeta
What's New in Java SE 9
by
Yuichi Sakuraba
キャンパス内ルート案内アプリ
by
ken_fujita
Similar to スマイルゼミの裏側(db編)
PDF
DMM.comにおけるビッグデータ処理のためのSQL活用術
by
DMM.com
PDF
Sql基礎の基礎
by
Satomi Tsujita
PDF
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
by
Satoshi Yamada
PDF
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
by
Satoshi Yamada
PDF
CTFトラックの報告的なもの(公開版)
by
nomuken
PPTX
Tuning on my_sql
by
Edward D. Kim
PDF
SQL勉強会 初級編
by
Kazuma Hidaka
PPTX
Sql learning2
by
Sadayoshi Ikushima
PPTX
Sql learning
by
Sadayoshi Ikushima
PDF
BigQuery勉強会 Standard SQL Dialect
by
Ken Morishita
PDF
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
by
Hideo Takagi
PDF
Database smells
by
Mikiya Okuno
PDF
Wtm
by
Soudai Sone
PPT
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
by
Toru Miyahara
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
Chugokudb18_1
by
Kosuke Kida
PDF
2018年度 若手技術者向け講座 実行計画
by
keki3
PPT
20090107 Postgre Sqlチューニング(Sql編)
by
Hiromu Shioya
PPTX
設計をする上で役にたった制約について
by
Ikki Takahashi
PPT
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
by
Toru Miyahara
DMM.comにおけるビッグデータ処理のためのSQL活用術
by
DMM.com
Sql基礎の基礎
by
Satomi Tsujita
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
by
Satoshi Yamada
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
by
Satoshi Yamada
CTFトラックの報告的なもの(公開版)
by
nomuken
Tuning on my_sql
by
Edward D. Kim
SQL勉強会 初級編
by
Kazuma Hidaka
Sql learning2
by
Sadayoshi Ikushima
Sql learning
by
Sadayoshi Ikushima
BigQuery勉強会 Standard SQL Dialect
by
Ken Morishita
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
by
Hideo Takagi
Database smells
by
Mikiya Okuno
Wtm
by
Soudai Sone
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
by
Toru Miyahara
PostgreSQLアンチパターン
by
Soudai Sone
Chugokudb18_1
by
Kosuke Kida
2018年度 若手技術者向け講座 実行計画
by
keki3
20090107 Postgre Sqlチューニング(Sql編)
by
Hiromu Shioya
設計をする上で役にたった制約について
by
Ikki Takahashi
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
by
Toru Miyahara
More from JustSystems Corporation
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
by
JustSystems Corporation
PDF
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
by
JustSystems Corporation
PDF
現役23名のPM:タイプ別マネジメントパターン
by
JustSystems Corporation
PPTX
JavaでインメモリSQLエンジンを作ってみた
by
JustSystems Corporation
PDF
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
by
JustSystems Corporation
PDF
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
by
JustSystems Corporation
PDF
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
by
JustSystems Corporation
PDF
最新のJava言語仕様で見るモジュールシステム #jjug
by
JustSystems Corporation
PPTX
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
by
JustSystems Corporation
PDF
JustTechTalk#10 React開発における自動テスト実践
by
JustSystems Corporation
PDF
JustTechTalk#10windowsアプリでのテスト自動化事例
by
JustSystems Corporation
PDF
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
by
JustSystems Corporation
PDF
AWS運用における最適パターンの徹底活用
by
JustSystems Corporation
PDF
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
by
JustSystems Corporation
PPTX
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
PDF
CSSレイアウトでなぜ失敗するか?
by
JustSystems Corporation
PPTX
Selenium WebDriver + python で E2Eテスト自動化
by
JustSystems Corporation
PPTX
TypeScriptの大規模開発への適用
by
JustSystems Corporation
PDF
UX実現に向けた社内の取り組みについて-訴求ファーストによる商品開発-
by
JustSystems Corporation
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
by
JustSystems Corporation
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
by
JustSystems Corporation
現役23名のPM:タイプ別マネジメントパターン
by
JustSystems Corporation
JavaでインメモリSQLエンジンを作ってみた
by
JustSystems Corporation
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
by
JustSystems Corporation
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
by
JustSystems Corporation
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
by
JustSystems Corporation
最新のJava言語仕様で見るモジュールシステム #jjug
by
JustSystems Corporation
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
by
JustSystems Corporation
JustTechTalk#10 React開発における自動テスト実践
by
JustSystems Corporation
JustTechTalk#10windowsアプリでのテスト自動化事例
by
JustSystems Corporation
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
by
JustSystems Corporation
AWS運用における最適パターンの徹底活用
by
JustSystems Corporation
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
by
JustSystems Corporation
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
CSSレイアウトでなぜ失敗するか?
by
JustSystems Corporation
Selenium WebDriver + python で E2Eテスト自動化
by
JustSystems Corporation
TypeScriptの大規模開発への適用
by
JustSystems Corporation
UX実現に向けた社内の取り組みについて-訴求ファーストによる商品開発-
by
JustSystems Corporation
Recently uploaded
PDF
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
スマイルゼミの裏側(db編)
1.
© 2016 JustSystems
Corporation. スマイルゼミの裏側 ~データベース編~ (株)ジャストシステム ILS事業部開発部 菅井友之
2.
© 2016 JustSystems
Corporation. • スマイルゼミ中学生コース – サーバー担当 • スマイルゼミ小学生コース、中学生コースの立ち上げ – サーバー主担当として参加 • 主にTomcat上で動いてPostgreSQLを使うアプリケーションを やっています。 自己紹介
3.
© 2016 JustSystems
Corporation. スマイルゼミでやらかしてしまった話 (DB的な意味で)
4.
© 2016 JustSystems
Corporation. スマイルゼミでやらかしてしまった話 (DB的な意味で) PostgreSQL 9.3
5.
© 2016 JustSystems
Corporation. その前に
6.
© 2016 JustSystems
Corporation. スマイルゼミ ご存じですか?
7.
© 2016 JustSystems
Corporation. • 小中学生向けの家庭学習サービス • すべての学習がタブレット上で完結できる日本初のサービス • 小中一貫で学べる唯一のタブレット教材
8.
© 2016 JustSystems
Corporation. facebookやってます https://www.facebook.com/smile.zemi/
9.
© 2016 JustSystems
Corporation. 小学生 中学生 ある一週間のアクセス状況
10.
© 2016 JustSystems
Corporation. • 小中学生向けのサービス • ユーザーは、日中学校に行っている 小学生 中学生 ある一週間のアクセス状況
11.
© 2016 JustSystems
Corporation. • 小中学生向けのサービス • ユーザーは、日中学校に行っている 平常時、日中の負荷は低い 小学生 中学生
12.
© 2016 JustSystems
Corporation. _人人人人人人人人人_ > 突然の負荷上昇 <  ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
13.
© 2016 JustSystems
Corporation. • 中学生DBの朝の負荷であり、垂直に立ち上がっているので、バッチ処理 • グラフが変わる前の日に、hotfixがリリースされている。 • 調べてみると、course_results で1300万行のseq.scanが大量に発生して いる。
14.
© 2016 JustSystems
Corporation. CREATE VIEW AS study_log_memorycard_view ( WITH memorycard_info AS ( SELECT ... FROM course_results cr JOIN course_master cm ON cr.course_id AND cm.memory_card_info IS NOT NULL) (SELECT ... FROM memorycard_set_results msr JOIN memorycard_info ... WHERE ...) UNION ALL (SELECT ... FROM memorycard_set_results msr JOIN ... JOIN memorycard_info ... WHERE ... ))
15.
© 2016 JustSystems
Corporation. • 処理の内容は変えずに、viewを使うようにプログラ ムを変更していた。
16.
© 2016 JustSystems
Corporation. • 処理の内容は変えずに、viewを使うようにプログラ ムを変更していた。 • view を使わずに処理する場合には、オプティマイザ が後続のWHEREを先に処理してくれていたのだろう
17.
© 2016 JustSystems
Corporation. • 処理の内容は変えずに、viewを使うようにプログラ ムを変更していた。 • view を使わずに処理する場合には、オプティマイザ が後続のWHEREを先に処理してくれていたのだろう • view を使ってしまったために、course_resultsが絞り 込まれずに含まれてしまう。
18.
© 2016 JustSystems
Corporation. CREATE VIEW AS study_log_memorycard_view ( WITH memorycard_info AS ( SELECT ... FROM course_results cr JOIN course_master cm ON cr.course_id AND cm.memory_card_info IS NOT NULL) (SELECT ... FROM memorycard_set_results msr JOIN memorycard_info ... WHERE ...) UNION ALL (SELECT ... FROM memorycard_set_results msr JOIN ... JOIN memorycard_info ... WHERE ... ))
19.
© 2016 JustSystems
Corporation. • 処理の内容は変えずに、viewを使うようにプログラ ムを変更していた。 • view を使わずに処理する場合には、オプティマイザ が後続のWHEREを先に処理してくれていたのだろう • view を使ってしまったために、course_resultsが絞り 込まれずに含まれてしまう。 • さらに、ユーザーごとにviewに対するSELECTをして いる。 – 長時間の高負荷状態に
20.
© 2016 JustSystems
Corporation. 対策
21.
© 2016 JustSystems
Corporation. • 前日の学習結果を集計する処理なので、view定義の段階で 学習日で絞り込むことにした • view 定義の各SELECT文に以下の絞り込み条件を追加 対策
22.
© 2016 JustSystems
Corporation. • 前日の学習結果を集計する処理なので、view定義の段階で 学習日で絞り込むことにした • view 定義の各SELECT文に以下の絞り込み条件を追加 対策 study_end > (now() - '2 days'::interval)
23.
© 2016 JustSystems
Corporation. • 前日の学習結果を集計する処理なので、view定義の段階で 学習日で絞り込むことにした • view 定義の各SELECT文に以下の絞り込み条件を追加 • 幸い、他の処理では使っていないviewだったので、同名のま ますぐに定義変更できた。 対策 study_end > (now() - '2 days'::interval)
24.
© 2016 JustSystems
Corporation.
25.
© 2016 JustSystems
Corporation. 他の事例
26.
© 2016 JustSystems
Corporation. 2013年12月 小学生向けみまもるトーク 拡張され続けるサービス
27.
© 2016 JustSystems
Corporation. 2013年12月 小学生向けみまもるトーク 拡張され続けるサービス 2014年11月 中学生向けみまもるトーク
28.
© 2016 JustSystems
Corporation. 小学生向けに作ったトーク機能に、中学生を参加させる
29.
© 2016 JustSystems
Corporation. • あるトークグループに参加しているユーザー(talker)の一覧 を取得するSQL文 • - talker は、親、小学生、中学生、その他(親が招待した人) があり、それぞれ別体系のidで管理されている。 SELECT talkers.* FROM talkers LEFT OUTER JOIN accounts ON talkers.account_id = accounts.id WHERE (((accounts.parent_id = xxxxxxxx OR child_id = xxxxxxxx ) OR jh_child_id = xxxxxxxx ) OR account_id = xxxxxxxx )
30.
© 2016 JustSystems
Corporation. • 中学生が増えたのでこの条件が増えた • OR条件が追加されたことにより、実行計画が くるってしまって、Seq Scan on accounts、Seq Scan on talkersが発生 • indexはあるのに使ってもらえない。 OR jh_child_id = xxxxxxxx
31.
© 2016 JustSystems
Corporation. 対策
32.
© 2016 JustSystems
Corporation. 対策 SELECT talkers.* FROM talkers LEFT OUTER JOIN accounts ON talkers.account_id = accounts.id WHERE (accounts.parent_id = xxxxxxxx) UNION SELECT talkers.* FROM talkers WHERE (child_id = xxxxxxxx) UNION SELECT talkers.* FROM talkers WHERE (jh_child_id = xxxxxxxx ) UNION SELECT talkers.* FROM talkers WHERE (account_id = xxxxxxxx ) ORDER BY id;
33.
© 2016 JustSystems
Corporation. • Index scan ですむ単純SQLにして結果をUNIONすると1000- 10000倍速になった! – (というよりは、ロジック変更で1000倍遅くなっていた) 対策 SELECT talkers.* FROM talkers LEFT OUTER JOIN accounts ON talkers.account_id = accounts.id WHERE (accounts.parent_id = xxxxxxxx) UNION SELECT talkers.* FROM talkers WHERE (child_id = xxxxxxxx) UNION SELECT talkers.* FROM talkers WHERE (jh_child_id = xxxxxxxx ) UNION SELECT talkers.* FROM talkers WHERE (account_id = xxxxxxxx ) ORDER BY id;
34.
© 2016 JustSystems
Corporation. • UNION が あるところを変更するときは慎重に – UNIONしていいのは、中間処理結果が十分に小 さいとわかっている場合のみ。 – 特にviewの中でUNIONするのは危険 • 中間テーブルが十分に小さく、素早く、作れる ところではUNIONはとても有効! まとめ
35.
© 2016 JustSystems
Corporation. スマイルゼミを一緒に育てる人、募集しています。
Download