SlideShare a Scribd company logo
1 of 88
Download to read offline
MySQLと正規形のはなし
申し訳ない、あんまりMySQLのはなし出てこなかったDeath
2016/07/02
yoku0825
YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa
\こんにちは/
yoku0825@とある企業のDBA
オラクれない-
ポスグれない-
マイエスキューエる-
家に帰ると
妻の夫-
せがれの⽗-
ムスメの⽗-
⽣息域
Twitter: @yoku0825-
Blog: ⽇々の覚書-
MyNA ML: ⽇本MySQLユーザ会-
MySQL Casualʼs Slack: MySQL Casual-
1/87
これまでの
(︖)
あらすじ
2/87
あらすじ
MySQLで正規化すると遅くなる
あるある-
節⼦、それ正規化が原因やない、内側のテーブルでソートし
てるやんか
YAPC::Asia Tokyo 2014 WHERE狙いのキー、ORDER BY狙いのキ
ー
-
「正規化したら遅くなった」テーブルを⾒せてもらったら正
規形じゃなかった
テーブル分割≠正規化-
イマココ-
3/87
正規形 #
とは
4/87
正規化 #とは
関係の正規化(かんけいのせいきか)は、関係データベ
ース (リレーショナル・データベース) において、正規
形と呼ばれる形式に関係(リレーション)を準拠させる
ことにより、データの⼀貫性の維持と効率的なデータア
クセスを可能にする関係設計を導くための⽅法である。
関係の正規化 - Wikipedia
5/87
ウッ
6/87
正規化 #とは
更新箇所を減らす1.
参照効率を上げる2.
データの整合性を守りやすくする3.
ためのテーブル設計のプラクティス集
“Normal Form” だから “標準系” とか “平坦化” とかでもい
い気がする(正規っていうと正誤の問題ぽく聞こえるから)
7/87
正規形
第1正規形(1NF)
第2正規形(2NF)
第3正規形(3NF)
ボイスコッド正規形(BCNF)
第4正規形(4NF)
第5正規形(5NF)
第6正規形(6NF)
8/87
MySQLerが絶対に押えておくべき正規形
第1正規形(1NF)
第2正規形(2NF)
第3正規形(3NF)
ボイスコッド正規形(BCNF)
第4正規形(4NF)
第5正規形(5NF)
第6正規形(6NF)
9/87
第1正規形
関係がスカラ値のみを持ちうるとき、その関係を第1正
規形 (first normal form; 1NF) であるという
関係の正規化 - Wikipedia
10/87
第1正規形
全ての⾏の
全てのカラムの値が
それ以上分割できない値であるとき
俺はアトミックな値って良く⾔う
アトミックな値についてはあとで-
11/87
NOT NULLと候補キー
第1正規形の定義に⼊ってることもある
候補キーが無いと第2正規化のステップで詰まる
3NFを除いてこれ以降の正規化は全て候補キーを軸にテーブル分割す
る
-
NULLABLE(NOT NULLしてない)と、第3正規化のステップ
で詰まる
⼈間的な理屈で無理⽮理それっぽく分割することはできるけれど-
個⼈的にはこれらは第1正規形の前だと思ってる
12/87
第2正規形
ある関係が、第1正規形で、かつ、すべての非キー属性
が、すべての候補キーに対して完全従属するとき、第2
正規形 (second normal form; 2NF) であるという
関係の正規化 - Wikipedia
13/87
( ゚д゚)
14/87
(゚д゚)
15/87
(゚д゚ )
16/87
雑に⾏き
ます
17/87
第2正規形
候補キー(PRIMARY KEYとUNIQUE KEYだけど、何らかの
事情で制約をかけていないものも含む)が複数のカラムで構
成されているときに(複合候補キー)
複合候補キーの⼀部が決まれば値が決まるカラム がないと
き
18/87
第2正規形
候補キーが複数のカラムで構成されてない場合は 第1正規形 ⇔
第2正規形
第1正規形であって第2正規形でない例
(prefecture, city)がPRIMARY KEY-
19/87
第3正規形
ある関係が、第2正規形で、かつ、非キー属性があるな
らば、それら全てが候補キーに非推移的に関数従属する
とき、第3正規形 (third normal form; 3NF) であると
いう
関係の正規化 - Wikipedia
20/87
第3正規形
非キー属性(候補キーでないカラム)があるとき
ある非キー属性の値が決まると、値が決まるカラム がない
とき
NULLABLEなカラムがあると、そもそも「値が決まらなくなる」ので
何とも⾔えなくなる
-
21/87
第3正規形
第2正規形であって第3正規形でない例
(name)がPRIMARY KEY-
実はもう⼀つ罠がある-
22/87
ボイスコッド正規形
ある関係上に存在する⾃明でない全ての関数従属性の決
定項が候補キーであるとき、かつそのときに限り、その
関係はボイス・コッド正規形 (Boyce/Codd normal
form; BCNF) であるという
関係の正規化 - Wikipedia
23/87
ボイスコッド正規形
候補キーが複数のカラムで構成されているときに
ある非キー属性の値が決まると、候補キーの⼀部が決まって
しまうものがないとき
24/87
ボイスコッド正規形
第3正規形であってBCNFでない例(︖)
PRIMARY KEY (ipaddr, port, process) に対して、protocolがわかれば
processは⼀意に決まる場合
memcachedとInnoDB memcached Pluginが混在するとこの前提は崩れる
-
25/87
ボイスコッド正規形
複合候補キーが複数 (ipaddr, port, process), (ipaddr,
port, protocol) あって、それぞれの真部分集合 (ipddr,
port) が重なってる場合にしか発⽣しない
候補キーの⼀部 と 非キー属性 (の全部または⼀部) から候
補キーの別の⼀部が決まるケース が ない
このへんから「制約」の側⾯が強まってくる
26/87
第4正規形
第4正規形 (fourth normal form; 4NF) では候補キーで
はない属性への多値従属性をもった属性があってはなら
ない。
関係の正規化 - Wikipedia
27/87
第5正規形
第5正規形 (fifth normal form; 5NF) を満たす関係は、
その関係が第4正規形であり、さらにその関係に含まれ
る結合従属性の決定項が候補キーのみである場合、かつ
その場合だけである。
関係の正規化 - Wikipedia
28/87
先に⾔っておくと
BCNFを満たすリレーションのうち 非キー属性を持つものは
⾃動的に第5正規形
テーブルが 3カラム以上の複合候補キーだけで構成されてい
る場合のみ 第4正規化と第5正規化を考える必要がある
そんなテーブル作ったことあるお客様はいらっしゃいますか
29/87
第4正規形
3カラム以上の複合候補キーのみで構成されるテーブルが1
つのカラムで交差している場合に分割する
30/87
第5正規形
3カラム以上の複合候補キーのみで構成されるテーブルが2
つ以上のカラムで交差している場合に分割する
31/87
もうやめて︕
yoku0825のラ
イフはゼロよ︕
32/87
第6正規形
A relvar R [table] is in sixth normal form
(abbreviated 6NF) if and only if it satisfies no
nontrivial join dependencies at all ̶ where, as
before, a join dependency is trivial if and only if at
least one of the projections (possibly
U̲projections) involved is taken over the set of all
attributes of the relvar [table] concerned.
Sixth normal form
33/87
第6正規形
複数の非キー属性を持つテーブルを
1テーブルあたり1候補キー:1非キー属性に分割する正規化
ドメインキー正規形と呼ばれる場合も(定義がブレてるらし
い)
普通やらない
34/87
第6正規形
5NFのこんなテーブルを
+------------------------------------------+------+------+------+
| _hash_ | flg1 | flg2 | flg3 |
+------------------------------------------+------+------+------+
| a12483faa7f1c90c568017314a7ffdc84b544bb1 | 0 | 1 | 0 |
| da0e9d085e8f3ac208a7c80567914c097a9cc72a | 0 | 0 | 0 |
| 8458992edfd5e49f99bafacd33b9cac30abb967b | 0 | 0 | 0 |
+------------------------------------------+------+------+------+
35/87
第6正規形
こうじゃ
+------------------------------------------+------+
| _hash_ | flg1 |
+------------------------------------------+------+
| a12483faa7f1c90c568017314a7ffdc84b544bb1 | 0 |
| da0e9d085e8f3ac208a7c80567914c097a9cc72a | 0 |
| 8458992edfd5e49f99bafacd33b9cac30abb967b | 0 |
+------------------------------------------+------+
+------------------------------------------+------+
| _hash_ | flg2 |
+------------------------------------------+------+
| a12483faa7f1c90c568017314a7ffdc84b544bb1 | 1 |
| da0e9d085e8f3ac208a7c80567914c097a9cc72a | 0 |
| 8458992edfd5e49f99bafacd33b9cac30abb967b | 0 |
+------------------------------------------+------+
+------------------------------------------+------+
| _hash_ | flg3 |
+------------------------------------------+------+
| a12483faa7f1c90c568017314a7ffdc84b544bb1 | 0 |
| da0e9d085e8f3ac208a7c80567914c097a9cc72a | 0 |
| 8458992edfd5e49f99bafacd33b9cac30abb967b | 0 |
+------------------------------------------+------+
36/87
ドメインと命名
ルールとか考え
る時に便利
37/87
正規形
第1正規形(1NF)
第2正規形(2NF)
第3正規形(3NF)
ボイスコッド正規形(BCNF)
第4正規形(4NF)
第5正規形(5NF)
第6正規形(6NF)
38/87
正規形
2NF, BCNFとそれ以降への正規化は複合候補キーがある場
合のみ
4NF以降(ただし6NFを除く)への正規化は3カラム以上の
複合候補キーのみで構成される場合
だからだいたい1NF〜3NFまで(本当はBCNFまで)きっち
り把握してればプラクティスの使い⼼地(学習コストと得ら
れるメリットの割合)としては上々
39/87
ここまでのまとめ
正規化は
更新箇所を減らす&参照効率&データの整合性を上げるためのテーブ
ル設計のプラクティス集
-
1NF〜3NFは割と簡単かつ効果が⾼い
4NF以降は3カラム以上の複合候補キーのみのテーブルに対してのみ
考える
-
40/87
第1正規形(again)
関係がスカラ値のみを持ちうるとき、その関係を第1正
規形 (first normal form; 1NF) であるという
関係の正規化 - Wikipedia
41/87
第1正規形(again)
全ての⾏の
全てのカラムの値が
それ以上分割できない値であるとき
42/87
アトミッ
ク #とは
43/87
アトミック #とは
それ以上分割できない
1⾏に複数の(候補キーで識別されるべき)主体の情報が⼊ってはい
けない
-
1カラムに複数の種類の情報が⼊ってはいけない-
分割しすぎてもとの意味が失われていない
「⽂字列型は配列だから1⽂字ずつがアトミック(キリ)」とかいう
ことは起こらない
-
44/87
1⾏に複数の主体
mysql57> SELECT * FROM t1G
*************************** 1. row ***************************
v: yoku0825@gmail.com: せがれが扇風機に向かってですます調で「ワ
レワレハ、ウチュウジンデス」って言っててちょっと面白い季節がやってきま
した。
yoku0825@gmail.com: "Noted in 8.0.0 changelog." nnMySQL Bugs: #
81827: no stack trace on crash in freebsdnhttps://bugs.mysql.co
m/bug.php?id=81827
yoku0825@gmail.com: Workbench使いにとっては大事なことかもしれ
ない。nnMySQL Bugs: #81971: Needs HiDPI supportnhttp://bugs.my
sql.com/bug.php?id=81971
1 row in set (0.00 sec)
45/87
⾏を分割
mysql57> SELECT * FROM t1G
*************************** 1. row ***************************
v: yoku0825@gmail.com: せがれが扇風機に向かってですます調で
「ワレワレハ、ウチュウジンデス」って言っててちょっと面白い季節がやって
きました。
*************************** 2. row ***************************
v: yoku0825@gmail.com: "Noted in 8.0.0 changelog." nnMySQL Bug
s: #81827: no stack trace on crash in freebsdnhttps://bugs.mysq
l.com/bug.php?id=81827
*************************** 3. row ***************************
v: yoku0825@gmail.com: Workbench使いにとっては大事なことかもし
れない。nnMySQL Bugs: #81971: Needs HiDPI supportnhttp://bug
s.mysql.com/bug.php?id=81971
3 rows in set (0.00 sec)
46/87
それでもまだ1カラムに複数の情報
mysql57> SELECT * FROM t1G
*************************** 1. row ***************************
v: yoku0825@gmail.com: せがれが扇風機に向かってですます調で
「ワレワレハ、ウチュウジンデス」って言っててちょっと面白い季節がやって
きました。
*************************** 2. row ***************************
v: yoku0825@gmail.com: "Noted in 8.0.0 changelog." nnMySQL Bug
s: #81827: no stack trace on crash in freebsdnhttps://bugs.mysq
l.com/bug.php?id=81827
*************************** 3. row ***************************
v: yoku0825@gmail.com: Workbench使いにとっては大事なことかもし
れない。nnMySQL Bugs: #81971: Needs HiDPI supportnhttp://bug
s.mysql.com/bug.php?id=81971
3 rows in set (0.00 sec)
47/87
カラム分割
mysql57> SELECT * FROM t1G
*************************** 1. row ***************************
u: yoku0825@gmail.com
v: せがれが扇風機に向かってですます調で「ワレワレハ、ウチュウジンデス」
って言っててちょっと面白い季節がやってきました。
*************************** 2. row ***************************
u: yoku0825@gmail.com
v: "Noted in 8.0.0 changelog." nnMySQL Bugs: #81827: no stack t
race on crash in freebsdnhttps://bugs.mysql.com/bug.php?id=81827
*************************** 3. row ***************************
u: yoku0825@gmail.com
v: Workbench使いにとっては大事なことかもしれない。nnMySQL Bu
gs: #81971: Needs HiDPI supportnhttp://bugs.mysql.com/bug.php?id
=81971
3 rows in set (0.00 sec)
48/87
ところで
49/87
yoku0825@gmail.com
ってアトミック︖
50/87
yoku0825@gmail.com はアトミックか
ほとんどのサービスにとってはアトミック
Twitter, Slack, GitHub, Oracle Single Signin On, ..-
yoku0825@gmail.com をメールアドレスだとしか認識してない⼈たち
アカウント名が yoku0825 なのは俺がそう設定したからであって、関連はない(彼ら
にとっては)
-
51/87
yoku0825@gmail.com はアトミックか
たまに、アトミックじゃないサービスがいる
GMail, その他MTAさんたち-
yoku0825@gmail.com は gmail.com の yoku0825 ユーザー
DNSさんにとっては gmail.com もアトミックじゃない
-
52/87
つまりアトミック #とは
設計次第
なんだけど
LIKE 演算⼦や SUBSTR 関数を使ってるなら、それは多分アト
ミックじゃない
⇔ アトミックなら LIKE 演算⼦や SUBSTR 関数を使ってない
配列型(MySQLにはない)やJSON型もBLOB型も、SQLからはPKで
引いてアプリケーション側でゴニョゴニョするならリレーショナルモ
デル的には正規形
-
SET型(こんなデータ型MySQLくらい︖)さん…-
53/87
第2正規形(again)
ある関係が、第1正規形で、かつ、すべての非キー属性
が、すべての候補キーに対して完全従属するとき、第2
正規形 (second normal form; 2NF) であるという
関係の正規化 - Wikipedia
54/87
第2正規形(again)
候補キー(PRIMARY KEYとUNIQUE KEYだけど、何らかの
事情で制約をかけていないものも含む)が複数のカラムで構
成されているときに(複合候補キー)
複合候補キーの⼀部が決まれば値が決まるカラム がないと
き
55/87
第2正規形
第1正規形であって第2正規形でない例
(prefecture, city)がPRIMARY KEY-
prefectureが決まるとprefecture̲kanaは⼀意に決まる-
56/87
第2正規形
57/87
第2正規形
+--------------+----------------------+
| _prefecture_ | _city_ |
+--------------+----------------------+
| 北海道 | 札幌市中央区 |
| 北海道 | 札幌市北区 |
| 北海道 | 札幌市東区 |
+--------------+----------------------+
+--------------+-----------------------+
| _prefecture_ | prefecture_kana |
+--------------+-----------------------+
| 北海道 | ホッカイドウ |
+--------------+-----------------------+
+--------------------+--------------------------------------+
| _city_ | city_kana |
+--------------------+--------------------------------------+
| 札幌市中央区 | サッポロシチュウオウク |
| 札幌市北区 | サッポロシキタク |
| 札幌市東区 | サッポロシヒガシク |
+--------------------+--------------------------------------+
58/87
正規化の醍醐味
北海道の読みが「でっかいどう」に変わった時にテーブルま
るごと更新しなくていい
更新箇所を減らす-
prefecture vs. prefecture̲kana を⾒れば容量がコンパク
トになっているのは⼀目瞭然
参照効率を上げる-
city̲kanaはこの⾯微妙。。
カーディナリティー依存
-
北海道の読みが「ほっかいどう」であることを保証できる
(整合性の保証)
元のテーブルで SELECT DISTINCT prefecture_kana FROM .. WHERE
prefecture = '北海道' が2⾏返ってきちゃったら、どっちが正しい
のかは機械は判断できなくなる
-
59/87
第3正規形(again)
ある関係が、第2正規形で、かつ、非キー属性があるな
らば、それら全てが候補キーに非推移的に関数従属する
とき、第3正規形 (third normal form; 3NF) であると
いう
関係の正規化 - Wikipedia
60/87
第3正規形(again)
非キー属性(候補キーでないカラム)があるとき
ある非キー属性の値が決まると、値が決まるカラム がない
とき
61/87
第3正規形
第2正規形であって第3正規形でない例
62/87
第3正規形︖
63/87
第3正規形︖
+----------------------+------------+
| _name_ | birthday |
+----------------------+------------+
| yoku0825 | 1982-08-25 |
| yoku0825の妻 | 19xx-01-17 |
| yoku0825のせがれ | 20xx-05-27 |
| yoku0825のムスメ | 20xx-01-05 |
+----------------------+------------+
+------------+-----------------+
| _birthday_ | birthday_stone |
+------------+-----------------+
| 1982-08-25 | ペリドット |
| 19xx-01-17 | ガーネット |
| 20xx-05-27 | エメラルド |
| 20xx-01-05 | ガーネット |
+------------+-----------------+
64/87
第1非正規形になってしまった
birthdayがアトミックじゃない
+----------------------+------------+
| _name_ | birthday |
+----------------------+------------+
| yoku0825 | 1982-08-25 |
| yoku0825の妻 | 19xx-01-17 |
| yoku0825のせがれ | 20xx-05-27 |
| yoku0825のムスメ | 20xx-01-05 |
+----------------------+------------+
+------------+-----------------+
| _birthday_ | birthday_stone |
+------------+-----------------+
| 1982-08-25 | ペリドット |
| 19xx-01-17 | ガーネット |
| 20xx-05-27 | エメラルド |
| 20xx-01-05 | ガーネット |
+------------+-----------------+
65/87
改めて第1正規系のプロセスを通すと第3正規形に
66/87
改めて第1正規系のプロセスを通すと第3正規形に
+----------------------+------------+
| _name_ | birthday |
+----------------------+------------+
| yoku0825 | 1982-08-25 |
| yoku0825の妻 | 19xx-01-17 |
| yoku0825のせがれ | 20xx-05-27 |
| yoku0825のムスメ | 20xx-01-05 |
+----------------------+------------+
+------------+------------+
| _birthday_ | birthmonth |
+------------+------------+
| 1982-08-25 | 8 |
| 19xx-01-17 | 1 |
| 20xx-05-27 | 5 |
| 20xx-01-05 | 1 |
+------------+------------+
+--------------+-----------------+
| _birthmonth_ | birthday_stone |
+--------------+-----------------+
| 1 | ガーネット |
| 5 | エメラルド |
| 8 | ペリドット |
+--------------+-----------------+
67/87
キモい…
68/87
現実問題、中間テーブルはかっ⾶ばす
name_birthday JOIN birthmonth_stone ON MONTH
(birthday) = birthmonth で仕留める
リレーショナルモデルの世界には MONTH 関数なんてないの
で、中間テーブルを作らないと birthday と birthmonth の
対応が取れない
そういう世界線なのだと割り切る-
現実世界では birthday が判れば birthmonth を⼀意に識別
できる
意味的に MONTH 関数が中間テーブルを提供してくれる-
69/87
さてみなさん
お気付きだろ
うか
70/87
3NFまでの正規化では、分割の軸になったカラムが必ず新
しいテーブルの候補キーになる
71/87
候補キーで分かれるという意味
そのリレーション(テーブル)で表現されるもの(=⾏)が
分けられるということ
name̲birthday は「⼈間」が主体(名前で識別される “⾏”)だろう
し
-
birthmonth̲stoneは「誕⽣⽉」が主体(1〜12で識別される “⾏”)
だろう
-
何の「属性」だかわからなくなったものを、それぞれ正しい「クラ
ス」に割り振り直すのが正規化
-
72/87
候補キーで分かれることが実際に起こすもの
というわけでJOINのインデックスはPK狙いになる
MySQLはPK狙いのJOINならそれなりに速い-
というか PKで結合できないなら分割の仕⽅間違ってる
あるいは、正規化とは関係ない別のテーブル分割の問題-
過剰分割とかね-
73/87
候補キーで分かれることが実際に起こすもの
そして出てくる 内側テーブルの “ORDER BY狙いのキー” が
選べない問題
真⾯目に(︖)正規化すると、サブクエリーやGROUP BYと
のJOINをしたくなる
SELECT user_id, tweet_count FROM user JOIN (SELECT user_id,
COUNT(*) AS tweet_count FROM tweet GRUOP BY user_id) USING
(user_id) ORDER BY tweet_count DESC ..
-
こんなことするとしんでしまいます
「正規化すると遅い」が真になる瞬間
-
74/87
⽇常的にこんなクエリーが流れてくる世の中
75/87
驚きのinnodb̲rows̲read
76/87
COUNTで死んでしまうこんな第5正規形を
77/87
COUNTを避けるためにテーブルをこうしたとしたら
78/87
それは正
規形︖
79/87
正規形は正規形
「ただし、明らかに冗
⻑」by C.J.Date
80/87
正規化かどうかは別として、同じフレームで評価すると
参照効率を上げる
成功してる-
更新箇所を減らす
2テーブル更新しなきゃいけなくなったから失敗してる-
整合性の保証
トランザクションがあるとはいえ制約は失った(=整合性は保証され
ない)
正しくトランザクションが使われている限りは 整合性があるけれど、 正しくトランザ
クションが使われていることそのものは誰も保証してくれない
-
81/87
あんまり望まし
い⽅向じゃなか
った(´・ω・`)
82/87
とはいえこれイン
デックスを思い出
しませんか︖
83/87
インデックス(ただし禁書目録ではない)
ソート済みのデータの複製
予めソートした状態でデータのサブセットを作っておくことで、検索
時の探索効率を上げる
-
重複をなくした設計にしましょうって⾔ってるRDBMSが基
本的な機能として、「データを敢えて重複させている」とい
うのは業が深くて考えさせられる
重複させても不整合が出ないように、重複させるオーバーヘッドを取
り除くために、裏側の実装はすんごくがんばってる
-
それと同じだと割り切れば、上⼿い使い⽅として付き合うこ
とはできる
FriendFeed では MySQL を使いどのようにスキーマレスのデータを
保存しているのか (⽇本語訳)
-
FriendFeedがFacebookに買収されてサービスを終了したので、原⽂はリンク切れ
-
84/87
後半のまとめ
正規化は “⾏” が表すものをクラス化する作業
候補キーはインスタンス、非キー属性はプロパティーみたいな感じ-
⼿順通りに3NFまで正規化するとJOINはPK結合になるはず
PK結合にならなかったら正しく分割できていないか、正規化とは別の
テーブル分割をしたのか
-
別のクラスのプロパティーとして再定義することで(せめ
て)正規形を保ちつつ冗⻑な⽅向に倒す
インデックスと同じ考え⽅-
正規化と同じ評価軸を使うと、どこまで論理的にアレな感じかの尺度
として⾒られる
-
85/87
参考情報
あなたが知らない リレーショナルモデル
理論から学ぶデータベース実践⼊門
Amazon.co.jp︓ SQL and Relational Theory
FriendFeed では MySQL を使いどのようにスキーマレスの
データを保存しているのか
Where狙いのキー、order by狙いのキー
86/87
Questions
and/or
Suggestions?
87/87

More Related Content

What's hot

Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具yoku0825
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメYoji Kanno
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
SpringBootによるDB更新
SpringBootによるDB更新SpringBootによるDB更新
SpringBootによるDB更新iPride Co., Ltd.
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメAkira Hirasawa
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣Yoshitaka Kawashima
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?Yosuke Onoue
 
Docker friendly PHP / Laravel
Docker friendlyPHP / LaravelDocker friendlyPHP / Laravel
Docker friendly PHP / LaravelKentarou Takeda
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 

What's hot (20)

Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
SpringBootによるDB更新
SpringBootによるDB更新SpringBootによるDB更新
SpringBootによるDB更新
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメ
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
 
Docker friendly PHP / Laravel
Docker friendlyPHP / LaravelDocker friendlyPHP / Laravel
Docker friendly PHP / Laravel
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 

Viewers also liked

とあるイルカの近況報告
とあるイルカの近況報告とあるイルカの近況報告
とあるイルカの近況報告yoku0825
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなしyoku0825
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験yoku0825
 
5.7の次のMySQL
5.7の次のMySQL5.7の次のMySQL
5.7の次のMySQLyoku0825
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQLyoku0825
 
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLMHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLyoku0825
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲yoku0825
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plusyoku0825
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはyoku0825
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターンyoku0825
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門yoku0825
 
地雷職人の朝は早い
地雷職人の朝は早い地雷職人の朝は早い
地雷職人の朝は早いyoku0825
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
紹介 of Anemometer
紹介 of Anemometer紹介 of Anemometer
紹介 of Anemometeryoku0825
 
ペパボ de MySQL
ペパボ de MySQLペパボ de MySQL
ペパボ de MySQLyoku0825
 
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形yoku0825
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴Mikiya Okuno
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計Mikiya Okuno
 
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったかMikiya Okuno
 

Viewers also liked (20)

とあるイルカの近況報告
とあるイルカの近況報告とあるイルカの近況報告
とあるイルカの近況報告
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
 
5.7の次のMySQL
5.7の次のMySQL5.7の次のMySQL
5.7の次のMySQL
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQL
 
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLMHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQL
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門
 
地雷職人の朝は早い
地雷職人の朝は早い地雷職人の朝は早い
地雷職人の朝は早い
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
紹介 of Anemometer
紹介 of Anemometer紹介 of Anemometer
紹介 of Anemometer
 
ペパボ de MySQL
ペパボ de MySQLペパボ de MySQL
ペパボ de MySQL
 
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
 
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
 

More from yoku0825

逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分かyoku0825
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技yoku0825
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことyoku0825
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略yoku0825
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術yoku0825
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリングyoku0825
 
わかった気になるMySQL
わかった気になるMySQLわかった気になるMySQL
わかった気になるMySQLyoku0825
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術yoku0825
 
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションイルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションyoku0825
 
MySQL5.7で遊んでみよう
MySQL5.7で遊んでみようMySQL5.7で遊んでみよう
MySQL5.7で遊んでみようyoku0825
 
光のMySQL 5.7
光のMySQL 5.7光のMySQL 5.7
光のMySQL 5.7yoku0825
 

More from yoku0825 (11)

逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
 
わかった気になるMySQL
わかった気になるMySQLわかった気になるMySQL
わかった気になるMySQL
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術
 
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションイルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
 
MySQL5.7で遊んでみよう
MySQL5.7で遊んでみようMySQL5.7で遊んでみよう
MySQL5.7で遊んでみよう
 
光のMySQL 5.7
光のMySQL 5.7光のMySQL 5.7
光のMySQL 5.7
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

MySQLと正規形のはなし