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
190
1
Share
MySQL 8.0 の薄い本を作ったことをきっかけにAlibaba Cloud Table Store を試すことになった話
DB勉強会 in 愛知@名古屋ギークバー 第1回
hmatsu47
PRO
May 13, 2019
More Decks by hmatsu47
See All by hmatsu47
名古屋城とデータセンター
hmatsu47
PRO
0
26
IPv6 に関する話
hmatsu47
PRO
0
18
さいきんの光ファイバーの話
hmatsu47
PRO
0
45
低いほうのレイヤを見てみる話
hmatsu47
PRO
0
21
IPv6 VPC の実装パターンをいくつか
hmatsu47
PRO
0
40
光ファイバーと IPv6 絡みの話
hmatsu47
PRO
0
54
AWS で試して学ぶ IPv6
hmatsu47
PRO
0
48
今年の MySQL/HeatWave ネタ登壇振り返り
hmatsu47
PRO
0
45
今年の DB ネタ登壇振り返り
hmatsu47
PRO
0
40
Other Decks in Technology
See All in Technology
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
170
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
340
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
120
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
320
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
390
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
220
Javaで学ぶSOLID原則
negima
1
270
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
190
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
610
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
50k
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
160
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
The agentic SEO stack - context over prompts
schlessera
0
790
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Raft: Consensus for Rubyists
vanstee
141
7.5k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
840
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
190
Making Projects Easy
brettharned
120
6.7k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Utilizing Notion as your number one productivity tool
mfonobong
4
310
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 とか指してるもの が違う) 管理コンソールの使い勝⼿やドキュメントなど、⾜りて ない部分はある
ありがとうございました