月別アーカイブ: 2018年5月

  • インデックスを使用してデータベースの検索速度を高める

  • 2018/05/14
  • Category:
  • データベースのパフォーマンスを考える上で、本でいう目次に相当する機能であるインデックスを適切に設定することは重要です。
    インデックスはデータベースの検索速度に大きく影響し、引いてはWebサービスの快適さに直結します。
    今記事ではインデックスについて整理してみましょう。

    インデックスのメリットデメリット

    先ほども記述しましたが、インデックス機能を使うメリットは検索速度の向上です。
    使いかたによっては10倍以上も速度向上が見こめるため、適切なインデックスの使用は必須と言えるでしょう。

    逆に、デメリットもあります。
    インデックスはINSERT, UPDATE, DELETEを実施するたびに再生成されます。
    そのため、変更の多いテーブルにインデックスを作ると、逆に動作速度が低下することもあります。
    また、巨大なテーブルにインデックスを作ると、インデックスのファイルサイズが大きくなるという問題もあります。

    インデックスをどこに使うか?

    実際にインデックスを設置するには、どのようにすれば良いでしょうか?
    もちろんデータベースのテーブル構造ごとに異なりますが、おおまかな指針を考えてみます。

    01.WHERE句
    インデックスは検索速度を向上させるため、実際にWHERE句に使うカラムに設定すると効率化が見込めます。
    ただし、データ量が多く変更が多いカラムの場合は、インデックスの再生成が何度も実施されてしまうため、かえってパフォーマンス低下の怖れがあります。

    02.結合条件
    これは上記WHERE句と同様に、絞り込みを行う条件であるため、インデックスを効果的に使用できるためとなります。

    03.カラムの値の種類が多い
    区分などで0か1など、条件しかデータがない場合は、インデックスは効果を発揮しません。
    名前など、データが複数あるもののほうがインデックスを使用するものとしては望ましいものとなります。

    まとめ

    データベースの速度はサービスの快適さに直結します。
    ユーザに使いやすいサービスを提供するため、常に速度を意識したデータベースを構築しましょう。

    ●Wantedly掲載情報(本当にやりたいことに辿り着きたい技術大好きエンジニア募集!)

    ●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)

    ●Wantedly掲載情報(Angular/Reactを極めたいフロントエンジニア大募集!!)

Pocket

  • システム開発での作業効率化に必要不可欠な定義ジャンプ(tags、language-server)

  • 2018/05/11
  • Category:
  • 大規模なシステム開発をしていると、そこそこの頻度で使用するコマンドがあるかと思います。
    そのなかでも今回は、定義ジャンプを紹介します。

    定義ジャンプとは


    コーディングをしていると、メソッドの内容や使用時に必要な引数がどのようになっているか思い出せないことが発生します。
    そのとき、都度メソッドがどのファイルのどこに記述されているかを探すのは手間となってしまうでしょう。
    そんなとき、定義ジャンプ機能があれば簡単にメソッドなどの定義先に移動して、内容を確認することができます。

    EclipseやといったIDEや、Atomなどのモダンエディタであれば大半の言語で実行可能な標準機能となりますが、歴史的なおさらいも兼ねて今までのやりかたも紹介してみたいと思います。

    検索を容易とするインデックスを作成するtags


    tagsとはメソッドや変数などの定義箇所のインデックスを作成するためのプログラムです。
    そのなかでも複数の言語に対応したctagsが有名(Google検索でたくさんヒットする)なので紹介します。
    以下のようなコマンドを実行すると、tagsというインデックスファイルが生成されます。

    ctags -R –languages=PHP –langmap=PHP:.php.inc –php-types=c+f+d -f ~/tags

    生成したファイルを読み取り、定義ジャンプを実現します。
    元々がUnixプログラムである関係上、vimやemacsなどのCUIエディタで実行可能でしたが、近年はwindowsでも秀丸エディタなどで対応しています。

    プログラムを解析して情報を提供するlanguage-server


    tagsを使ってインデックスを作成する方式は、安定しているとはいえ古いやりかたなのは否めません。
    そこで、MicrosoftがVisual studioとは対照的に、軽量なモダンエディタとして発表したVisual Studio Code(以下VSCode)ではどのように実現しているのかを紹介します。

    2016年にMicrosoftはlanguage server protocolという仕様を公開しました。
    これはプログラムを解析してコード補完、変数やメソッドの定義参照、コードのエラーチェックなどの機能を統一的に提供するプロトコルになります。

    機能ではなくプロトコル(規約)であるところがポイントで、プロトコルの形式を守ればどのようなエディタであっても同じ定義ジャンプ機能を実装可能となります。
    実際にはVSCodeで使われていますが、vimやEmacsでもlanguage-serverを使用した言語ごとのプラグインが各種公開されており、ctagsなしでの定義ジャンプが可能となuものがあります。

    まとめ

    昔ながらのctagsを使用する例は減りましたが、VSCodeなどモダンエディタが使えない環境においてはまだまだ現役です。
    既存のコードを検索する時間をtagsやlanguage-serverでなくして、新しいコードを書くことに集中できるようにしましょう!

Pocket

Pocket

  • CPR STUDIOでは現在2018年10月末までレコーディング、ミックスダウン、マスタリング、アレンジ、楽曲制作のご予約、ご依頼を承っております。

  • 2018/05/09
  • Category:
  • CPR STUDIOでは現在2018年10月末までレコーディング、ミックスダウン、マスタリング、アレンジ、楽曲制作のご予約、ご依頼を承っております。

    2018/5/31まで初回限定レコーディングパック【6時間20000円、8時間25000円】を実施しております。

    レコーディング、ミックスダウン、マスタリングからアレンジから同期制作まで幅広く対応出来ます。(レコーディングのみ、ミックスダウンのみのご利用も可能)

    コストパフォーマンスに優れたレコーディングスタジオ


    CPR STUDIOは山手線田端駅から徒歩2分とアクセスの良い立地で、レコーディングからミックスダウン、マスタリングまで行えるレコーディングスタジオです。

    コントロールルームは14帖の広さを確保し5名程度であれば余裕のあるスペースで入室可能で、モニタースピーカー2種類とオーディオコンポで様々な角度のリスニング環境で確認が行えます。
    電源はレコーディング専用に200Vを引き回し、ダウントランス・アイソレーショントランスにて濃密でクリーンな115Vと100Vに変換しており、各機材のパフォーマンスを最大限に引き出しています。
    スタジオ5分圏内にはコンビニエンスストアやカフェもあり、スタジオ内には高速度Wi-Fiをご用意しておりますのでPCやスマートフォンも快適に繋がりますので、作業の合間のリフレッシュも気軽に行えます。

    レコーディングブースは13帖の広さがあり2バスセットもセッティング可能で、各種吸音材を常設しているのでデッドサウンドからライブサウンドまでコントール可能です。
    マイクからHAまで直接結線しているのでロスのないサウンドで収録できます。

    ビンテージ機種から最新機種まで揃えるレコーディング機材


    DAWには商用スタジオ標準のPro Toolsの最新版のPro Tools Ultimateを導入し最先端サウンドと時間帯効率の高い作業フローを実現、大手商用スタジオ同様のマイクやアウトボードを使用しているので録り音の段階から納得されるお客様が多いです。
    ギターアンプ7種類、ベースアンプ3種類、ドラムセットをご用意しているので機材をお持ちでなくてもリハーサルスタジオ感覚でレコーディングが行えます。(機材ページ参照)

    ミックスダウン、マスタリングに欠かせないプラグインはWaves Mercury、UAD-2 Ultimate、McDSP、SoundToys、Softube等の定番メーカーは勿論、Slate Digital、iZotope、Soundtheory等の新鋭メーカーまで200種類以上のプラグインをご用意しており、お好みの音作りに向けて更にブラッシュアップします。
    またPro Tools内部でのミックスダウンだけではなく、サミングミキサーやコンプレッサー等のアナログアウトボードを併用する事で、暖かみのあるサウンドと各パーツの馴染みの良さでご好評を頂いております。

    まとめ


    夏リリースに向けてのレコーディング、ミックスダウン、マスタリングも可能となっておりますのでご検討中の方からのご連絡をお待ちしております。

    レコーディング前のスタジオ見学やお打ち合わせも行っており、事前に電話(03-5809-0419)、メール(info@cpr-inc.jp)またはお問い合わせフォームよりご連絡頂ければ、対応可能な日程を連絡させて頂きます。

    高音質とリーズナブルを両立させたCPR STUDIOはこちら

Pocket