<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ハセテツラボ &#187; MySQL</title>
	<atom:link href="http://tt-house.com/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://tt-house.com</link>
	<description>生涯一開発屋</description>
	<lastBuildDate>Fri, 03 Sep 2010 14:01:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>DjangoでDatetimeのフィールドを年月でGroupByして集計する方法</title>
		<link>http://tt-house.com/2010/07/django-annotate-groupby.html</link>
		<comments>http://tt-house.com/2010/07/django-annotate-groupby.html#comments</comments>
		<pubDate>Thu, 29 Jul 2010 02:53:25 +0000</pubDate>
		<dc:creator>ハセテツ</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://tt-house.com/?p=328</guid>
		<description><![CDATA[以前のエントリーで集計クエリを利用する方法を説明しましたが、それだとDatetimeのフィールドを「年月」ごとに、っていう集計はできませんでした。購買履歴データを月別に件数集計したいときなんかは非常に困るんですよね。ので、それを解決する方法です。 select_column = {&#8220;d_column&#8221;:  &#8221;DATE_FORMAT(pub_date, &#8216;%%Y%%m&#8217;)&#8221;} _list = PurchaseRecord.objects.extra(select=select_column) _list = _list.values(&#8220;d_column&#8221;).annotate(cnt=Count(&#8216;id&#8217;)) 上記はMySQLを利用しているケースの書き方です。 あ、横長になると見難いから2行に分けただけで、1行で大丈夫ですからね。 「ORマッパー使ってるのにデータベースに依存ってなによ」 な感じではありますが、extraを使っている部分は直接クエリが流れるみたいですね。 つまり、「DATE_FORMAT(pub_date, &#8216;%%Y%%m&#8217;)」の部分は select *,DATE_FORMAT(pub_date, &#8216;%Y%m&#8217;) as d_column from app_purchaserecord といった風に、追加されるのです。で、追加されたカラムを使って集計、という流れですね。うっかりミスりやすいのが「%」を二つにする点でしょうか。 あと、データベースを変えたら「select_column～」の部分に修正が必要です。使用するデータベースに依存した書き方になります。ここは要注意ですね。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2010%252F07%252Fdjango-annotate-groupby.html%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Faztedn%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Django%E3%81%A7Datetime%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E5%B9%B4%E6%9C%88%E3%81%A7GroupBy%E3%81%97%E3%81%A6%E9%9B%86%E8%A8%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%22%20%7D);"></div>
<p><a title="Djangoで集計クエリ（1.1以降でannotateを使用）" href="http://tt-house.com/2010/04/django-query-annotate.html" target="_blank">以前のエントリーで集計クエリを利用する方法を説明</a>しましたが、それだとDatetimeのフィールドを「年月」ごとに、っていう集計はできませんでした。購買履歴データを月別に件数集計したいときなんかは非常に困るんですよね。ので、それを解決する方法です。</p>
<blockquote>
<div id="_mcePaste">select_column = {&#8220;d_column&#8221;:  &#8221;DATE_FORMAT(pub_date, &#8216;%%Y%%m&#8217;)&#8221;}</div>
<div id="_mcePaste">_list = PurchaseRecord.objects.extra(select=select_column)<br />
_list = _list.values(&#8220;d_column&#8221;).annotate(cnt=Count(&#8216;id&#8217;))</div>
</blockquote>
<p>上記はMySQLを利用しているケースの書き方です。</p>
<p>あ、横長になると見難いから2行に分けただけで、1行で大丈夫ですからね。</p>
<p>「ORマッパー使ってるのにデータベースに依存ってなによ」</p>
<p>な感じではありますが、extraを使っている部分は直接クエリが流れるみたいですね。<br />
つまり、「<span style="font-size: 13.2px;">DATE_FORMAT(pub_date, &#8216;%%Y%%m&#8217;)</span><span style="font-size: 13.2px;">」の部分は</span></p>
<blockquote>
<div><span style="font-size: 13.2px;">select *,</span><span style="font-size: 13.2px;">DATE_FORMAT(pub_date, &#8216;%Y%m&#8217;) as d_column<br />
from app_purchaserecord </span></div>
</blockquote>
<p>といった風に、追加されるのです。で、追加されたカラムを使って集計、という流れですね。うっかりミスりやすいのが「%」を二つにする点でしょうか。</p>
<p>あと、データベースを変えたら「select_column～」の部分に修正が必要です。使用するデータベースに依存した書き方になります。ここは要注意ですね。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2010/07/django-annotate-groupby.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DjangoでMySQLのストレージエンジンをInnoDBにする</title>
		<link>http://tt-house.com/2010/07/django-using-innodb.html</link>
		<comments>http://tt-house.com/2010/07/django-using-innodb.html#comments</comments>
		<pubDate>Tue, 27 Jul 2010 02:12:30 +0000</pubDate>
		<dc:creator>ハセテツ</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://tt-house.com/?p=324</guid>
		<description><![CDATA[DjangoでMySQLを利用する場合、初期状態だとMyISAMでテーブルが作成されます。まぁ後からalterすればよい話ではあるのですが、なんかそれだと違うかなぁと。 一昔前はInnoDBはMyISAMほどパフォーマンスが優れず、更新系のテーブルと参照系のテーブルでストレージエンジンを使い分けたものですが、今はストレージエンジンによるパフォーマンスの差も少ないため、行レベルロックができるInnoDBを積極的に採用するケースが増えてるみたいですね。まぁ数千万行をレコードから数ミリ秒でレスポンスを返さないといけないケースとかではどうなるのかわかりませんが。 DATABASE_OPTIONS = { &#8220;init_command&#8221;: &#8220;SET storage_engine=INNODB&#8221;, } settings.pyに上記を記載するだけでsyncdbするときにInnoDBでテーブル作成してくれます。が、この記述はテーブル作成が終わって運用にはいったら削除するように、とのことです。 MySQLとの接続が確立された後にわざわざストレージエンジンを指定するコマンドを送っているっぽいので、普段は無駄な処理が発生しちゃうっていうことなんですかね。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2010%252F07%252Fdjango-using-innodb.html%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FcyuL5I%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Django%E3%81%A7MySQL%E3%81%AE%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E3%82%92InnoDB%E3%81%AB%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>DjangoでMySQLを利用する場合、初期状態だとMyISAMでテーブルが作成されます。まぁ後からalterすればよい話ではあるのですが、なんかそれだと違うかなぁと。</p>
<p>一昔前はInnoDBはMyISAMほどパフォーマンスが優れず、更新系のテーブルと参照系のテーブルでストレージエンジンを使い分けたものですが、今はストレージエンジンによるパフォーマンスの差も少ないため、行レベルロックができるInnoDBを積極的に採用するケースが増えてるみたいですね。まぁ数千万行をレコードから数ミリ秒でレスポンスを返さないといけないケースとかではどうなるのかわかりませんが。</p>
<blockquote>
<div id="_mcePaste">DATABASE_OPTIONS = {</div>
<div id="_mcePaste" style="padding-left: 30px;">&#8220;init_command&#8221;: &#8220;SET storage_engine=INNODB&#8221;,</div>
<div id="_mcePaste">}</div>
</blockquote>
<p>settings.pyに上記を記載するだけでsyncdbするときにInnoDBでテーブル作成してくれます。が、この記述はテーブル作成が終わって運用にはいったら削除するように、とのことです。</p>
<p>MySQLとの接続が確立された後にわざわざストレージエンジンを指定するコマンドを送っているっぽいので、普段は無駄な処理が発生しちゃうっていうことなんですかね。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2010/07/django-using-innodb.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressのチューニングをしてみようかと思った</title>
		<link>http://tt-house.com/2009/12/wordpress-performance.html</link>
		<comments>http://tt-house.com/2009/12/wordpress-performance.html#comments</comments>
		<pubDate>Wed, 30 Dec 2009 13:55:26 +0000</pubDate>
		<dc:creator>ハセテツ</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tt-house.com/?p=150</guid>
		<description><![CDATA[ApacheBenchでこのブログのパフォーマンスを計測したら、
Requests per second:    9.94[#/sec]
という、思っていたより残念な結果でした。うーん、思っていたより低いなぁ。。。
]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F12%252Fwordpress-performance.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WordPress%E3%81%AE%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%81%8B%E3%81%A8%E6%80%9D%E3%81%A3%E3%81%9F%22%20%7D);"></div>
<p>ApacheBenchでこのブログのパフォーマンスを計測したら、</p>
<blockquote><p>Requests per second:    9.94[#/sec]</p></blockquote>
<p>という、思っていたより残念な結果でした。うーん、思っていたより低いなぁ。。。</p>
<p>で、とりあえずmysql_connectをmysql_pconnectに変えてみたのですが。</p>
<blockquote><p>Requests per second:    10.01 [#/sec]</p></blockquote>
<p>と、大して変わらず。。。</p>
<p>めんどくさいけど、ApacheとMySQLの設定から見直そう。PHPをDSOで使ってるのも影響してるのかなぁ。。。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/12/wordpress-performance.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PythonからMySQLに接続</title>
		<link>http://tt-house.com/2009/12/python-mysql.html</link>
		<comments>http://tt-house.com/2009/12/python-mysql.html#comments</comments>
		<pubDate>Tue, 01 Dec 2009 17:55:34 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=119</guid>
		<description><![CDATA[#!/usr/bin/python import MySQLdbconn = ...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F12%252Fpython-mysql.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Python%E3%81%8B%E3%82%89MySQL%E3%81%AB%E6%8E%A5%E7%B6%9A%22%20%7D);"></div>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>#!/usr/bin/python</p>
<p>import MySQLdb<br />conn = MySQLdb.connect(db=&#8221;DB名&#8221;, host=&#8221;ホスト名&#8221;, user=&#8221;ユーザ名&#8221;, passwd=&#8221;パスワード&#8221;)</p>
<p>cur = conn.cursor()<br />query = &#8220;select * from hoge&#8221;<br />cur.execute(query)</p>
<p>result = cur.fetchall()<br />cur.close()<br />con.close()</p>
<p>for row in result:<br />&nbsp;&nbsp;&nbsp; print row[0]</p>
</blockquote>
<p dir="ltr">PythonでもMySQLにつなげてみました。事前にMySQL-Pythonがインストールされていることが条件です。Windowsならexeがあるし、Linuxならeasy_installを使えば便利かと。</p>
<p dir="ltr">ハセテツの例では、事前に結果セットを取得して、それをループしています。これとは別にカーソルを使ってMySQLから順に取得していく方法もあります。</p>
<p dir="ltr">個人的に、いつまでもDBにつないでおきたくなかったのでこちらの手法をとっています。まぁメモリ消費しちゃうじゃんかというデメリットもありますが。</p>
<p dir="ltr">お好きな手法で実装していただければと思います。</p>
<p dir="ltr">&nbsp;</p>
<p dir="ltr">&nbsp;</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/12/python-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQLで日付の差分を取得する</title>
		<link>http://tt-house.com/2009/09/mysql_timestampdiff.html</link>
		<comments>http://tt-house.com/2009/09/mysql_timestampdiff.html#comments</comments>
		<pubDate>Fri, 18 Sep 2009 13:42:23 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=112</guid>
		<description><![CDATA[timestampdiff(day, from_date, till_date)...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F09%252Fmysql_timestampdiff.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22MySQL%E3%81%A7%E6%97%A5%E4%BB%98%E3%81%AE%E5%B7%AE%E5%88%86%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%22%20%7D);"></div>
<blockquote><p>timestampdiff(day, from_date, till_date)</p></blockquote>
<p>これだけです。<br />第一引数は「month」、「year」で月、年の差も取れます。第二第三引数はtimestampじゃなくてもいいです。まぁTime型だとダメなんだろうけど、Date型だったらちゃんと差分が取得できました。</p>
<p>「登録から～日の情報」みたいな取得の仕方をすることが多いので、こういう関数は使用頻度が高いです。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/09/mysql_timestampdiff.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPでMySQLのload data infileを実行する</title>
		<link>http://tt-house.com/2009/08/phpmysqlload_data_infile.html</link>
		<comments>http://tt-house.com/2009/08/phpmysqlload_data_infile.html#comments</comments>
		<pubDate>Thu, 20 Aug 2009 16:03:27 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=109</guid>
		<description><![CDATA[クエリで load data local infile 'ファイルパス' int...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F08%252Fphpmysqlload_data_infile.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%E3%81%A7MySQL%E3%81%AEload%20data%20infile%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>クエリで</p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>load data local infile &#8216;ファイルパス&#8217; into table テーブル名;</p>
</blockquote>
<p>を実行するだけなのですが、「local」をつけないと動いてくれなかったのでメモ。SSHでログインしていたときは「load data infile」だけでインポートできていたので、気がつかずに苦労しました。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/08/phpmysqlload_data_infile.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RubyでMySQLに接続</title>
		<link>http://tt-house.com/2009/03/ruby-to-mysql.html</link>
		<comments>http://tt-house.com/2009/03/ruby-to-mysql.html#comments</comments>
		<pubDate>Thu, 12 Mar 2009 11:43:58 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=88</guid>
		<description><![CDATA[MySQL/Ruby と Ruby/MySQL の二つがあるようです。どっちがど...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F03%252Fruby-to-mysql.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Ruby%E3%81%A7MySQL%E3%81%AB%E6%8E%A5%E7%B6%9A%22%20%7D);"></div>
<p>MySQL/Ruby と Ruby/MySQL の二つがあるようです。どっちがどっちか混乱しましたが、MySQL/Rubyがgemでとってこれて、Cで書かれたAPIのようです。Ruby/MySQL はRubyで書かれているようで、比較的低速らしいです。今回はMySQL/Rubyを利用しました。</p>
<p>gem install mysql</p>
<p>で一式インストールできます。PHPのPEARやRubyのgemは、一度つかったらやめられません。これは堕落なのでしょうか。</p>
<p>で、今回はWindows上にMySQL5.0をインストールしてつないでみたのですが、バリバリ文字化けました。DBはUTF8で作ってあって、ソースも以下のようにUTF8であることを明記していました。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>require &#8216;rubygems&#8217;<br />
require &#8220;mysql&#8221;<br />
require &#8216;iconv&#8217;</p>
<p>$KCODE = &#8216;UTF-8&#8242;</p>
<p>db = Mysql::connect(&#8220;ホスト名&#8221;, &#8220;ユーザ名&#8221;, &#8220;パスワード&#8221;, &#8220;DB名称&#8221;)<br />
rs = db.query &#8216;クエリ&#8217;<br />
rs.each do |item|<br />
  p item[0]<br />
end</p></blockquote>
<p dir="ltr">なんでなんで？と調べていたら、my.ini（あー、iniってあたりがWindowsだなー、Linuxだとmy.cnfだったかな？）の[mysqld]に</p>
<blockquote style="margin-right: 0px;" dir="ltr">
<p dir="ltr">default-character-set=utf8<br />
skip-character-set-client-handshake</p>
</blockquote>
<p dir="ltr">の追記が必要らしい。これはクライアントからの接続時に「文字コードはUTF8でっせ」とデフォルトで設定してあげるためのものらしいです。「set names utf8」と同じ意味ですね。これで文字化けずにWindows上でRubyとMySQLを利用することが出来るようになりました。</p>
<p dir="ltr">これまではC#とSQL Serverで統計とか集計のプログラム書いてたけど、Rubyの方がラクチンなんですよね。Railsばっかり注目されてますけど、Rubyは便利ですよ。</p>
<p dir="ltr"> </p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/03/ruby-to-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQLで複数のテーブルを外部結合</title>
		<link>http://tt-house.com/2008/11/mysql-join-table.html</link>
		<comments>http://tt-house.com/2008/11/mysql-join-table.html#comments</comments>
		<pubDate>Thu, 20 Nov 2008 13:42:39 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=74</guid>
		<description><![CDATA[ネストしてもいいのですが、可読性が悪かったりパフォーマンスが悪くなったり。 se...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2008%252F11%252Fmysql-join-table.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22MySQL%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E5%A4%96%E9%83%A8%E7%B5%90%E5%90%88%22%20%7D);"></div>
<p>ネストしてもいいのですが、可読性が悪かったりパフォーマンスが悪くなったり。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>select * from table_0 i<br />
left join table_1 j on i.id = j.id<br />
left join table_2 k on i.id = k.id</p></blockquote>
<p>つまり、「table_0に対してtable_1とtable_2を結合しまっせ。」ということです。ネストしてないのでとっても読みやすいです。パフォーマンスも、よい気がします（計測しろよというご指摘はごもっともです）。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2008/11/mysql-join-table.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQLでストアドプロシージャを使う</title>
		<link>http://tt-house.com/2008/11/procedure-on-mysql.html</link>
		<comments>http://tt-house.com/2008/11/procedure-on-mysql.html#comments</comments>
		<pubDate>Thu, 13 Nov 2008 17:11:36 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=73</guid>
		<description><![CDATA[MySQLでトリガーを使う の続きといいますか、おんなじような内容なのですけが、...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2008%252F11%252Fprocedure-on-mysql.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22MySQL%E3%81%A7%E3%82%B9%E3%83%88%E3%82%A2%E3%83%89%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3%E3%82%92%E4%BD%BF%E3%81%86%22%20%7D);"></div>
<p><a href="http://www.tt-house.com/2008/10/trigger-on-mysqlhtml.html">MySQLでトリガーを使う</a></p>
<p>の続きといいますか、おんなじような内容なのですけが、ストアドの使い方です。これもいたって簡単です。</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>delimiter //<br />create procedure ストアド名(in 引数名 データ型)<br />begin<br /><small>実行する処理、引数はそのままの名前で使える</small><br />end;<br />//<br />delimiter ;</p>
</blockquote>
<p>大量の更新処理なんかには便利でしょう。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2008/11/procedure-on-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQLでのバックアップとリストア</title>
		<link>http://tt-house.com/2008/11/mysql-backup-restore.html</link>
		<comments>http://tt-house.com/2008/11/mysql-backup-restore.html#comments</comments>
		<pubDate>Mon, 03 Nov 2008 21:29:57 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=71</guid>
		<description><![CDATA[MySQL5.xでのお話です。バックアップは mysqldump -u root...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2008%252F11%252Fmysql-backup-restore.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22MySQL%E3%81%A7%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%A8%E3%83%AA%E3%82%B9%E3%83%88%E3%82%A2%22%20%7D);"></div>
<p>MySQL5.xでのお話です。バックアップは</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>mysqldump -u root &#8211;password=xxxxxxxx データベース名 &gt; 保存先パス</p></blockquote>
<p>保存先はMySQLが書き込める権限を持っている必要があるみたいです。mysqldumpを実行するユーザが書き込めればいいのかなぁ。今度検証しておこう。</p>
<p>リストアは簡単です。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>mysql -u root &#8211;password=xxxxxxxx データベース名 &lt; バックアップファイル</p></blockquote>
<p>バックアップって言っても、バイナリじゃなくてDDLとDMLがぎっしり書かれたテキストファイルなので、リストアするのも「このファイルに書かれた大量のSQLをこのデータベースに実行しよう」ってイメージですね。</p>
<p>そういえばmysqldump実行中って、書き込み制御してくれるのかなぁ。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2008/11/mysql-backup-restore.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
