SlideShare a Scribd company logo
1 of 82
Download to read offline
DBAから
Railsエンジニアになって
モデルがふくよかなことに気がついた
自己紹介
名前:三浦 美咲樹
@yukaina
Tokyu.rbとYokohama.rbに、
参加させてもらっています。
昨年(2012年)8月から、念願の
Railsのエンジニアになりました。
Railsやる前は
データベースエンジニアをやって
いました。
PostgreSQL
もっと前には、MySQL、Oracle、
SQLServer・・・etc
DBAとは言っても
開発もやっていました。言語はP・・
DBAとは言っても
Railsっぽいフレームワーク
Symfony、CakePHP
のプロジェクトも有りました。
なので・・・
DBAとは言っても
Railsとかフレームワーク
を、意識したテーブル設計とか、
いい感じで、モデルを生成できてる
と・・・
思っていた2012年の初夏でした。
まず最初に
思っていたよりも、奥が深かったので、
もっと、勉強が必要でした・・・
そろそろ本題
気になるとこ
•MVCパターン
MVCパターン
• Model
• View
• Controller
• Model
Modelのイメージ
RailsのModel
なんだろ?この差は
産まれたてのModel
class User < ActiveRecord::Base
attr_accessible :name, :birthday, :profile
end
育ってくModel
class User < ActiveRecord::Base
attr_accessible :name, :birthday, :job, :profile
validates :name, :birthday, :job, :profile presence: true
validates :name, uniqueness: true
def xxx
end
def yyy
end
def zzz
end
 ・
  ・
 ・
end
で、すくすく育った結果が・・・
育ったModel育ちすぎちゃう?
なんで?
ビジネスロジックをModelに書くから?
振り返ってみる。
いままで、経験してきたプロジェクトって、
ビジネスロジックってどうしてたん?
アクションに書いていたん?
ほんとに? ?
そういえば。
Javaのプロジェクトも
経験していた!
確か、S2StrutsとかS2Daoとかってやつ。
見てみた。SAStrutsだけど。
見てみた。SAStrutsだけど。
エンティティ
見てみた。SAStrutsだけど。
ビジネスロジック?
ビジネスロジックは?
サービス?
こういうこと?
ビジネスロジック?
∑( ̄Д ̄;)
サービスっての
忘れてた。
ようするに
ビジネスロジックは?
そういうこと?
ビジネスロジック
頭の中では
肝心のサービスが抜けてた
ビジネスロジック?ビジネスロジック
正しくは
ビジネスロジック
やっぱり
いままで、経験してきたプロジェクトっ
て、ビジネスロジックどうしてたん?
サービスというものをわすれていたから
には、アクションに書いていたのかもし
れない
RailsのModelの役割
• データベースとやり取りするところ
CRUD
ORマッピング
• ビジネスロジック
• バリデーション
• SQL文生成,etc
モデルがふくよかなのは、仕方がないのかも
しれない。
RailsのModelの役割
とはいえ、
スタイルの良いモデルに憧れるよねぇ∼
とはいえ、
誰か、モデルのスリム化を。。。
と、言うことで
モデルがふくよかなのは、仕方がないのかも
しれないのですが、
スタイルの良いモデル・・・探してみると
多対多
ふくよかになりがちなモデルの中でも、
多対多の中間テーブルのモデルは、
スタイルが良い・・・ほぼ産まれたまま。
でも、データ量は大きくなりがち
元DBAとしては、
データサイズとか、
気になってしまうんですよねぇ∼
と、言うことで
データベース (MySQL) の
スリム化について考えてみた!
多対多
10,000件 25,000,000件 10,000件
class CreateUsersGroups < ActiveRecord::Migration
def change
create_table :users_groups do | t |
t.references :user
t.references :group
end
end
end
多対多
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+---------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+---------+----------+-----------+
| users_groups | InnoDB | 25000572 | 34 | 811.00 | 811.00 | 0.00 |
| users | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 9744 | 47 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+---------+----------+-----------+
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
多対多
10,000件 25,000,000件 10,000件
MySQLのINTのバイト
多対多
10,000件 25,000,000件 10,000件
class CreateUsersGroups < ActiveRecord::Migration
def change
create_table :users_groups, :id => false do | t |
t.references :user
t.references :group
end
end
end
多対多
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+---------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+---------+----------+-----------+
| users_groups | InnoDB | 25000427 | 36 | 862.00 | 862.00 | 0.00 |
| users | InnoDB | 9062 | 50 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+---------+----------+-----------+
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
多対多
811MB
平均 34byte
862MB
平均 36byte
10,000件 25,000,000件 10,000件
平均サイズが2バイト増加!
2バイト × 2500万 = 50 MB 増加!
多対多
∑( ̄Д ̄;)
平均行サイズが4バイト減・・・
4バイト × 2500万 = 100 MB 減・・・
だったはずちゃう?
多対多
idの4バイト分、節約ちゃうかった?
なのに、2バイト増えてんで。。。
多対多
なんで、増えんねん・・・・
原因は・・・
多対多
クラスタインデックス
http://dev.mysql.com/doc/refman/5.1-olh/ja/innodb-index-
クラスタインデックス
MySQLのInnoDBには、
クラスタインデックスというのがある
通常のインデックス
クラスタインデックス
クラスタインデックス
• テーブルに PRIMARY KEY がある場合、それをクラスタ
インデックスとする
• テーブルに PRIMARY KEY が無い場合、 NOT NULL カラ
ムだけを持つ最初のUNIQUE インデックス をクラスタ
インデックスとする
• テーブルに PRIMARY KEY も適切な UNIQUE インデック
スもない場合は、InnoDB の内部で、行 ID 値を含む合成
カラム上に隠しクラスタインデックスが生成される。
行 ID は、新しい行が挿入されると単調に増加する 6 バ
イトのフィールド
多対多
• テーブルに PRIMARY KEY がある場合、それをクラスタ
インデックスとする
• テーブルに PRIMARY KEY が無い場合、 NOT NULL カ
ラムだけを持つ最初のUNIQUE インデックス をクラス
タインデックスとする
• テーブルに PRIMARY KEY も適切な UNIQUE インデック
スもない場合は、InnoDB の内部で、行 ID 値を含む合成
カラム上に隠しクラスタインデックスが生成される。
行 ID は、新しい行が挿入されると単調に増加する 6 バ
イトのフィールド
クラスタインデックス
• テーブルに PRIMARY KEY がある場合、それをクラスタ
インデックスとする
• テーブルに PRIMARY KEY が無い場合、 NOT NULL カ
ラムだけを持つ最初のUNIQUE インデックス をクラス
タインデックスとする
• テーブルに PRIMARY KEY も適切な UNIQUE インデック
スもない場合は、InnoDB の内部で、行 ID 値を含む合成
カラム上に隠しクラスタインデックスが生成される。
行 ID は、新しい行が挿入されると単調に増加する 6 バ
イトのフィールド
多対多
平均サイズが2バイト増加!
2バイト × 2500万 = 50 MB 増加!
多対多
多対多
class CreateUsersGroups < ActiveRecord::Migration
def change
create_table :users_groups, :id => false do | t |
t.references :user
t.references :group
end
add_index :users_groups, :user_id
add_index :users_groups, :group_id
end
end
多対多
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+----------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+----------+----------+-----------+
| users_groups | InnoDB | 25000427 | 36 | 1,870.00 | 862.00 | 1,008.00 |
| users | InnoDB | 9744 | 47 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+----------+----------+-----------+
4 rows in set (0.02 sec)
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
多対多
• テーブルに PRIMARY KEY がある場合、それをクラスタ
インデックスとする
• テーブルに PRIMARY KEY が無い場合、 NOT NULL カ
ラムだけを持つ最初のUNIQUE インデックス をクラス
タインデックスとする
• テーブルに PRIMARY KEY も適切な UNIQUE インデック
スもない場合は、InnoDB の内部で、行 ID 値を含む合成
カラム上に隠しクラスタインデックスが生成される。
行 ID は、新しい行が挿入されると単調に増加する 6 バ
イトのフィールド
クラスタインデックス
• テーブルに PRIMARY KEY がある場合、それをクラスタ
インデックスとする
• テーブルに PRIMARY KEY が無い場合、 NOT NULL カ
ラムだけを持つ最初のUNIQUE インデックス をクラス
タインデックスとする
• テーブルに PRIMARY KEY も適切な UNIQUE インデック
スもない場合は、InnoDB の内部で、行 ID 値を含む合成
カラム上に隠しクラスタインデックスが生成される。
行 ID は、新しい行が挿入されると単調に増加する 6 バ
イトのフィールド
class CreateUsersGroups < ActiveRecord::Migration
def change
create_table :users_groups, :id => false do | t |
t.references :user, :null => false
t.references :group, :null => false
end
add_index :users_groups, [:user_id, :group_id], :unique => true
end
end
多対多
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+----------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+----------+----------+-----------+
| users_groups | InnoDB | 25000427 | 36 | 1,870.00 | 862.00 | 1,008.00 |
| users | InnoDB | 9744 | 47 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+----------+----------+-----------+
4 rows in set (0.02 sec)
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+---------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+---------+----------+-----------+
| users_groups | InnoDB | 25000579 | 28 | 683.00 | 683.00 | 0.00 |
| users | InnoDB | 9744 | 47 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+---------+----------+-----------+
4 rows in set (0.09 sec)
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
多対多
平均行サイズが8バイト減!
テーブルサイズが180 MB 減!
さらに、インデックスが約1GB減!
テーブル全体で約1/3くらいに縮小!
どういう計算かは、ともかく・・・
インデックスの領域が使われていないの
で、データサイズの節約。
インデックスとデータをBツリーに格納
しているので、通常は非クラスタイン
デックスよりも高速。
多対多
試してみるか試さないかはあなた次第
ご清聴ありがとうございました。
おまけ
group_idでのインデックスが、無くなっ
てるので、
カバリングインデックスを追加。
CREATE INDEX idx_users_groups01 USING BTREE ON
users_groups (group_id, user_id);
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+----------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+----------+----------+-----------+
| users_groups | InnoDB | 25000427 | 36 | 1,870.00 | 862.00 | 1,008.00 |
| users | InnoDB | 9744 | 47 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+----------+----------+-----------+
4 rows in set (0.02 sec)
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
mysql> SELECT
-> table_name
-> , engine
-> , table_rows as tbl_rows
-> , avg_row_length as rlen
-> , FORMAT((data_length+index_length)/1024/1024, 2) as 'all(MB)' #総容量
-> , FORMAT((data_length)/1024/1024, 2) as 'data(MB)' #データ容量
-> , FORMAT((index_length)/1024/1024, 2) as 'index(MB)' #インデックス容量
-> FROM information_schema.tables
-> WHERE table_schema=database()
-> ORDER BY (data_length+index_length) DESC;
+-------------------+--------+----------+------+---------+----------+-----------+
| table_name | engine | tbl_rows | rlen | all(MB) | data(MB) | index(MB) |
+-------------------+--------+----------+------+---------+----------+-----------+
| users_groups | InnoDB | 25000579 | 28 | 1,008.88| 683.00 | 325.88 |
| users | InnoDB | 9744 | 47 | 0.44 | 0.44 | 0.00 |
| groups | InnoDB | 10396 | 44 | 0.44 | 0.44 | 0.00 |
| schema_migrations | InnoDB | 3 | 5461 | 0.02 | 0.02 | 0.00 |
+-------------------+--------+----------+------+---------+----------+-----------+
4 rows in set (0.09 sec)
多対多
平均
行サイズ
データ
サイズ
インデックス
サイズ
全体
のサイズ
多対多
平均行サイズが8バイト減!
テーブルサイズが180 MB 減!
さらに、インデックスが約700MB減!
テーブル全体で約2/3以下に!

More Related Content

Similar to ふくよかなモデル

今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
MariaDB migration from commercial database
MariaDB migration from commercial databaseMariaDB migration from commercial database
MariaDB migration from commercial databaseGOTO Satoru
 
Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編IBM Analytics Japan
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jpyoyamasaki
 
Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録Maki Toshio
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)yoyamasaki
 
第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要
第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要 第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要
第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要 Daiyu Hatakeyama
 
データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化Shohei Yokoyama
 
Impala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajpImpala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajpCloudera Japan
 
MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01GOTO Satoru
 
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11MapR Technologies Japan
 
Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureRyota Watabe
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.pptNaoya Ito
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要Shinya Sugiyama
 
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューションData-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューションJamesLRishe
 
KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5Toshi Harada
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517akirahiguchi
 
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーションRyusuke Kajiyama
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6yoku0825
 

Similar to ふくよかなモデル (20)

今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
MariaDB migration from commercial database
MariaDB migration from commercial databaseMariaDB migration from commercial database
MariaDB migration from commercial database
 
Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
 
第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要
第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要 第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要
第29回 SQL Server 勉強会 (JSSUG) - Azure Synapse Analytics 概要
 
データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化
 
Impala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajpImpala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajp
 
MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01
 
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
 
Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database Architecture
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要
 
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューションData-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション
Data-driven Design: 4つの技法 InfoPathを用いたスケーラブル SharePointソリューション
 
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
 
KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
 
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6
 

Recently uploaded

論文紹介: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
 
論文紹介: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
 
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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
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
 
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
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

論文紹介: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...
 
論文紹介: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
 
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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
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
 
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」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

ふくよかなモデル