Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MySQL 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table S...
Search
hmatsu47
PRO
May 13, 2019
Technology
1
190
MySQL 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table Store を試すことになった話
DB勉強会 in 愛知@名古屋ギークバー 第1回
hmatsu47
PRO
May 13, 2019
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
今年の FESTA で初当日スタッフ+登壇してきました
hmatsu47
PRO
0
6
攻略!Aurora DSQL の OCC(楽観的同時実行制御)
hmatsu47
PRO
0
4
PostgreSQL でもできる!GraphRAG
hmatsu47
PRO
0
3
Aurora DSQL のトランザクション(スナップショット分離と OCC)
hmatsu47
PRO
0
9
いろんなところに居る Amazon Q(Developer)を使い分けてみた
hmatsu47
PRO
0
26
「ゲームで体感!Aurora DSQL の OCC(楽観的同時実行制御)」の結果ログから Aurora DSQL の動作を考察する
hmatsu47
PRO
0
2
ゲームで体感!Aurora DSQL の OCC(楽観的同時実行制御)
hmatsu47
PRO
0
34
PostgreSQL+pgvector で GraphRAG に挑戦 & pgvectorscale 0.7.x アップデート
hmatsu47
PRO
0
53
LlamaIndex の Property Graph Index を PostgreSQL 上に構築してデータ構造を見てみる
hmatsu47
PRO
0
17
Other Decks in Technology
See All in Technology
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
390
20251102 WordCamp Kansai 2025
chiilog
1
520
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
2.6k
re:Inventに行くまでにやっておきたいこと
nagisa53
0
1k
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.7k
GCASアップデート(202508-202510)
techniczna
0
260
実践マルチモーダル検索!
shibuiwilliam
3
550
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
460
触れるけど壊れないWordPressの作り方
masakawai
0
650
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
0
250
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
370
InsightX 会社説明資料/ Company deck
insightx
0
190
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Music & Morning Musume
bryan
46
6.9k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Writing Fast Ruby
sferik
630
62k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Six Lessons from altMBA
skipperchong
29
4k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The Pragmatic Product Professional
lauravandoore
36
7k
Code Reviewing Like a Champion
maltzj
526
40k
Done Done
chrislema
186
16k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Transcript
MySQL 8.0 の薄い本を作ったことをきっかけに Alibaba Cloud Table Store を試すことになった話 (DB勉強会 in
愛知@名古屋Geek Bar 2019.05.13) hmatsu47(松久 裕保)
⾃⼰紹介 名古屋 Geek Bar 初参加です
今回のネタ ネタ 1 : 「MySQL 8.0 の薄い本」を書いた ネタ 2 :
Alibaba Cloud Table Store を試してみた
発端は「Re:VIEW で何か書いてみたい」 https://github.com/kmuto/review Re:VIEW is an easy-to-use digital publishing system
for paper books and ebooks. 「このツール使ってみたい」駆動 ネタは何が良さそう︖ ⾃分の Qiita 記事に MySQL 8.0 ネタがいっぱい 業務とは完全に無関係(なので表に出しても OK) 知⼈の MySQL おじ兄さんたちもブログに⾊々書いてる まだ MySQL 8.0 を扱った本が⾒当たらない 同⼈誌については単に知らないだけかも︖
よし、「MySQL 8.0 の薄い本」にしよう
内容 MySQL 8.0 の新機能 CTE(共通テーブル式)、ウィンドウ関数など 実は意外と少ない MySQL 5.7 からの変更点と機能向上 JSON
& ドキュメントストア、GIS、各種暗号化など 管理情報(データディクショナリ、システムテーブル) の InnoDB 化 デフォルト認証プラグインの変更など 知らずにバージョンアップするとハマるポイント 情報リンクと⾃作サンプルをできるだけ集めて書いた
今⽇も持ってきています(5 冊限定) タダなので持って⾏ってください 残ると持ち帰るのに重い…
とはいえ、 「リンク & サンプル集」 たぶん電⼦版のが使いやすいと思う URL ⼿⼊⼒はしんどい ⼀応、印刷版にもリンク集 Web ページへの
QR コードは 付けてある PDF 版を GitHub リポジトリに置いてある 印刷⽤本⽂ PDF データも置いてあるので印刷も OK EPUB 版は 1 つ前の 8.0.15 対応版(改訂⾟い…) https://github.com/hmatsu47/mysql80_no_usui_hon
GitHub リポジトリのアクセス数を⾒てみよう Insights の Traffic 直近 14 ⽇分しか⾒れない それ以前の分はどっかに記録しておかないと…
突然ですが、Alibaba Cloud Table Store って︖ AWS でいうところの DynamoDB 構造もそっくりの NoSQL
分散データベース パーティションキーによって保存場所を分割 グローバルセカンダリインデックスがある プライマリキーとは別のキーで検索可能 ただし⼀部違いが (たぶん)単⼀ AZ でのデータ保持 ローカルセカンダリインデックスはない(みたい) (かわりに︖)サーチインデックスというのがある 全⽂検索・あいまい検索・地理検索できるぽい
そして、 「プライマリキー列のオートインクリメント機能」がある パーティションキー以外の列(1 列限定)に設定可能 「オートインクリメント」といえば…
「オートインクリメント」といえば MySQL Google 先⽣に聞いてみるとよくわかる
すべて MySQL
よし、ここにしよう
ただし問題が オートインクリメント機能は Java-SDK しかサポートしてない なんか⾯倒臭そう こういうのは Python で雑に書きたかった ⽇本語版マニュアルが追い付いてない 先に挙げたグローバルセカンダリインデックスやサーチ
インデックスの情報がない どのリージョンで何の機能に対応してるのか不明 実は英語版・中国語版もマニュアルが追い付いてない Javadoc もちゃんと書かれてない
結局、サンプルコード頼み (Java-SDK に付いてる exapmles)
でも、せっかくなので Function Compute の関数にしてみた Function Compute : AWS でいうところの Lambda
VPC 接続でも NAT ゲートウェイ置かずにインターネット アクセスできるのはありがたい 登録・実⾏してみた 管理コンソールでコードを⾒れないのが⾟い… Java の場合 Node.js と Python は OK
こんな感じに https://github.com/hmatsu47/alibaba_table_store_sample 無理やりオートインクリメント列を使うコードにした 本当は要らない パーティションキー(⽇付列)だけで事⾜りる SyncClient で AssumeRole(STS 利⽤)する⽅法がわからず、 アクセスキーべた書きのショボいコードに
⽇本語のドキュメントに書いてある内容がちぐはぐ マニュアル、頼む︕ せめて Javadoc ちゃんと書いといてくれ、頼む︕ といいつつわがサンプルコードにも書いてないけど
実⾏してみた
えっ︖
インクリメント #とは なんか想像してたのと違う…
Wikipedia より
なるほど︖ コンピュータ⽤語ではなくて⼀般⽤語のほうなのか… InnoDB Cluster の AUTO_INCREMENT も +1 じゃないし 分散
DB で重複なく正確に +1 することの難しさを想像
解決。
ですが… ログテーブルやトランザクションテーブルには向いてない オーバーフローが怖い マスタテーブルでの利⽤が前提︖ パーティションキー固定しないと意味ないし - 今回のサンプルは「無理やり使った」ので⾮固定 パーティションキー固定→性能⾯での制限が厳しくなる→ データ⾏数が急増するテーブルでは使えない ご利⽤は計画的に
と、いうわけで(まとめ) 「MySQL 8.0 の薄い本」よろしくお願いします まだ 5.7 以前の⽅、バージョンアップしましょう 弊社はそもそも Aurora ですが…
Alibaba Cloud は AWS によく似てる パk(ryリスペクトしてるらしい AWS ⺠なら感覚だけで何とかなる(︖) サービス名は若⼲違う(ECS とか RAM とか指してるもの が違う) 管理コンソールの使い勝⼿やドキュメントなど、⾜りて ない部分はある
ありがとうございました