Help us understand the problem. What is going on with this article?

Happy Birthday to me!! この記事はラクス Advent Calendar 2016の6日目です。 昨日は@morihirokさんの「rmの-fオプションで泣かないために」でした。 OSS RDBに実装されたNoSQL実装状況まとめ いつの間にやら主要なOSSなRDBであるPostgreSQLとMySQL/MariaDBにNoSQL機能(というよりもドキュメントDB機能)が付いていたので仕事にも使えそうなのでまとめ。 各種都合によりPostgreSQL優遇気味で。しかし "PostgreSQL contains NoSQL." の「お前は何を言っているんだ」感がすごいですね……。 各DBMSごとのNoSQL機能実装バージョン PostgreSQL PostgreSQL 9.4でjsonb型がサポート 9.2でサポートされたjson型(テキスト)から発展し、jsonb型は
この記事は MySQL Casual Advent Calendar 2016 の25個目の窓です。 はじめに MySQL Casual はよく "カジュアル詐欺" とか言われて初心者に優しくないみたいなことをネタ的に言われることがあるわけですが、MySQL Casual における ”カジュアル” というのは ”カジュアルにMySQLに関することを話そう” という意味でのカジュアルです。 なので、その内容が初心者向けであれガチ勢であれ、広く気軽にシェアしようと理解いただければと思います。さあ君も今日からカジュアルだ! と、言いながらタイムラインを検索してみたら @yoku0825 さんが6回くらい "カジュアル詐欺" とツイートしていて自縄自縛ではないかという気もしてきました。 MySQL の検証環境どうやって作ってますか さて、この記事を読まれるみなさんの多くは MySQL を使ってお仕
クリスマスまで後10日と迫りました。 MySQL Casual Advent Calendar 2016 の15日目です。 ご挨拶 はじめまして。 eshimizuです。 新卒入社の会社でMySQLを触り始め、4年目になる今に至るまでMySQL以外を扱って来ませんでした。MySQL以外何も知らない雑魚です。やさしくしてください。 去年くらいからMySQLのコードを覗きはじめたので、そのあたりの話をゆるく書いていこうと思います。 ※MySQL中級者以上の人にとっては、当たり前だったり悪手だったりするかもしれないので、悪手だった場合は「やさしく」良い手法を教えてください。 コードを読みたいのに読めない葛藤 MySQLを使っている人であれば、一度くらいは見てみたいなと思ったことはあると思います。 私もそれについては薄々感じていたのですが、具体的にどうすればよいのか分からず、挫折挫折のオンパレード
WHY 機械学習のモデルはできたけど、サービスインするには何らかの形でweb側から動作できる形にする必要があります。 Railsだと重すぎるし、Go言語使いたい。 そのようなモチベーションから私はGo言語でAPIを作成しました。 Go言語のWEBフレームワークは多々ありますが、今回紹介する記事はrevelを用いています。 コンテナとコードを公開しているのですぐに動作を確認することが可能にしています。 Docker: https://hub.docker.com/r/masayaresearch/go_api/ github: https://github.com/SnowMasaya/go_revel_jwt_mysql revelを採用した理由は下記です。 testのための機能が揃っている deployも簡単 必要なサンプルがある WHAT 何をすることを想定しているか 簡単な認証 AP
はじめに この記事は CrowdWorks Advent Calendar 2016 12日目の記事です。 昨日のエントリーは @nasum さんによる「nasneの容量をシェルスクリプトでSlackに通知する」でした。 先日起きたことを、ありのままに1話します。 MySQL にあるデータを Elasticsearch (以下 ES と略) にインデックスしようとしていたと思ったら、いつの間にか Ruby の C 拡張をデバッグしていた。な、何を言ってるのか (ry おまえは何を言っているんだ 三行でまとめると、 Ruby を使って ES にインデックスを作ろうとしたら予期しない現象に遭遇して、 原因を探ろうとしたら C 拡張で実装されている箇所だったので、 しょうがないからデバッグする方法を調べた という話です。 発端 事の起こりは、自社サービスのデータベースに溜まっているデータをより効
参考URL パーティショニングとは パーティショニングの種類 RANGE パーティショニング このタイプのパーティショニングは、指定された範囲に含まれるカラム値に基づいて、行をパーティションに割り当てます。 LIST パーティショニング RANGE によるパーティショニングに似ていますが、別個の値のセットのいずれかに一致するカラムに基づいて、パーティションが選択されます。 HASH パーティショニング このタイプのパーティショニングでは、テーブルに挿入される行内のカラム値を操作するユーザー定義式によって返される値に基づいて、パーティションが選択されます。関数は、負ではない整数値を返す MySQL の有効な式で構成できます。このタイプを拡張した LINEAR HASH も使用できます。 KEY パーティショニング このタイプのパーティショニングは、HASH によるパーティショニングに似ていま
http://qiita.com/advent-calendar/2015/gaiax 初めまして、GaiaxAdventCalender 4日目担当の技術開発部の金田と申します。 既に熱い記事ばかりなので後続の人たちのハードルを下げる為に小ネタで行きたいと思います。 GROUP_CONCATという関数がMySQLにあるんですがそれがアツいのでみんなに教えたいという記事です。 1対多の関係のとき 普通にテーブル設計してると1対多の関係(has many)になるリレーションシップをテーブル間で張ることが多いですよね。 まぁこんな感じで。 ざっくりと記事に対して複数のタグが設定できるような作りを想定してみます。 Entryから出た線がTagは複数に枝分かれしているのがhas manyの関係です。 で、こんなデータが入ってます。 取得するとき 記事と、それに付随したタグの一覧を取得したいときは当
仕様 web用・DB用と、2つのコンテナを1つのVagrantfileにて定義しています。 vagrant up/haltにて2つのコンテナは同時に起動・停止します。 ホスト(Mac)上のディレクトリを、web用コンテナ上の(Webサーバーの)ドキュメントルートにマウントし、ホスト(Mac)から直接、編集・更新ができます。 準備 DockerImageの用意 WEB用、DB用のDockerイメージを用意します。 WEB用はDockerHUB上のcentOSを元に構築 DB用はDockerHUB上のmysqlそのまま利用 WEB用Dockerイメージのサンプル Dockerfile FROM centos:centos6 #Set root password RUN echo "root:hogehoge" | chpasswd # Update All RUN yum update -y
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 数年やってないと記憶の彼方に飛んでいきそうだったので、MySQLのクエリ改善方法のテンプレを自分用に明記。 スロークエリを除去する事。 初めはとにかく観察。スロークエリを出力させて、観察する。 indexが効かないクエリを排除する。 indexが予期できない条件分岐によるクエリを廃止する。 場合によってはソートをさせない。コード側でソートさせる。 JOINをわざとさせないのも一つの手。後にDB分離レベルのシャーディング等が発生する可能性のあるようなシステムでは、JOIN禁止にする事は決して間違ってはいない。 indexを必ず効かせる レ
取得したデータを DB に格納 集めてきた Tweet データを DB に格納する部分。 MySQL 用のドライバを利用して、Python から MySQL を操作する。 Python で Twitter からの情報収集 (環境構築編) 環境構築等はこちら MySQL 用ドライバ 環境構築時にインストールしたものを利用する。 サンプルコード 実際の使用法はサンプルコードを見てもらう方が早いはず。 サンプル中の execute_sql() 関数のようにしてやると、指定したDBでSQLを実行できる。 mysql_tools.py #!/usr/bin/env python # -*-coding:utf-8-*- import MySQLdb ### Functions def main(): local_db = { "host": "localhost", "user": "root",
<?php ini_set('display_errors', 1); error_reporting(E_ALL); function get_pdo() { $dsn = sprintf('mysql:dbname=%s;host=%s;charset=%s' , 'database' , 'localhost' , 'utf8' ); $username = 'root'; $password = 'password'; $options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]; return new PDO($dsn, $username, $password, $options); } function fetch_array() { $pdo = get_pdo(); $statement = 'select * from
MySQL または MariaDB で2つのデータベースの定義がどう異なるのか、調べたいことってありますよね? mysqldump を使って diff で差分を取得することをまず考えるかもしれませんが、もしその差分をなくす、つまり一方に行った変更を他方に反映したい場合に、まさかそこから手動で ALTER TABLE 文を書こうなんてエンジニアはいないと思います。 そんなわけで mysqldiff コマンドの出番です。 mysqldiff コマンドについて mysqldiff は Python で実装された Oracle 公式の MySQL 向けユーティリティツール群である MySQL Utilities に含まれるツールのひとつです。2つの異なるデータベースを比較し、その差分を出力することができます。 Perl製のツール MySQL::Diff について mysqldiff で検索すると同
環境 Go :go version go1.6.2 darwin/amd64 IDE :VSCode1.1.0 echo:Echo v2.(beta) MySQL: Ver 14.14 Distrib 5.7.12, for osx10.11 (x86_64) OS:Max OSX El Capitan 俺 :Go初めて3日目 MySQLはHomebrewで入れました。 トランザクションとは トランザクションとは、連続する複数のデータ操作のまとまりのこと 特徴として: ユーザはトランザクション単位(複数のデータ操作)での取り消しと確定ができます(トランザクション処理) 複数のデータ操作が連なっている時、「複数の更新処理を連続して行う際に、すべての処理が成功したときにのみデータベースへの変更を有効としなければならないデータ操作」では、このトランザクション処理は必須です。 ただのロックとは違い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く