こんにちは、鈴木です。 Rails で SELECT するカラムを追加する scope を定義する方法をご紹介します。 やりたいこと SELECT するカラムを指定するには、以下のように select メソッドを使用します。
こんにちは、鈴木です。 Rails で SELECT するカラムを追加する scope を定義する方法をご紹介します。 やりたいこと SELECT するカラムを指定するには、以下のように select メソッドを使用します。
MySQLMySQLの複合インデックスについて。MySQLを使いこなしている人には常識の範疇にはいる知識だと思うのですが、かつての私のように、知らないとドツボにはまるので、ここにまとめておきます。タイトルでどういう内容か、もしかしたら大体、想像がつくかなと思うのですが、MySQLは1つのクエリーで1つのテーブルに対し、1つのインデックスしか機能しないということです。ようするに、あるテーブルに対して、普通に大量のインデックスを張ってもあまり意味がありません。そこで、今回は、最適な複合インデックスはどのようにしてはることができるか考えていこうじゃないか、という趣旨で書いていきたいと思います。まずは分析。テスト環境でインデックスが使われていないSQLを集めるまずは、/etc/my.cnfのパラメータを以下のように設定し、インデックスが使われていないSQLをスロークエリーに吐き出します。 slow
ちょっと遅れましたが、シリーズの第3回です。前回までに論じた内容をふまえて、簡単な実装を示します。↓前回までの内容はこちら。 DAOの悪夢 - PHPでデータベースを扱う(1) - 泥のように ドメイン駆動設計という救世主 - PHPでデータベースを扱う(2) - 泥のように 題材 「記事にタグを設定できるブログ」みたいなシステムを考えてみます。ブログ記事を示すEntryテーブル、タグを表すTagテーブルの二つを用意しました。MySQL WorkbenchによるER図(鳥足記法)は以下になります。 1つのEntryに対して複数のTagがある、1対多の関係です。同じTagが複数のEntryに関連するため、多対多の関係と見なすこともできそうですが、タグ程度だとあまり意味がないので、これ以上のテーブル分割はやめておきます。 Entryテーブルの主キーがentryIdと冗長な名前をしているのは、自
MySQL スレーブで SQL スレッドが停止した場合の対処方法 提供:maruko2 Note. 移動: 案内, 検索 MySQL スレーブで SQL スレッドが停止(Slave_SQL_Running: No)した場合、次のような対処方法がある。 mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event 省略 Relay_Log_Pos: 13550246 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: No 省略 Last_Errno: 1062 Last
皆さん、ご無沙汰しております。 パソコン周辺機器にお金をかけはじめている笹亀です。 エンジニアはパソコンが商売道具なので、 やはり使いやすい物を使いたくなるのは自然な事ですね。 ご参考までに。。。 マウス :Logicool MX Revolution(ビックカメラでポイントで購入 キーボード:Bluetooth Mac用キーボード(会社の人から売ってもらいましたw 今回はTriggerについてご紹介したいとおもいます。 Triggerとは、データの変更などのイベントによってあらかじめ指定した処理を自動的に実行する機能です。 最近使用しているデータベースには必ず備えてある機能です。 Oracle,Postgres,MySQLでも当たり前のようにあります。 実際にはどのようなときに使用するものなのでしょうか? ・特定のテーブルに対しての処理のログをとるため ・特定のテーブルのバックアップを
ページングでSelect結果の一部のデータをしたいとき、PostgreSQLやMySQLで使用できるLimit句はとても便利。たとえばSelect結果の10から14番目までを取得するにはselect * from emp where Limit 10,5でもOracleではLimit句は使えない... ということでOracleではROWNUMを使用してやってみる。(Oracle10g Windows版で検証) ところがこのROWNUMは一筋縄ではいかないのであった。 Order By 句を使って並べ替えをすると、ROWNUMが...select rownum rn ,t.住所コード ,t.市区町村名 ,t.住所1 ,t.住所2 from tb_住所マスタ t order by 住所2;結果 RN住所コード市区町村名住所1住所2
年齢を計算する(暦年齢) 満年齢 一般的な年齢 生まれた年は 0歳 として翌年の誕生日に年齢 +1 する。 民法など特定の状況で使用される年齢 生まれた年は 0歳 として翌年の誕生日の前日に年齢 +1 する。 入学資格や一部の法令には月末における年齢を条件にしていることが多い。1日生まれの人は前の月末には 年齢が加算されていることになっているので 1日生まれの人は行政サービス(就学、年金や所得税など)を受けるときには要注意。(「但し書き」もされているらしい) 数え年 生まれた年は 1歳 として翌年からは 1月1日を誕生日とする。 つまり 数え年 = 計算したい年 - 誕生した年 + 1 。 儀礼などには数え年が使われているようである。 七五三や還暦(数え年で 61歳)や喜寿(数え年で 77歳)、厄除け、厄払いなどに使われる。 YEARS_OF_AGE ファンクション (誕生日から年齢を算出
EXTRACT 関数の内容 指定した日時フィールドの値を取り出す。 DATE 値からは YEAR、MONTH および DAY のみを抽出でき、TIMESTAMP 値からは SECOND まで取得が可能。(TIMEZONE_HOURとTIMEZONE_MINUTE は TIMESTAMP WITH TIME ZONE 値からのみ) DATE 型から HOUR を抽出すると ORA-30076: 抽出ソースの抽出フィールドが無効です が発生する。 ANSI では DATE 値は日にちまでと定義されているために発生する現象である。(ANSI-SQL92 のデータタイプは DATE, TIME, TIMESTAMP) EXTRACT 使用例 SQL> select dt, EXTRACT(YEAR FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(DAY FROM
CASE 式 と CASE 文 の違い SQL は CASE 式 のみで CASE 文 は記述できない。 CASE 文は PL/SQL で記述するステートメントである。 CASE 式 : 条件毎のセミコロンがなく、CASE の最後は END で終了するファンクションのようなものである。当然であるが式なので評価や代入文にも使用できる。 CASE 文 : 複数のステートメントから構成される。構文の違いは以下参照 単純 CASE (simple case) の書き方の違い CASE 式 - CASE で始まり END で終了する。 expr と comparison_expr を比較し真偽判定をする。 CASE expr -- CASE 式 WHEN comparison_expr1 THEN ret_expr1 -- 式や値を記述する WHEN comparison_expr2 THEN
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
1.ハッシュへ値を代入 ハッシュ変数は、配列のインデックスが文字列となったもので、このインデックスを『キー』と呼びます。ハッシュの場合は要素の値がキーによって管理されます。 ハッシュの宣言 ハッシュへ値を代入 ハッシュの宣言 ハッシュを宣言するときは変数名の前にパーセント( % )を付けます。 %hash; ハッシュへ値を代入 配列では、[ ] でインデックスを囲みましたが、ハッシュは、 { }でキーを囲みます。例えば社員の名前とメールアドレスを管理する場合、次のような方法でハッシュを使った管理ができます。 $hash{'Akai'} = 'akai@domain.com'; $hash{'Ishikawa'} = 'ishi@domain.com'; $hash{'Ueda'} = 'ueda@domain.com'; 複数の値を一度にハッシュへ代入するには、キー、値の順番で記述します。
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前回「表の結合を極めるチューニング・テクニック」では、絞り込み条件がない結合を含むSQL、絞り込み条件のある結合を含むSQLについて実例を基に最適な結合方法を説明しました。 今回は、Oracleの機能である「マテリアライズド・ビュー」「BITMAP JOIN INDEX」「クラスタ」を利用した結合処理に関するチューニング・テクニックについて説明します。 マテリアライズド・ビューを理解する 結合処理な
リフレッシュ方法を指定しない場合はforceになる。 後からリフレッシュ方法を変えることも出来る。 SQL> alter materialized view MV_TEST refresh fast; マテリアライズド・ビューが変更されました。 完全リフレッシュ マテビューを計算し直す際に、全データを作り直す。データの変更箇所が少ないなら効率は悪いことになるが、ロジックは一番単純だ。 完全リフレッシュのマテビューを作る際には、「refresh complete」を指定する。個人的には「refresh all」の方が分かり易かったと思うけど…わたしゃ英語圏の人間じゃないからな~ create materialized view MV_TEST refresh complete as select YYMM_GROUP, SHOP_CODE, sum(AMOUNT) SUM_AMOUNT fr
【お知らせ】 @IT自分戦略研究所 編集部です。 2010年5月28日、『ベンチャー社長で技術者で』を執筆する生島勘富氏を、エンジニアライフ コラムニストより除名いたしました。 今回の件について、多くの読者から問い合わせをいただきました。今回の処置について、生島氏には了承いただきましたが、「これまで行ってきた議論のまとめはしっかり行いたい」と、最終原稿掲載の依頼を受けました。 編集部で協議した結果、掲載すべきであると判断し、下記に生島氏より受領した最終原稿を掲載します。なお、この内容は@IT自分戦略研究所の見解・意向を示すものではありません。 こちらで書いている文章は仕様書ではありません。過去をたどれる形で書かれていて、わたしの主張は常に一貫しています。ただでさえ長い文章に毎回毎回、前提条件は書けません。 が、とりあえずの前提は「業務系の仕事」です。SQLを他の言語と比べているのは、SQL
MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a
スポンサード リンク 例1) 表「emp」のSELECT結果を、カンマ','区切りのCSVファイルを「c\tmp\emp.csv」に出力します。 SQL> set echo off SQL> set linesize 1000 SQL> set pagesize 0 SQL> set trimspool on SQL> set feedback off SQL> set colsep ',' SQL> spool c:\temp\emp.csv SQL> select * from emp; E01,D01,名字1 ,名前1 , 10 E02,D01,名字2 ,名前2 , 50 E03,D02,名字3 ,名前3 , 100 SQL> spool off
Photo by shindotv ここ最近、海外のブログで「NoSQL」という単語をちょこちょこと見るようになりました。 これは新しいデータベースのムーブメントで、「SQL=リレーショナル」ではないデータベースの事を指しています。 NoSQL DBサーバの有名な物は、Facebookがリリースした「Cassandra」、Erlangで書かれた「CouchDB」、日本からは、mixiがリリースしている「TokyoTyrant」があります。 またGoogle App Engineでは、DataStoreというBigTableベースのNoSQLサービスが提供されています。 ある程度ユーザを集めたコンシューマ向けサービスは、大抵の場合パフォーマンスとの戦いとなります。 技術誌の中でも「スケールアウト技法」的な記事を目にすることが増えてきたことからも、多くのサイト運営者が、パフォーマンスの問題を抱
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く