タグ

ブックマーク / gihyo.jp (41)

  • 第29回 LOAD DATA INFILE構文でテキストファイルからMySQLにデータをロードする | gihyo.jp

    初期データを投入する際に、mysqldumpで出力した際に作られるようなSQLの形式になっている場合は、mysqlクライアントで実行することでロードすることができました。しかし、外部で用意されているデータはTSVやCSVといったデータで渡されることもあります。TSVやCSVの形式からSQLへ変換を行っても良いのですが、わざわざ変換するのも大変です。そこで今回は、LOAD DATA INFILE構文を用いてTSVやCSVといったテキストファイルからMySQLにデータをロードする方法を紹介したいと思います。 検証環境 今回は第23回 mysqlslapを使って負荷テストをしてみようで使用したCentOS7で実行しています。MySQLのバージョンは5.7.13を使用しています。 LOAD DATA INFILE構文 LOAD DATA INFILE構文とは、テキストファイルで用意されたデータをM

    第29回 LOAD DATA INFILE構文でテキストファイルからMySQLにデータをロードする | gihyo.jp
  • プロダクト思考で開発が進む「みてね」の今とこれから~みてねの生みの親笠原健治氏、開発マネージャ酒井篤氏が考える、プロダクトとエンジニアリングの素敵な関係 | gihyo.jp

    プロダクト思考で開発が進む「みてね」の今とこれから~みてねの生みの親笠原健治氏、開発マネージャ酒井篤氏が考える、プロダクトとエンジニアリングの素敵な関係 リリースから5年が経ち、800万ユーザを超えた家族向け写真・動画共有アプリ「家族アルバム みてね⁠」⁠。 今回、プロダクトの生みの親でもありプロダクトオーナー、そして、株式会社ミクシィ取締役会長笠原健治氏、みてね開発マネージャ酒井篤氏に、みてねを支えるエンジニアリングについて、開発に関する体制やプロダクトの開発・運用、さらにこれからのみてねのビジョンについて伺いました。 株式会社ミクシィ取締役会長笠原健治氏(左⁠)⁠、みてね開発マネージャ酒井篤氏(右) みてね誕生の背景 ――リリースから5年が経ち、ユーザ数も着実に増えていると聞きます。ここで、改めて、みてね誕生の背景について教えてください。 笠原: 最初のきっかけは自分に子どもが生まれた

    プロダクト思考で開発が進む「みてね」の今とこれから~みてねの生みの親笠原健治氏、開発マネージャ酒井篤氏が考える、プロダクトとエンジニアリングの素敵な関係 | gihyo.jp
  • 第6回 Firebaseデータベースの効率的なデータ構造と高速化のポイント | gihyo.jp

    これまでの連載で見てきたように、Firebaseのデータベースは任意のJSONオブジェクトをツリー状に保持できる柔軟なNoSQLです。一般的なリレーショナルデータベースのような厳格なスキーマ定義等は存在せず、自由な発想でデータを格納することができます。 しかしながら、必要なデータを何でも1つのツリーの中に含めてしまうと、思いもよらない無駄な大量のデータ転送やパフォーマンスの低下を招くことがあります。今回は、Firebaseで効率的かつ高速にデータを扱うためのベストプラクティスをご紹介します。 今回は例として以下のようなチャットアプリケーションを想定し、データをどのように持つとより効率的なのかを確認していきたいと思います。 チャットルームが複数存在する チャットのメッセージはルームごとに管理する 複数ユーザがおり、ユーザは任意のルームに参加して発言することができる 効率的なデータ構造 データ

    第6回 Firebaseデータベースの効率的なデータ構造と高速化のポイント | gihyo.jp
  • 知っておきたい! 文字コードの基礎知識 ……ASCII,シフトJIS,Unicode etc.:新刊ピックアップ

    書籍案内 » 新刊ピックアップ » 知っておきたい! 文字コードの基礎知識 ……ASCII,シフトJIS,Unicode etc. 『⁠[⁠改訂新版]プログラマのための文字コード技術入門』 ソフトウェアと文字コード ソフトウェアのエンジニア・開発者であれば,文字コードというものについて大なり小なり触れたことがあることでしょう。ソフトウェアを開発したり運用したりする上では必要になる知識です。ASCIIやシフトJIS,Unicode,UTF-8といったものがよく知られています。プログラマは,プログラムを書くたびに文字列処理という形で文字コードのデータを操作しています。 また,開発に携わらない場合でも,幅広いユーザーが文字コードを意識する機会はあります。たとえば,ソフトウェアの設定ファイルをテキストエディタで編集するときにどの文字コードで保存するかといったことや,通信ソフトウェアの送受信を指定す

    知っておきたい! 文字コードの基礎知識 ……ASCII,シフトJIS,Unicode etc.:新刊ピックアップ
  • 第4章 PostgreSQL の運用に便利な機能―バックアップ、レプリケーション、パーティション、バージョンアップ | gihyo.jp

    詳解 PostgreSQL[10/11対応]―現場で役立つ新機能と実践知識 第4章PostgreSQL の運用に便利な機能―バックアップ、レプリケーション、パーティション、バージョンアップ バックアップとリストア─⁠─転ばぬ先の杖 最終章は運用についてです。 運用でまず重要なのは、バックアップとリストアです。データの死はサービスの死と言っても過言ではありません。PostgreSQLのバックアップとリストアを学んでいきましょう。節では、はじめにRDBMSのバックアップの種類とリストアの設計をおさらいします。そのあと、PostgreSQLでのバックアップツールや勘どころを紹介します。自分のバックアップのやり方を見なおす機会にご活用ください。 そのあとの節では、運用で役立つレプリケーション、パーティション、バージョンアップ、日語ドキュメントについて解説します。各節を通して、PostgreSQ

    第4章 PostgreSQL の運用に便利な機能―バックアップ、レプリケーション、パーティション、バージョンアップ | gihyo.jp
  • 第9回 pt-query-digestを使って遅いクエリーを発見する | gihyo.jp

    遅いクエリーの調査をしてみようとして、実運用環境でスロークエリーログを出力してみたところ、思っていたよりもたくさん出力されていしまい、もはや何が起こっているのかわからなくなってしまうことはありませんか? スロークエリーログにいくら有益な情報が入っているとはいえ、数が多くなってしまうと一個一個確認していくのには気が遠くなるような時間と根気が必要となってしまいます。せっかくのIT技術を使っているのに人手による努力はなるべく避けたいものです。ということで大変なスロークエリーログの集計はPCやサーバにやってもらうことにしましょう。 そこで今回は、PERCONA社が公開しているPercona Toolkitのうちの、MySQLのクエリーから統計を取って教えてくれるpt-query-digestというコマンドツールについて説明をしていきます。 デモンストレーション環境 今回使用する環境は第7回 スロー

    第9回 pt-query-digestを使って遅いクエリーを発見する | gihyo.jp
  • 第11回 テックリード | gihyo.jp

    テックリード(Tech Lead)という役割をご存じだろうか。最近少しずつ浸透してきたソフトウェアエンジニアの役割の一つである。完全に新しい役割というよりは、以前からなんとなく存在していたものに名前が付いたといったほうが正しいかもしれない。 今回は、まだあまり知られていないテックリードの役割を紹介していきたい。筆者は過去にたくさんのチームでテックリードをやったことがあるので、基的な役割からテックリードが悩みがちなことまで、実際の体験を踏まえて説明していけたらと思う。これからソフトウェアエンジニアの大事なキャリアパスの一つになっていくことが予想されるので、参考になれば幸いである。 生産性の最大化 テックリードはソフトウェアエンジニアの班長と言うとわかりやすいかもしれない。チーム内のソフトウェアエンジニアのまとめ役である。仕事内容はエンジニアリング方面で多岐にわたる。ここからは、重要なものを

    第11回 テックリード | gihyo.jp
  • ゲームを題材に学ぶ 内部構造から理解するMySQL 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    ゲームを題材に学ぶ 内部構造から理解するMySQL 記事一覧 | gihyo.jp
  • 検索エンジンはいかにして動くのか?:第3回 転置索引とは何か?|gihyo.jp … 技術評論社

    はじめに 前回までは、検索エンジンの概要を見てきました。今回からは、全文検索の中核となる索引構造について見ていきます。 第1回の復習になりますが、全文検索には主に2種類の方法がありました。検索したいデータに対して前処理をせず、検索時に文書を走査するgrep型と、あらかじめ索引を作っておいて検索時にその索引を利用する索引型です。今回から数回にわたり、索引型において最も普及している転置索引という索引構造について解説していきます。 転置索引とは さて、転置索引とは何なのでしょうか? 身近な所で例にあげると、書籍(専門書など)の巻末にある索引は、における転置索引といえます。巻末には通常、キーワード(単語)とそのキーワードが出てくるページが記載されています。キーワードはアイウエオ順やアルファベット順に並べられているので、探したいキーワードを簡単に見つけることができ、そのキーワードがどのページで言及

    検索エンジンはいかにして動くのか?:第3回 転置索引とは何か?|gihyo.jp … 技術評論社
  • 初めてのデータベース設計 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    初めてのデータベース設計 記事一覧 | gihyo.jp
  • 第9回 Firebase Cloud MessagingとFirebase Notificationsでメッセージを送信する | gihyo.jp

    定義済みのキーは他にもありますので、詳しくは公式サイトをご参照ください。 Data Message Notification Messageでは指定できるキーがあらかじめ定められていましたが、Data Messageでは完全に任意のキーバリューペアをペイロードサイズの許す限りいくらでも指定することができます。たとえば次のJSONのようになります。 { "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", // 送信相手 "data" : { "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" }, } このように、Data Messageではdataというキーの下に任意のキーバリューペアを好きなだけ設定することができます。その代わり、このメッ

    第9回 Firebase Cloud MessagingとFirebase Notificationsでメッセージを送信する | gihyo.jp
  • 第7回 Google I/O 2016で発表された新しいFirebaseを覗いてみよう | gihyo.jp

    2016年5月18日~20日に行われたGoogle最大のデベロッパー向けカンファレンスGoogle I/O 2016で、Firebaseのメジャーアップグレードが発表されました。これによりFirebaseは統合モバイルプラットフォームとでも言うべきものに進化し、さまざまなサービスを包括するより大きなプロダクトになりました。 図1 New Firebase Illustration created by Google. 今回は 新しくなったFirebaseの概要 これまでのFirebase環境からのマイグレーション方法 について見ていきたいと思います。 新しくなったFireabaseの概要 これまでの連載で解説してきたように、これまでのFirebaseが提供するサービスは リアルタイムデータベース 認証基盤 静的Webサイトホスティング 等に限られていましたが、今回の大々的なアップグレードに

    第7回 Google I/O 2016で発表された新しいFirebaseを覗いてみよう | gihyo.jp
  • 第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp

    前回までに、Redisの概要と、コマンドラインクライアントによる基的なコマンド操作を見てきました。今回からは、Redisのデータ型を使ったアプリケーション開発について、簡単なサンプルコードと、ニコニコ生放送での事例を交えて紹介していきます。 クライアントライブラリを用いた開発 WebアプリケーションからRedisにアクセスするには、言語ごとのクライアントライブラリを導入することになります。公式サイトにライブラリがリストアップされていますので、各々の環境に合ったものを探してください。 ニコニコ生放送では、PHPによる開発の場合にはphpredisを、Javaで実装している検索サーバーなどではJedisやJRedisを使っています。 今回から掲載するサンプルコードでもこれらのライブラリを使っていきますので、他のライブラリを導入される方はそれぞれ対応するAPIに置き換えてご覧ください。 LIS

    第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp
  • 第2回 Redisの導入と基本機能 | gihyo.jp

    今回は実際にRedisをインストールしてみるところから、コマンドラインクライアントを使った基的な操作方法、そして実際のアプリケーション開発時に重宝するDB選択やタイムアウトなどのRedis特有の仕様について説明します。 インストール ダウンロード 連載執筆時点の最新stableである、2.0.4をダウンロードします。 $ wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz コンパイル RedisはANSI Cで書かれ、外部の依存ライブラリの必要ないシンプルな実装になっているため、コンパイルは以下のステップで完了します。 $ tar xzf redis-2.0.4.tar.gz $ cd redis-2.0.4 $ make 「redis-server」や「redis-cli」が生成されたのを確認してください。 設定の変更

    第2回 Redisの導入と基本機能 | gihyo.jp
  • 第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp

    なぜアルゴリズムを学ぶのか GCによる停止時間が長くなり、アプリケーションの処理時間が短くなると、業務に使える時間が短くなってしまいます。その問題を解決するために、GCをチューニングすることで、アプリケーションの停止時間を短くすることが考えられます。 その際大事なのは、GCのアルゴルズムを把握しておくことです。 GCのチューニングを行うときは、GCで行われている処理の内、どの処理に時間がかかっているかをモニタリング⇒分析⇒チューニングする、という流れになります。しかし、GCのアルゴリズムを知らないと、モニタリング結果を見てもどこに問題があるかがわからず、分析やチューニングを行うことができません。 今回は、以下の4つのアルゴリズムをご紹介します。 マーク&スイープGC コンパクション コピーGC 世代別GC GCのアルゴリズムはJVMの実装によって異なりますが、多くの場合、上記4つのアルゴリ

    第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp
  • はじめてのGo―シンプルな言語仕様、型システム、並行処理 記事一覧 | gihyo.jp

    第4章標準パッケージ―JSON、ファイル、HTTP、HTMLを扱う Jxck 2015-04-23

    はじめてのGo―シンプルな言語仕様、型システム、並行処理 記事一覧 | gihyo.jp
  • Swiftの動向とアツさを追う try! Swift参加レポート 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Swiftの動向とアツさを追う try! Swift参加レポート 記事一覧 | gihyo.jp
  • 第3回 RDBMSマジック、インデックス(1) | gihyo.jp

    第3回は、データベースを扱う上で最も重要なインデックスについてお話ししたいと思います。インデックススキャンは、必要な情報を全件検索するまでもなく、高速に取り出します。まさに、大量のデータを扱わなければいけないRDBMSには欠かせないもので、チューニングにおいても「インデックスを張る(作成する⁠)⁠」というのは基中の基です。しかしながら、よく実践されるということは悪い面もあり、不用意に、でたらめなインデックスが使われていることも頻繁に目にします。 もちろん、コンピュータの世界は魔法ではありませんから、マジックのごとくすばやくデータを検索してのけるためには、種も仕掛けもありありで、インデックスには良い面も悪い面もあります。ここではその種の仕掛けを説明して、その功罪両面に迫ってみたいと思います。理解して正しくインデックスを使って頂ければと思います。 インデックススキャンとは 辞書の中からある

    第3回 RDBMSマジック、インデックス(1) | gihyo.jp
    d_animal141
    d_animal141 2016/02/14
    RDBMSマジック、インデックス
  • 第2回 一番の基本、シーケンシャルスキャン | gihyo.jp

    さて、前回の大まかな地図を元に、第2回では実際に問い合わせ手法の詳細について見ていきます。最初に取り上げるのはシーケンシャルスキャンという、データベース検索の最も基になるアクセス手法です。 シーケンシャルスキャンとは シーケンシャルスキャンは、日語に直訳すると「順次検索」という形になります。端的に言ってしまえば「すべてのデータを順に検索する」ということで、結果として通常はすべてのデータを読み込んで返します。その後、検索条件や取得件数などの必要に応じてフィルタリングが行われることもあります。この方法は、すべての件数を対象として検討するため、条件を選ばず使えます。そのほか、どんな複雑なSQLが来てもシーケンシャルスキャンなら取りこぼしがありません。たとえばなんの変哲もない といったSQLを実行するに当たっては、シーケンシャルスキャンを使います。 図1 シーケンシャルスキャンの実行形 シーケ

    第2回 一番の基本、シーケンシャルスキャン | gihyo.jp
    d_animal141
    d_animal141 2016/01/22
    一番の基本,シーケンシャルスキャン|gihyo.jp
  • 第1章 関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる | gihyo.jp

    [入門]関数プログラミング―質の高いコードをすばやく直感的に書ける! 第1章関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる マルチコア環境が身近になった影響からか、勉強熱心なプログラマの間で関数型言語が話題になっているようです。関数型言語が奨励する関数プログラミングでは、これまで命令型言語で習得した、命令プログラミングの再代入を使う技法があまり通用しません。そのため、「⁠関数型言語は難しい」と言って途中で投げ出してしまう人も多いようです。 この特集では、関数プログラミングの習得を一度諦めてしまった人や、これから始める人のために、関数プログラミングのポイントをできるだけわかりやすく説明します。 筆者がわかるようになるまで 実は筆者も長い間、関数プログラミングを習得できませんでした。筆者は、長年Emacs Lispを使って、Mewというメールリーダーを開発して

    第1章 関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる | gihyo.jp
    d_animal141
    d_animal141 2015/06/06
    関数型プログラミングは難しくない