Database JUNKY

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

MariaDB/NoSQL Dynamic Columns の活用

以前、ここに hit.hateblo.jp 掲載して、結構満足していたのですが、今更になって、MariaDBにその機能が実装されていたという、なんともお恥ずかしい話しになります MariaDBにDynamic Columnsというものがありまして、これがまさしくRDBMSとNoSQLのハイブリッド構成ができるアレになります

いやいや、参った・・

続きを読む

意外と知らない?MySQLのリカバリー方法について

障害発生!!!どうする!?でも・・MySQLだと、レプリケーション(スレーブ→マスターの昇格))でほぼなんとかなっちゃうのであまり使われることはないとは思いますが、実はロードフォワード(roll forward)回復もできちゃうんすよwwというほぼ僕のメモです。

表題で「意外と知らない?」なんて書いちゃいましたけど、知らないのはきっと私だけ・・。でも、そんなMySQLのロールフォワード手順をまとめてみました。 ロールフォワードとは、ログファイルに残っているチェックポイント後の処理を再現し、障害直前の状態にまで戻すことができる機能のひとつです。商用DBでは、まず入っているでしょうといった機能です。ORACLEでもSQL SERVERでもIBM DB2でもちゃんと実装しております、IBM DB2のロールフォーワード手順については以前、某F氏が手順をまとめてくれました(http://www.s-quad.com/wordpress/?p=638)あたりですかね?今回はMySQLでそれをやってみようと思います。

f:id:hit10231023:20180309104332j:plain

続きを読む

MySQLをKVSのように使う

RDBは、使いやすい!速い!なのですが、カラムの拡張には、どの製品であろうと弱い。。24時間365日稼働しているサービスでカラム追加なんてなんてしようものなら、もうとんでもなくめんどくさいことになる。。 というわけで、カラム拡張が容易なテーブル構成について考えてみました。

f:id:hit10231023:20180309104332j:plain

続きを読む

MySQL テーブルのウォームアップ

テーブルのウォームアップ

以下のコマンドを発行することにより、インデクスの最適化を図ることができる。インデクスのカーデイナリティ(データの種類の分散具合?)情報を設定することが可能になる

SELECT 1 FROM tbl_name LIMIT 1

※ 厳密にいうと、統計情報を更新するのかな?

MySQL 登録されている索引の一覧を出力する

MySQLにて、登録されている索引を確認する方法としては

mysql > show index from TABLE_NAME;

で確認できます。しかしこれですと全てのスキーマ内に存在する全ての索引を確認することができません では、索引が設定されているかいないかわからないテーブルの索引のみを探したすのはどう すすれば良いのか?

information_schema.STATISTICS テーブルを確認することですべてのテーブルに設定されている索引を確認することができます

続きを読む

MySQL レコードの更新日を自動的にセットする

f:id:hit10231023:20180309104332j:plain

いやーーー全然・・知らなかったですが・・ALTER TABLEっていうかCREATE TABLEの時も同じですが、ON UPDATE オプションを付けると、データ更新時に指定された値を自動でセットすることができるらしい。。

DEFAULTとは違うんです・・詳細は以降から・・・

f:id:hit10231023:20160510112622p:plain

続きを読む

MySQL ストアドファンクションを使ってみましょう!

MySQLって、ストアドプロシージャとストアドファンクションの2つが利用できます。ストアドプロシージャは、CALL XXX って呼ぶもの、一方でストアドファンクションはSQLの中で呼べたりできるものです。 ストアドファンクションは戻り値が1つしか返せないとか色々と制約はあるので、やれることは限定されてきますが、SQLの一環で例えば、SUMとかCOUNTとかと同様の手順で、加えることができるので、可読性の良いSQLを書くことができます。

ちょっと例で説明しますが、日付をパラメータにして、消費税率を返すストアドファンクションを作成してみましたのでご一読を・・

f:id:hit10231023:20180309104332j:plain

続きを読む

MySQL 256バイト以上あるカラムに索引を貼る

mariadb のテーブルで、256バイト以上あるカラムに対して索引を生成する場合の手順です。MySQL5.5以上もこれでいけるとは思うのですが、試していないので、ここでは割愛します。ここでは、MariaDBを再起動しないで実現する方法を記載します。また、いつか再起動した時に設定がリセットされてしまうのも泣けると思いますので、my.cnf (mariaですと、server.cnf)の記述例も載せておきます。

f:id:hit10231023:20180309104332j:plain

続きを読む

画期的!!sinji ポーチでスマホ自体をカードケースにする

せっかく入手した、so-netの0sim、いくつかあるmvnoで「あ、こういう売り方もあるな」と感心しつつ、できるだけ安価で、運用できるように色々考えてみました。というメモです

  • 0simが利用できる機種の選定

できるだけ安価で!新品のスマホが買えないかとamazonを漁りました。そしてありました!!

STREAM S 302HW ワイモバイル (ブラック)

STREAM S 302HW ワイモバイル (ブラック)

評判もよくて、しかも新品、そして驚きの薄さ!大げさかもしれませんが、キャッシュカードを持つ感覚の薄さで、バッテリーもそこそこもつ、さらに、わいモバイルでありながらロックもかかっていないため、0simに限らわず、docomo系のmvnoであれば、ほぼ動作するらしいとのことだったのでこれを選択しました。商品到着し、動作確認とりましたが、この薄さで、このサクサク感?って思えるほど動作快適で、バッテリーの持ちも十分でした。

f:id:hit10231023:20160124030507j:plain

  • ケースの選定

薄さが売りの302HWなのでケース、薄ければ薄いほど良い、手帳型のケースはガサばるから避けたい、なので、クリアなハードケースを選択しました。それがこれ

以外とシンプルなものが売っていないんですよね・・

  • お財布ケータイっぽく使ってみたい

残念ながらこのスマホお財布携帯には対応していません。残念。ならいっそのこと、カードを挿入できるケースを買おうと思いましたが、可能な限りシンプルに利用したいのとケース買っちゃったしな。。って感じだったのでなんかシールで貼り付けられるカード入れって売ってないのかな?なんて探してたら、ありました!!

続きを読む

linuxのファイル更新日について

linuxにおけるファイルの更新日についてわけがわからなくなったので、まとめてみました。

まんがでわかるLinux シス管系女子(日経BP Next ICT選書)

まんがでわかるLinux シス管系女子(日経BP Next ICT選書)

続きを読む

SQLで文字の一部分を置き換えて表示する方法

あくまでも例ですが・・

よくテストデータを作成する時に、

  • ドメインは残しておきたい
  • でも@より前のアカウントはマスキングしたい

なんていうリクエスト結構ないですかね?昔、ガラケーなのではあったのですが、今そんなにそんなリクエストないのかな? なんて思いつつ、ドメインは残しつつ、アカウントをマスクするSQLのサンプルを作ってみました。

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

【改訂第3版】 SQLポケットリファレンス (POCKET REFERENCE)

【改訂第3版】 SQLポケットリファレンス (POCKET REFERENCE)

続きを読む

大容量USBハードディスクをLInuxで利用する方法

f:id:hit10231023:20180308234003p:plain

私の自宅のUSB ハードディスク・・・無駄に、6TB もありまして・・・ あぁ・・Linuxの外付けハードディスクとして活用しよう。。USBハードディスクなんで、挿せばなんとかなる・・・と思いきや・・全く認識していない・・。

ということで、Linux上の6TBのディスクとして認識させる為の経緯を下記に記載します。しんどかった。。

ちなみに、細かい話しはよくわからんのですが、Linuxの現在のファイルシステムでは、2TB以上のディスクを認識できないらしく、新たに、2Tを超えるようなHDDを扱えるようGPT ( GUID Partition Table ) と呼ばれる方式が策定されたとのことです。知らなかった。

じゃあ、いままでやってた、fdisk とかは利用できないの?ってはい、出来ません!(断言)

2TB 以上のHDDを認識させる為に、新たに、parted というユティリティを利用するようです。

早速ですが、その証跡を書きます。

続きを読む

shell script の二重起動を抑止する方法

特に説明する部分でもないですが、cron等の繰り返し設定で2重に起動しないようにするbashです。該当シェルスクリプトの先頭に追加しておくと便利 システムを長く運用していると、かならず出くわすのが、このシェル二重起動、場合によっては、サーバーに負荷かけまくりで大変なことになっちゃうのでなんとなくこんな感じで空振りさせるのがいいのかもよ?という手順

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

続きを読む

Riak インストール手順

riak 2.0のインストール

あまり世間で騒がれていないのですが、このriak かなり使いやすいです

の三拍子揃っています

ここでは、ひとまずインストールの手順だけ記載していこうと思います

NOSQLの基礎知識

NOSQLの基礎知識

続きを読む

サーバのタイムゾーンを、UTCに変更する

conoha VPSは、日本を始め米国、およびシンガポールリージョンを持っています。 たとえば、上記3カ国でVPSを構築した際のタイムゾーン

JST(Japan Standard Time) だったり PST(Pacific Standard Time) だったりして、しかも

同じリージョンでも時刻の表記が違うので、すべて UTC協定世界時間)に統一することにしました

Internet接続 NTP対応時計 P18-NTP

Internet接続 NTP対応時計 P18-NTP

続きを読む