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
introduction about MySQL
Search
Arakaki Yuji
June 15, 2019
Programming
0
170
introduction about MySQL
MySQLの基本的な操作やRDBとしての設計・利用などはできるがMySQLのソフトウェアとしての特性をまだちゃんと理解していない方向けMySQLの特徴が伝わるように作りました。
Arakaki Yuji
June 15, 2019
Tweet
Share
More Decks by Arakaki Yuji
See All by Arakaki Yuji
家族・子育て重視/沖縄在住を維持しながらエンジニアとしてのキャリアをどのように育てていくか?
ug
0
320
私の選ぶ開発環境: Raycast, Vivaldi, Warp, Emacsを活用したワークフロー
ug
0
1.4k
2週間に一度からリリースを日々の当たり前にするエンジニアリングマネジメント
ug
0
1.5k
レガシーフレームワークからの移行
ug
0
440
データ指向プログラミング(仮)のススメ
ug
1
520
プログラミング言語に依存しない、質の高いコードを書く技術
ug
0
2.3k
Issues About frontend development
ug
0
2.9k
Azure web app is good
ug
0
460
技術基盤/SREの視点で取り組む、サービスの成長を継続し、加速させるためのPHPアプリケーション改善
ug
0
1.3k
Other Decks in Programming
See All in Programming
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
900
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
1
640
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
510
0から始めるモジュラーモノリス-クリーンなモノリスを目指して
sushi0120
0
280
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
240
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
450
Constant integer division faster than compiler-generated code
herumi
2
620
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.7k
Go製CLIツールをnpmで配布するには
syumai
2
1.2k
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
1
200
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
200
Vibe coding コードレビュー
kinopeee
0
440
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Documentation Writing (for coders)
carmenintech
73
5k
Docker and Python
trallard
45
3.5k
Practical Orchestrator
shlominoach
190
11k
Agile that works and the tools we love
rasmusluckow
329
21k
Building an army of robots
kneath
306
45k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Unsuck your backbone
ammeep
671
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
MySQL Payke
Goal u MySQL!RDBM MySQLNS!CHM @ ?O u 24%6=+,71='095:)7."=' MySQLNS
!CHDG JF! KP u MySQLQ+0;*$=*= BAInnoDB >I u TR L E03-&#=/-&+09=(&)8=<-& U
u MySQL u u
u
MySQL!& u +($*%() #0 u '+"1. = 1) # u
) # 1./ Linuxps%+# -, u SHOW PROCESSLIST %+# , u PostgreSQL %($*0 u '+"11. = 1$*
MySQL u
MySQL" u !#$$ u MySQL%+2 &1()0, u
/!#$$. -3'*. u InnoDB u MyISAM u Memory u MyRocks
u u
u
-!"61&#! u InnoDB%*/81&#! 321&#! -!"61&#! u -!"61&#!B$..)('0 '7-,&" :=
u 0 '&":= 391&#!5 394<0! +1!;
+)+! u (0+! +! u +)+! )&$#(0+! 6,
u +)+! 3 1:% " .(0 +! 1: *'+5 u (0+! 1:4 79228-/
)-/!/(& " u /(& ";< -79: u /(& ">?
u '*. #" 2=79: u ,"$5/(& " 6@10'*. ,+<3 )-/!/(& "=4 79: u #/%-/(& " 6@10#/%-/(& "A , +< ,"$5/(& ",+< 8)-/!/ (& "
u u READ UNCOMMITTED
u READ COMMITTED u REPEATABLE READ u SERIALIZABLE u MySQL u MVCC
!% %&-#" u !% % &-) % # u .0
&- $(/ %,' u %&-) #(/ 4 &-#" (SQL+*) u READ UNCOMMITTED u READ COMMITED u REPEATABLE READ u SERIALIZABLE
READ UNCOMMITED u &#% %)* (*035%)* (*, u &#%
$!6 4 u -./1+2 "'!
READ COMMITTED u ).1" #-17 ?E !+&) ).1" #-1FN
u ).1" #-1<FN!+&) K).1" #-1 7 u 5J0*/ MG u 8$'),1)2=@3 L(% H GCA u A).1" #-1@32;B).1" #-1 !+&) 64A< B>(%B!+&):9OIBDGCA
REPEATABLE READ u MySQL$& *%%),"!#(,/D+'* u READ UNCOMMITED FB
C u %),"!#(, I:- 2%),"!#(,= EI:21 8@ u ;>G u KH-7J 4A%),"!#(, KH5 -L3 0.2KH7J5 - < u InnoDB0.MVCC9 ;>?6
SERIALIZABLE u 80*/5B> u '-2#"$,2A467 '-2#"$,2=<:CF )2'+.(@ u E;
31&"?9 u % +!'1&"A4G6 D
MySQLW7BAX: MVCC u MultiVesion Concurrency Control[ u ;DTM,)(.*0&2*-"IC SF?I
u InnoDB98 u 7 \!R"JZ u 7 IC! &(+1/'26PY u 7 VU! &(+1/'26PY u &(+1/'26PY-36%$&26 >K EL u N-36%$&26>K;D&(+1/'26PY"HQ u -36%$&26<$#47ICVU&(+1/'26PY" ,)"@G]I u -36%$&26&(+1/'26=&(+1/'267": "5*$O
MySQL7'.-8: MVCC u " u 2 %3,.96 1
!& &(5$#+/ u )4 !& &(5$#0* u REPETABLE READ u READ COMMITTED
u u u u u
u u u
! u (# ) u $ #
u u %"( ) u #
!.) u ! u +*! u "! u -("!
u ! u "! "!0'"& ! u id124 u UPDATE users SET age = 30 WHERE id BETWEEN 2 AND 4 , $#' id=3& /%!
0(&A8 u *&')$0(& u 20(&%-(,0(&<3" u 20(	 7%-(,1@0(& ! u
1,2,4? 43 u (negative infinity 1] u (1 2] u (2 3] u (4 positive infinity] u *&')$0(&:=2positivie infinity0(& ! INSERT ).+/ 56 >;