SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Copyright © 2013 TriFort, Inc. All Rights Reserved.
MySQL勉強会
〜基礎編〜
技術統轄本部
大谷 祐司
Copyright © 2013 TriFort, Inc. All Rights Reserved.
MySQL勉強会
TriFortで標準DBとして採用されているMySQL。
基本的な内容から応用的な内容まで、幅広く
お届けしたいと思います。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
アジェンダ
・MySQLの概要
・バージョンと新機能
・インデックスについて
・知っておきたいSQL
Copyright © 2013 TriFort, Inc. All Rights Reserved.
MySQLの概要
Copyright © 2013 TriFort, Inc. All Rights Reserved.
世界で一番使われている
オープンソース・データベース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
MySQLの運営組織
1995年:MySQL ABによってリリース
2008年:サン・マイクロシステムズがMySQL AB買収
2009年:オラクルがサン・マイクロシステムズ買収
現在は、オラクルがMySQLを開発している。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
MySQLのfork「MariaDB」の台頭
Fedora19がリリース。
デフォルトのDBがMySQLからMariaDBに変更されました。
2013年7月
Copyright © 2013 TriFort, Inc. All Rights Reserved.
GoogleもMariaDB採用へ
社内データベースにMariaDB 10.0 を採用している。
GoogleがMariaDB Foundationに開発者を派遣。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
MySQLの歴史
Copyright © 2013 TriFort, Inc. All Rights Reserved.
1995年5月
最初のバージョンがリリース。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
2003年3月
バージョン4.0プロダクション版
リリース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・クエリキャッシュ
・バルクインサート
・InnoDBストレージエンジン
・SQL:TRUNCATE文
・SQL:UNION文
・SET文が使えるようになった
・複数テーブルのDELETE/UPDATE
・FOUND_ROWS
Copyright © 2013 TriFort, Inc. All Rights Reserved.
2004年10月
バージョン4.1プロダクション版
リリース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・サブクエリのサポート
・SQL:CREATE TABLE XXX LIKE XXX
・SSL 接続を介したレプリケーション
・SQL:ON DUPLICATE KEY UPDATE
・1度に複数クエリの実行
・GROUP_CONCAT()関数
Copyright © 2013 TriFort, Inc. All Rights Reserved.
2005年10月
バージョン5プロダクション版
リリース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・ストアドプロシージャ
・VARCHARの255文字以上対応
Copyright © 2013 TriFort, Inc. All Rights Reserved.
2008年11月
バージョン5.1プロダクション版
リリース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・テーブルのパーティショニング
・行ベースのレプリケーション
・プラグインAPI
・イベント スケジューラ
・サーバログテーブル
・テーブルスペースのバックアップ(mysqldump)
・INFORMATION_SCHEMAに対する改良
Copyright © 2013 TriFort, Inc. All Rights Reserved.
2010年12月
バージョン5.5プロダクション版
リリース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・標準ストレージエンジンがInnoDBに変更。
・InnoDBの大幅な改善
・準同期レプリケーション
・レプリケーションの改善
・4バイトUTF-8対応
・RANGE/LISパーテショニング
Copyright © 2013 TriFort, Inc. All Rights Reserved.
2013年2月
バージョン5.6プロダクション版
リリース
Copyright © 2013 TriFort, Inc. All Rights Reserved.
InnoDB
・インデックス追加/削除がオンラインで可能
・全文検索機能
・.ibdファイルのエクスポート・インポート
・ページサイズの指定(4k/8k/16k)
・memcachedプロトコルでアクセス
・インデックス統計情報の改善
・InnoDBのログサイズ最大が4G⇒512G
・デッドロック検出機能の改善
・SQL:START TRANSACTION READ ONLY
Copyright © 2013 TriFort, Inc. All Rights Reserved.
レプリケーション
・SLAVEのマルチスレッド化
・GTIDでSLAVEの自動昇格が可能
・SLAVEがクラッシュセーフに。
・遅延レプリケーション
・SLAVEが使用するNICの指定
・バイナリログにチェックサムの付与
Copyright © 2013 TriFort, Inc. All Rights Reserved.
オプティマイザ
・サブクエリの改善
・UPDATE/DELETE/INSERTなどもexplain可能に
・ORDER BY ... LIMITのパフォーマンス改善
・パーティションの上限が1024⇒8192に増加
・パーティションをテーブル間で移動
・クエリ実行時にパーティションを指定できる
Copyright © 2013 TriFort, Inc. All Rights Reserved.
インデックスの理解
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:インデックスを使うメリットは
何でしょうか?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:レコードの絞り込みを高速に行える。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:インデックスを使うデメリットは
何でしょうか?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:更新が遅くなる。
使いすぎるとメモリを圧迫する。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
インデックスとは何か
メモリに該当レコードの位置を保存して、高速にアクセ
スできるようにしています。
メモリはHDDの10万倍程度早いので、高速な検索を実現し
ています。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
インデックスの種類
質問:MySQLにはどのようなインデックスが
存在するでしょうか?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・PRIMARY KEY
⇒テーブルのレコードを一意に特定
・セカンダリインデックス
⇒PK以外のインデックス
・ユニークインデックス
⇒特定のカラムで同じ値が一度しか出現しな
くなる(NULLは除く)
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・空間インデックス(SPATIAL)
⇒緯度軽度などの空間情報を扱うのに利用。R-tree。
・FULLTEXT
⇒全文検索用のインデックス。MySQL5.6からInnoDBで
使用可能になりました。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
100万レコードの検索
⇒全てのレコードを順番に読んで、100万回のレコード
チェックを行う。
インデックスを使用しないと・・
Copyright © 2013 TriFort, Inc. All Rights Reserved.
ヘッダブロック、ブランチブロックで値を検索し、
リーフブロックでレコードの位置を特定します。
B-tree indexの概要
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・どのようなキー値でも同一の速度が期待できる。
・大量データでも良いパフォーマンスが期待できる。
・主キーでの検索が非常に高速
・セカンダリインデックスの検索は遅くなる
⇒リーフブロックには主キーの位置が格納
B-tree インデックスの特徴
Copyright © 2013 TriFort, Inc. All Rights Reserved.
複合インデックスについて
質問:2つ以上のカラムにインデックスを張るとき、
気をつけるポイントは何でしょうか?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・どのように検索されるかを考慮する。
A, AB で検索される場合にはA⇒Bの順番。
B, BA で検索される場合にはB⇒Aの順番。
・カーディナリティ(値の分散)を考慮する。
Aが3つのデータ、Bが1000のデータで構成され
ている場合、Bを先に持ってくる。
Copyright © 2013 TriFort, Inc. All Rights Reserved.
・フィールド値を定数と比較するとき (where name = 'hogehoge')
・フィールド値でJOINするとき (where a.name = b.name)
・フィールド値の範囲を求めるとき (<,>,between)
・LIKE句が文字列から始まるとき (where name like 'hoge%')
・min(),max()
・文字列のプレフィクスを基にしたorder by, groupy by
インデックスが使用されるとき
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:どのインデックスを使用するか指定する方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:use index 文を使用する。
SELECT * FROM estimates
USE INDEX(IDX_IMPORT, IDX_FSEARCH)
WHERE total>=10000 AND type=1
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:explain文で見るべき項目は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:
・適正なインデックスが使用されているか。
・テーブルに対するアクセス方法は適正か(type)
・Extraのチェック(filesort, temporaryに注
意!)
Copyright © 2013 TriFort, Inc. All Rights Reserved.
知っておきたいSQL
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:複数の値を一括でinsertする方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:バルクinsert
Insert into table_name
values
(AAA, BBB, CCC, DDD),
(AAA, BBB, CCC, DDD),
(AAA, BBB, CCC, DDD)
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:値のdelete-insertを一回で行う方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:replace into
replace into table_name
values
(AAA, BBB, CCC, DDD)
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:PKにレコードが存在したらupdate, 存在しな
かったらinsertを行う方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:on duplicate key update
Insert into table_name
values
(AAA, BBB, CCC)
on duplicate key update
column_A=AAA,
column_B=BBB,
column_C=CCC
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:selectしたレコードをロックする方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:select for update
select for update from table_name where
id=1;
⇩
commit;
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:クエリキャッシュを使わない指定方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:SQL_NO_CACHE
select SQL_NO_CACHE from table_name
where id=1;
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:PKが同じレコードの重複登録エラーを
無視して高速にINSERTする方法は?
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:INSERT IGNORE INTO
Insert ignore into table_name
values
(AAA, BBB, CCC)
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:insertされたauto_increment値の取得
方法
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:last_insert_id();
Copyright © 2013 TriFort, Inc. All Rights Reserved.
質問:selectの結果で重複している行を除外する
Copyright © 2013 TriFort, Inc. All Rights Reserved.
答え:DISTINCT
select distinct AAA from
table_name
Copyright © 2013 TriFort, Inc. All Rights Reserved.
勉強会は以上になります。
ご清聴ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策
Kuniharu(州晴) AKAHANE(赤羽根)
 
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/SpringPacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Takatoshi Matsuo
 

Was ist angesagt? (20)

AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
 
Art of MySQL Replication.
Art of MySQL Replication.Art of MySQL Replication.
Art of MySQL Replication.
 
MySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたMySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じた
 
Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
MySQLの文字コード事情
MySQLの文字コード事情MySQLの文字コード事情
MySQLの文字コード事情
 
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
 
Azure App Service Overview
Azure App Service OverviewAzure App Service Overview
Azure App Service Overview
 
Airflowで真面目にjob管理
Airflowで真面目にjob管理Airflowで真面目にjob管理
Airflowで真面目にjob管理
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
 
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
IT エンジニアのための 流し読み Windows - Windows 共有 PC モードIT エンジニアのための 流し読み Windows - Windows 共有 PC モード
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
 
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
 
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
 
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/SpringPacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
 
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfileJava EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfile
 
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
 

Andere mochten auch

MySQLによってタフになる会12章
MySQLによってタフになる会12章MySQLによってタフになる会12章
MySQLによってタフになる会12章
Toshihiro Suzuki
 
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
Mori Tetsuya
 
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lockmysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
karupanerura
 
N:1 Replication meets MHA
N:1 Replication meets MHAN:1 Replication meets MHA
N:1 Replication meets MHA
do_aki
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 

Andere mochten auch (20)

nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
nginx入門
nginx入門nginx入門
nginx入門
 
Nginx勉強会
Nginx勉強会Nginx勉強会
Nginx勉強会
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
MySQLによってタフになる会12章
MySQLによってタフになる会12章MySQLによってタフになる会12章
MySQLによってタフになる会12章
 
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
 
mysqlcasual6-fabric
mysqlcasual6-fabricmysqlcasual6-fabric
mysqlcasual6-fabric
 
mysqlcasual6-next-key-lock
mysqlcasual6-next-key-lockmysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
 
MHA on AWS+Rails
MHA on AWS+RailsMHA on AWS+Rails
MHA on AWS+Rails
 
N:1 Replication meets MHA
N:1 Replication meets MHAN:1 Replication meets MHA
N:1 Replication meets MHA
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
TokuDB試してみる
TokuDB試してみるTokuDB試してみる
TokuDB試してみる
 
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
 
MySQLはじめの第一歩
MySQLはじめの第一歩MySQLはじめの第一歩
MySQLはじめの第一歩
 
ITエンジニアのための英語勉強法
ITエンジニアのための英語勉強法ITエンジニアのための英語勉強法
ITエンジニアのための英語勉強法
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
Amazon Aurora 最新アップデートと日本のお客様の移行事例
Amazon Aurora 最新アップデートと日本のお客様の移行事例Amazon Aurora 最新アップデートと日本のお客様の移行事例
Amazon Aurora 最新アップデートと日本のお客様の移行事例
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 

Ähnlich wie 【基礎編】社内向けMySQL勉強会

D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboD22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
Insight Technology, Inc.
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
dstn
 
[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida
[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida
[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida
Insight Technology, Inc.
 

Ähnlich wie 【基礎編】社内向けMySQL勉強会 (20)

D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboD22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
 
Fuel php活用事例
Fuel php活用事例Fuel php活用事例
Fuel php活用事例
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
 
[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida
[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida
[A31]AWS上でOracleを利用するためのはじめの一歩!by Masatoshi Yoshida
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
Engine Yard - 商用マルチクラウドPaaS
Engine Yard - 商用マルチクラウドPaaSEngine Yard - 商用マルチクラウドPaaS
Engine Yard - 商用マルチクラウドPaaS
 
About OpenStack DBaas (trove)
About OpenStack DBaas (trove)About OpenStack DBaas (trove)
About OpenStack DBaas (trove)
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
 
OpenStack Trove 技術解説
OpenStack Trove 技術解説OpenStack Trove 技術解説
OpenStack Trove 技術解説
 
Cloudera in the Cloud #CWT2017
Cloudera in the Cloud #CWT2017Cloudera in the Cloud #CWT2017
Cloudera in the Cloud #CWT2017
 
AutoScale×ゲーム ~運用効率化への取り組み~
AutoScale×ゲーム ~運用効率化への取り組み~AutoScale×ゲーム ~運用効率化への取り組み~
AutoScale×ゲーム ~運用効率化への取り組み~
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguroとある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
ORACLE MASTER Bronze Oracle Database 12c 傾向と対策 (SQL および Bronze DBA)
ORACLE MASTER Bronze Oracle Database 12c 傾向と対策 (SQL および Bronze DBA) ORACLE MASTER Bronze Oracle Database 12c 傾向と対策 (SQL および Bronze DBA)
ORACLE MASTER Bronze Oracle Database 12c 傾向と対策 (SQL および Bronze DBA)
 
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 

Mehr von Yuji Otani

NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会
Yuji Otani
 

Mehr von Yuji Otani (20)

SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジーSKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
 
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
 
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
 
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
 
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
 
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
 
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
 
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
 
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
 
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
 
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
 
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
負荷分散勉強会
負荷分散勉強会負荷分散勉強会
負荷分散勉強会
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

【基礎編】社内向けMySQL勉強会

  • 1. Copyright © 2013 TriFort, Inc. All Rights Reserved. MySQL勉強会 〜基礎編〜 技術統轄本部 大谷 祐司
  • 2. Copyright © 2013 TriFort, Inc. All Rights Reserved. MySQL勉強会 TriFortで標準DBとして採用されているMySQL。 基本的な内容から応用的な内容まで、幅広く お届けしたいと思います。
  • 3. Copyright © 2013 TriFort, Inc. All Rights Reserved. アジェンダ ・MySQLの概要 ・バージョンと新機能 ・インデックスについて ・知っておきたいSQL
  • 4. Copyright © 2013 TriFort, Inc. All Rights Reserved. MySQLの概要
  • 5. Copyright © 2013 TriFort, Inc. All Rights Reserved. 世界で一番使われている オープンソース・データベース
  • 6. Copyright © 2013 TriFort, Inc. All Rights Reserved. MySQLの運営組織 1995年:MySQL ABによってリリース 2008年:サン・マイクロシステムズがMySQL AB買収 2009年:オラクルがサン・マイクロシステムズ買収 現在は、オラクルがMySQLを開発している。
  • 7. Copyright © 2013 TriFort, Inc. All Rights Reserved. MySQLのfork「MariaDB」の台頭 Fedora19がリリース。 デフォルトのDBがMySQLからMariaDBに変更されました。 2013年7月
  • 8. Copyright © 2013 TriFort, Inc. All Rights Reserved. GoogleもMariaDB採用へ 社内データベースにMariaDB 10.0 を採用している。 GoogleがMariaDB Foundationに開発者を派遣。
  • 9. Copyright © 2013 TriFort, Inc. All Rights Reserved. MySQLの歴史
  • 10. Copyright © 2013 TriFort, Inc. All Rights Reserved. 1995年5月 最初のバージョンがリリース。
  • 11. Copyright © 2013 TriFort, Inc. All Rights Reserved. 2003年3月 バージョン4.0プロダクション版 リリース
  • 12. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・クエリキャッシュ ・バルクインサート ・InnoDBストレージエンジン ・SQL:TRUNCATE文 ・SQL:UNION文 ・SET文が使えるようになった ・複数テーブルのDELETE/UPDATE ・FOUND_ROWS
  • 13. Copyright © 2013 TriFort, Inc. All Rights Reserved. 2004年10月 バージョン4.1プロダクション版 リリース
  • 14. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・サブクエリのサポート ・SQL:CREATE TABLE XXX LIKE XXX ・SSL 接続を介したレプリケーション ・SQL:ON DUPLICATE KEY UPDATE ・1度に複数クエリの実行 ・GROUP_CONCAT()関数
  • 15. Copyright © 2013 TriFort, Inc. All Rights Reserved. 2005年10月 バージョン5プロダクション版 リリース
  • 16. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・ストアドプロシージャ ・VARCHARの255文字以上対応
  • 17. Copyright © 2013 TriFort, Inc. All Rights Reserved. 2008年11月 バージョン5.1プロダクション版 リリース
  • 18. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・テーブルのパーティショニング ・行ベースのレプリケーション ・プラグインAPI ・イベント スケジューラ ・サーバログテーブル ・テーブルスペースのバックアップ(mysqldump) ・INFORMATION_SCHEMAに対する改良
  • 19. Copyright © 2013 TriFort, Inc. All Rights Reserved. 2010年12月 バージョン5.5プロダクション版 リリース
  • 20. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・標準ストレージエンジンがInnoDBに変更。 ・InnoDBの大幅な改善 ・準同期レプリケーション ・レプリケーションの改善 ・4バイトUTF-8対応 ・RANGE/LISパーテショニング
  • 21. Copyright © 2013 TriFort, Inc. All Rights Reserved. 2013年2月 バージョン5.6プロダクション版 リリース
  • 22. Copyright © 2013 TriFort, Inc. All Rights Reserved. InnoDB ・インデックス追加/削除がオンラインで可能 ・全文検索機能 ・.ibdファイルのエクスポート・インポート ・ページサイズの指定(4k/8k/16k) ・memcachedプロトコルでアクセス ・インデックス統計情報の改善 ・InnoDBのログサイズ最大が4G⇒512G ・デッドロック検出機能の改善 ・SQL:START TRANSACTION READ ONLY
  • 23. Copyright © 2013 TriFort, Inc. All Rights Reserved. レプリケーション ・SLAVEのマルチスレッド化 ・GTIDでSLAVEの自動昇格が可能 ・SLAVEがクラッシュセーフに。 ・遅延レプリケーション ・SLAVEが使用するNICの指定 ・バイナリログにチェックサムの付与
  • 24. Copyright © 2013 TriFort, Inc. All Rights Reserved. オプティマイザ ・サブクエリの改善 ・UPDATE/DELETE/INSERTなどもexplain可能に ・ORDER BY ... LIMITのパフォーマンス改善 ・パーティションの上限が1024⇒8192に増加 ・パーティションをテーブル間で移動 ・クエリ実行時にパーティションを指定できる
  • 25. Copyright © 2013 TriFort, Inc. All Rights Reserved. インデックスの理解
  • 26. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:インデックスを使うメリットは 何でしょうか?
  • 27. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:レコードの絞り込みを高速に行える。
  • 28. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:インデックスを使うデメリットは 何でしょうか?
  • 29. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:更新が遅くなる。 使いすぎるとメモリを圧迫する。
  • 30. Copyright © 2013 TriFort, Inc. All Rights Reserved. インデックスとは何か メモリに該当レコードの位置を保存して、高速にアクセ スできるようにしています。 メモリはHDDの10万倍程度早いので、高速な検索を実現し ています。
  • 31. Copyright © 2013 TriFort, Inc. All Rights Reserved. インデックスの種類 質問:MySQLにはどのようなインデックスが 存在するでしょうか?
  • 32. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・PRIMARY KEY ⇒テーブルのレコードを一意に特定 ・セカンダリインデックス ⇒PK以外のインデックス ・ユニークインデックス ⇒特定のカラムで同じ値が一度しか出現しな くなる(NULLは除く)
  • 33. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・空間インデックス(SPATIAL) ⇒緯度軽度などの空間情報を扱うのに利用。R-tree。 ・FULLTEXT ⇒全文検索用のインデックス。MySQL5.6からInnoDBで 使用可能になりました。
  • 34. Copyright © 2013 TriFort, Inc. All Rights Reserved. 100万レコードの検索 ⇒全てのレコードを順番に読んで、100万回のレコード チェックを行う。 インデックスを使用しないと・・
  • 35. Copyright © 2013 TriFort, Inc. All Rights Reserved. ヘッダブロック、ブランチブロックで値を検索し、 リーフブロックでレコードの位置を特定します。 B-tree indexの概要
  • 36. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・どのようなキー値でも同一の速度が期待できる。 ・大量データでも良いパフォーマンスが期待できる。 ・主キーでの検索が非常に高速 ・セカンダリインデックスの検索は遅くなる ⇒リーフブロックには主キーの位置が格納 B-tree インデックスの特徴
  • 37. Copyright © 2013 TriFort, Inc. All Rights Reserved. 複合インデックスについて 質問:2つ以上のカラムにインデックスを張るとき、 気をつけるポイントは何でしょうか?
  • 38. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・どのように検索されるかを考慮する。 A, AB で検索される場合にはA⇒Bの順番。 B, BA で検索される場合にはB⇒Aの順番。 ・カーディナリティ(値の分散)を考慮する。 Aが3つのデータ、Bが1000のデータで構成され ている場合、Bを先に持ってくる。
  • 39. Copyright © 2013 TriFort, Inc. All Rights Reserved. ・フィールド値を定数と比較するとき (where name = 'hogehoge') ・フィールド値でJOINするとき (where a.name = b.name) ・フィールド値の範囲を求めるとき (<,>,between) ・LIKE句が文字列から始まるとき (where name like 'hoge%') ・min(),max() ・文字列のプレフィクスを基にしたorder by, groupy by インデックスが使用されるとき
  • 40. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:どのインデックスを使用するか指定する方法は?
  • 41. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:use index 文を使用する。 SELECT * FROM estimates USE INDEX(IDX_IMPORT, IDX_FSEARCH) WHERE total>=10000 AND type=1
  • 42. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:explain文で見るべき項目は?
  • 43. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え: ・適正なインデックスが使用されているか。 ・テーブルに対するアクセス方法は適正か(type) ・Extraのチェック(filesort, temporaryに注 意!)
  • 44. Copyright © 2013 TriFort, Inc. All Rights Reserved. 知っておきたいSQL
  • 45. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:複数の値を一括でinsertする方法は?
  • 46. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:バルクinsert Insert into table_name values (AAA, BBB, CCC, DDD), (AAA, BBB, CCC, DDD), (AAA, BBB, CCC, DDD)
  • 47. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:値のdelete-insertを一回で行う方法は?
  • 48. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:replace into replace into table_name values (AAA, BBB, CCC, DDD)
  • 49. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:PKにレコードが存在したらupdate, 存在しな かったらinsertを行う方法は?
  • 50. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:on duplicate key update Insert into table_name values (AAA, BBB, CCC) on duplicate key update column_A=AAA, column_B=BBB, column_C=CCC
  • 51. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:selectしたレコードをロックする方法は?
  • 52. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:select for update select for update from table_name where id=1; ⇩ commit;
  • 53. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:クエリキャッシュを使わない指定方法は?
  • 54. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:SQL_NO_CACHE select SQL_NO_CACHE from table_name where id=1;
  • 55. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:PKが同じレコードの重複登録エラーを 無視して高速にINSERTする方法は?
  • 56. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:INSERT IGNORE INTO Insert ignore into table_name values (AAA, BBB, CCC)
  • 57. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:insertされたauto_increment値の取得 方法
  • 58. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:last_insert_id();
  • 59. Copyright © 2013 TriFort, Inc. All Rights Reserved. 質問:selectの結果で重複している行を除外する
  • 60. Copyright © 2013 TriFort, Inc. All Rights Reserved. 答え:DISTINCT select distinct AAA from table_name
  • 61. Copyright © 2013 TriFort, Inc. All Rights Reserved. 勉強会は以上になります。 ご清聴ありがとうございました。