読者です 読者をやめる 読者になる 読者になる

Database JUNKY

MySQL,MariaDBを中心としたブログです

MySQL,MariaDBでタグ機能(TAG)を実現する(TOXI法)①タグ関連のスキーマ設計

f:id:hit10231023:20161026113033j:plain

MySQLでタグのしくみを作る?

MySQLタグの仕組みを作る場合は、どのような設計をすればいいのでしょうか? タグの設計にはいくつかの種類があり

  • Licious:コンテンツ系のデーブル1つの中にタグフィールドを持たせる方法
  • Scuttle: コンテンツ系とタグ系のテーブル2つでまかなうお不法
  • TOXI : コンテンツテーブル - 中間テーブル、タグテーブルの三種類からなる、TOXI等があります。

色々と調べた結果、TOXI方式が一番、納得感がありましたので、以降TOXI方を中心に説明していきます。

続きを読む

オートナンバーをランダムユニークな値に変換する

MySQLMariaDB)のオートナンバー型ってもちろん便利なのですが、数年システムを運用していくと、こんな課題が出てきてしまいます。 とあるWEBシステムで、規則性のあるデータを見つけてしまう。ちなみに、これ、セキュリティの話ではなく、あくまでも、外部から見て、規則性を隠蔽するって意味で説明します。

続きを読む

なければINSERT、あればUPDATE(ON DUPLICATE KEY UPDATE)

レコードがなければINSERT、あればUPDATEなどどいう超便利なSQL構文があります

ON DUPLICATE KEY UPDATE

オプションがそれなのですが、

結構便利です、今回 MariaDBで試しておりますが、MySQLでもおそらく同様にいけると思います。

これが出来る前提条件は、

  • primayキーがあること
  • ユニーク索引があること

と書いてあります、が * primaryキーとユニーク索引がある場合 とか * ユニーク索引が複合キーだった とか

だった場合、どういう動きになるのかを見てみようと思います。

続きを読む

乱射注意!!!MySQL TRIGGER(トリガー)は結構使える!!

使いみちによっては、すごく便利なトリガーについて説明します。使いみちと書いたのは、なんでもかんでもトリガーにもりもりしちゃうと対象テーブルのパフォーマンスに影響出ちゃうよという乱射状態になってしまいますので注意って感じです

トリガーとは

Trigger(トリガー)とは、対象テーブルの変更(INSERT,UPDATE,DELETE)イベントによってあらかじめ設定した処理を自動で実行する機能ですね。ようは、Aテーブルに対して、INSERT / UPDATE / DELETE の引き金(トリガー)を引いたら、Bテーブルの更新件数をカウントアップするとかが良い例ですね。簡単な例を書きたいと思います

Amazon CAPTCHA

MOCREO MOLINK Clipper Bluetooth受信機 ブラック

MOCREO MOLINK Clipper Bluetooth受信機 ブラック

タミヤ エアーブラシ HGトリガーエアーブラシ 74510

タミヤ エアーブラシ HGトリガーエアーブラシ 74510

続きを読む

MySQLでジョブキューを管理する(Q4M)

いまいちキューの概念がわかっていないのだが、ようはあれかな?非同期で、データをやりとりするもの?え?違う???たとえば、受注処理の場合とか、受注が完了するまでアプリケーションが待つのではなく、キューという形で一連の受注プロセスからデーモンという形で切り離すことで、待ち時間フリーな非同期処理が行えるってこと。え?違う? ぜんぜんよくわかっていないのですが、インストールと簡単な操作方法について記載しました

ザバス ホエイプロテイン100 ココア味【50食分】 1,050g

ザバス ホエイプロテイン100 ココア味【50食分】 1,050g

ザバスプロテインシェーカー (500ml)

ザバスプロテインシェーカー (500ml)

(グリマー)glimmer 4.4オンス ドライTシャツ(クルーネック) 00300-ACT 005 ブラック 02 M

(グリマー)glimmer 4.4オンス ドライTシャツ(クルーネック) 00300-ACT 005 ブラック 02 M

(ユナイテッドアスレ)UnitedAthle 6.2オンス プレミアムTシャツ 594201 2 ブラック M

(ユナイテッドアスレ)UnitedAthle 6.2オンス プレミアムTシャツ 594201 2 ブラック M

続きを読む

容量無制限!! NFSからAmazon Elastic File System (EFS) に移行する

今までec2のインスタンスnfsサーバを立てて運用していましたが、ディスクの使用率が逼迫してくると、ディスクの追加作業が面倒な上に、時間がかかるので、今回、既存のec2 nfsサーバをEFSに移行しちゃおうと考えたわけです。

旧構成

f:id:hit10231023:20160919182637j:plain

上記、図の通りawsのec2でやってますよ!とはいいつつも、別にec2でなくてもいい構成ですね。一台の、ec2サーバにディスクを盛大に乗っけてnfsサーバにしているわけです。 これを、awsのefsに移行する手順を公開したいと思います

BLUENEXT ELANVITAL ワイヤレスステレオレシーバーAirCLIPII シルバー EVSH-03SR

BLUENEXT ELANVITAL ワイヤレスステレオレシーバーAirCLIPII シルバー EVSH-03SR

Fire タブレット 8GB、ブラック

Fire タブレット 8GB、ブラック

続きを読む

[AWS] elbにRapid SSL証明書をインストールする

elbの証明書インストールで予想通りハマったので、来年の更新のために、ログを残しておきます。このあたり、すごく苦手でアレなのですが、elb配下のWEBサーバに証明書を設定するわけではなく、elbそのもの証明書をインストールするのねって当たり前か。。そりゃ、そーですよね。elbの配下にwebサーバが、100台ぶら下がってたら、100台に証明書インストールするんかい!ってね。

てなわけで早速、設定方法を記載していきます

ラカントS 顆粒 800g

ラカントS 顆粒 800g

ブルガリ プールオムエクストレーム オーデトワレ 100ml

ブルガリ プールオムエクストレーム オーデトワレ 100ml

続きを読む

conohaのVPSでgnomeを後からインストールする方法

ちょっとX-windowが必要になってので、証跡がてらメモします。必要最低限の手順しか入れていないので環境によっては、これだと全然だめかもしれません

続きを読む

owncloud client linuxのインストール

owncloudってご存知ですか?一言でいえば、DropBoxオープンソース版です。対応するOSは、IOS,Androd,windows,macosそしてlinux (gnome)です! 自分でサーバを立てて運用することができますので、事実上、利用可能容量は、サーバで設定したディスクをすべて使えるといった感じですね。dropbox等にある、XXGB制約などは、とっくにクリアしております

今回、急遽linux環境でowncloudが必要になったので、インストール手順を書きます

続きを読む

SQLで変数を使う

他のDBはよくしらないですが、MySQL系のSQLSQL文中にユーザー変数を含めることができます。この手法を理解すると、洗練されたSQLを記述することができます。 SET文を用いる方法と、SELECT ~ INTO を用いる2種類の方法があります

f:id:hit10231023:20160510153222j:plain

続きを読む

MySQL,MariaDB ストアドプロシージャ・ストアドファンクションテンプレート

MySQLおよびMariaDBにおいて、ストアドプロシージャを作成するときにいちいち、探しまわる時間がもったいないので、テンプレート的なものを用意しました、基本的、コンソールにコピペで行けるようにしておりますのでご自身の環境で作成する際のサンプルにご利用ください

f:id:hit10231023:20160622013126j:plain

RICOH デジタルカメラ RICOH THETA S 360°全天球カメラ 910720

RICOH デジタルカメラ RICOH THETA S 360°全天球カメラ 910720

続きを読む

bashで配列を作成しループする方法

bashで配列を作成しループする方法

いつも忘れてしまうのでメモ・・

配列のテーブルを作成して、それをループさせる方法です。配列ファイルは、別ファイルにさせて、それをインクルードさせる方が便利かもしれません。

helthknit ヘルスニット バックル バックパック リュック リュックサック HKB-1063 メンズ レディース ユニセックス カジュアル 鞄 通勤通学 カジュアル 旅行 アウトドア ブラック 黒

★★6/16 現在 なんと!? 498円 契約事務手数料も無料です!★★

続きを読む

mysqlのconcatを||(パイプ)で対応できるようにしよう

文字列結合にいちいちconcatなんていう関数を使うのはめんどくさい、且つわけがわからなくなるので、パイプ(||)でconcatと同様の操作がおこなえるように変更するtipsです

f:id:hit10231023:20160510153145p:plain

Jimu Robot 入門レベル

Jimu Robot 入門レベル

続きを読む

mysqlアカウントで、コンソールにログインする方法

MySQL5.5からMaria10.0に変更したら、いつの間にか、linuxコンソールにてrootから、su - mysql ができなくなってしまいました。そちらを、su - できるようにした対処方法をメモします

f:id:hit10231023:20160510153222j:plain

こんなエラーになってしまいました。

"This account is currently not available."

Simplism iPhone 6/6s [NUNO] ファブリックケース マルチストライプ TR-FCIP154-MS

Simplism iPhone 6/6s [NUNO] ファブリックケース マルチストライプ TR-FCIP154-MS

続きを読む

目指せ手ぶらインフラエンジニア!!になるために必須なiPhoneスマホアプリ

f:id:hit10231023:20160530150609j:plain

インフラエンジニア!っていうと、

24時間365日待機しており サービス維持のために、ところ構わずPCを持ち

心休まることなく生活しているエンジニア

という印象を持っています

そんなインフラエンジニアの負荷を下げるために、少なくとも、重たいPCは持たないでスマホだけで、すべて操作できるアプリをチョイスしてみました。

完全手ぶらではないですが、すくなくとも負担をかけないために・・・

私は、これで、PCをほぼ持ち歩かずにインフラ対応ができるようになりましたが、画面が小さすぎて目がつぶれました。

本当は、Androidでチョイスしようと思ったのですが、アプリの選択肢が多すぎてやめました。いつか書きます。

大きくわけて以下の3つがあれば、iPhoneだけで運用できます

・サーバの状態を把握できる ・サーバのコンソール操作が行える ・開発エンジニアとリアルタイムでやり取りができる

この3つさえ網羅していれば、スマホだけ確実に持ち歩くようにすれば問題ないです。

今回は、iPhone限定で話をしたいと思います。同じApple製品のiPhone PLUSや、iPadとか、画面大きいほうが操作しやすいよね?とか思いがちですが、そもそも大きなものもつと逆に、外にもっていくのがめんどくさい件になるので、今回これらは除外しております。

iPhone 5s 16GB au [ゴールド]

iPhone 5s 16GB au [ゴールド]

アップル iPhone 5s 16GB docomo [スペースグレイ]

アップル iPhone 5s 16GB docomo [スペースグレイ]

※ わかっているとは思いますが、スマホだけでは、ハードウェアの設置はできませんので、あくまでも、サーバを設置して、これから運用していく人向けの話です(笑

それでは、さっそく紹介したいと思います

このエントリーをはてなブックマークに追加

続きを読む