サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
hit.hateblo.jp
MySQL(MariaDB)には、レンジパーティションってものがありまして、うーなんでしょ?ある規則にしがったデータをおのおののデータファイルに振り分けてくれるストレージエンジン的なものです。 データ領域が分割されるため、大量のデータを処理することによる性能上のボトルネックの発生を抑えられる MyISAMなど、テーブルサイズに上限がある場合でもそれ以上のデータを格納することが可能になる といった点です。 MySQLでもMariaDBでも、古いバージョンからある機能ではありますが、数百万規模のデータですとSQLの条件によって、読み込む分母のレコード数が少なくなるため、パフォーマンスは向上するわけですね。 サンプルテーブル こんなテーブルを作ってみました。非パーティショニングテーブルですね。つまり普通のテーブルです。これをベースにパーティショニング化を検証してみます。 | sample_tab
MariaDBでマルチソースレプリケーション 私的に待ちに待ったあの機能が追加されました。それは、マルチデータソースレプリケーション、mariadb10.0から実装されるという話は知っておりましたが、ようやく触る機会がきたので試してみようと思います。 余談ではありますが、弊社では、30スキーマはあろうデータベースをこれで一台に集約しておりますので、ちゃんと実績はありますのでご安心を そもそもマルチソースレプリケーションとは何? 異なる2つのインスタンスのデータベースを、1つのSLAVEでレプリケーションしちゃおうという意味です。たぶん言葉で説明するのは難解なので、図を以下に載せます。 え?これって、昔からできるんじゃないの?と思った方(自分)。実は、MySQLはこれができなかったのです (T_T) MySQLのレプリケーションを触り始めた時は、マルチマスターレプリケーションがそれだと思って
たまにしかやらない DNS変更作業、いざやろうとすると、あれ?どうするんだっけ?ってなりませんか?少なくとも私はそうなりました。 今回、お名前comでドメインを登録したのですが、DNSは、aws route53のほうが管理しやすいので、切り替えようと考えました。 そして、調べて実施したのが、 お名前comからroute53のドメイン移管(ドメインレジストラ移管) でした。完全に舵を取り違えた感じです(汗) そしてそもそもの認識違いの発端。。。 ご指摘通り、DNS移管という、謎キーワードを、脳内で作成しまったからであります。 DNS移管ではなく、DNS変更です(汗) この間違えを踏まえ、メモがわりに記事を掲載しようと思った次第でありまして。。 内容は、お名前comのDNSをroute53に切り替えた話です ドメイン移管とDNS更新の違いについて ドメイン移管 ドメイン移管とは、ドメイン管理業
MySQLとヒアドキュメントをうまく使いこなされば、さくっとSQLをファイルを作ることができます。はじめは戸惑いますが慣れれば簡単です。数百回はやったかも(^^;) ヒアドキュメント(heredocument)自体は、MySQLとはまったく関係のない話、そもそもbashではありますが、MySQLとbashヒアドキュメントの相性は大変良いので、この機会に覚えておいたほうが良いかもしれません。 また、ヒアドキュメントを有効に活用できるようになれば、プログラムを作らなくても、シェルスクリプトだけで、バッチ処理を作ることも可能になり、なんにせよ、高速です!(プログラムが遅いっていっているわけではありませんのでそのは誤解しないでください) ヒアドキュメントを使って、SQLファイルを作成する例 今回の例で、EOT の名前にしましたが、別に、DOCでも良いし、とにかくEOT ~ EOTの間が文中でかぶら
MariaDBでマルチソースレプリケーション 私的に待ちに待ったあの機能が追加されました。それは、マルチデータソースレプリケーション、mariadb10.0から実装されるという話は知っておりましたが、ようやく触る機会がきたので試してみようと思います。 余談ではありますが、弊社では、30スキーマはあろうデータベースをこれで一台に集約しておりますので、ちゃんと実績はありますのでご安心を Habor 3D VRカードボード ゴーグル 3D体験組み立て式メガネ タッチボタン付き 3.5?5.5インチのiPhone/Androidスマホに対応 ベルト付き 出版社/メーカー: Haborメディア: エレクトロニクスこの商品を含むブログを見る 10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA) 作者: 青木峰郎出版社/メーカー: SBクリエイティブ
mysql(MariaDB)には、レンジパーティションってものがありまして、うーなんでしょ?ある規則にしがったデータをおのおののデータファイルに振り分けてくれるストレージエンジン的なものです。 -- データ領域が分割されるため、大量のデータを処理することによる性能上のボトルネックの発生を抑えられる -- MyISAMなど、テーブルサイズに上限がある場合でもそれ以上のデータを格納することが可能になる といった点です、少ないデータですとこれといった利点はないかと思いますが、数百万規模データですとパーティションの条件にマッチすれば、猛烈にクエリパフォーマンスが向上します!! mouse 2in1 タブレット ノートパソコン WN892-A Windows10/Office付/8.9インチ 出版社/メーカー: マウスコンピューター発売日: 2015/12/16メディア: Personal Comp
MySQL 8.0 バージョンアップしたら、速度が2倍向上!便利な関数が使える!!等、色々なメリットがあります。 ・・が、 通常のサービスでデータベースがメジャーバージョンアップしたからといってサービスを停止して、バージョンアップってしないかなー?って思ってます。自分がやるのであれば、別のサーバ立てて旧バージョンからレプリケーション!可能な限り、ダウンタイムを減らしたいのでこの手法一点で進めます ただ、今回は、かなり苦戦しています 次回、同じ状態にならないように、備忘録に残しておきます。 [Amazonブランド]Presto! マスク ふつうサイズ 200枚(50枚×4パック) PM2.5対応 出版社/メーカー: ヘルスタージャパンメディア: ヘルスケア&ケア用品この商品を含むブログを見る バックアップ mysqldumpに注意!! MySQL 8.0クライアントから、MySQL 5.7の
awsにて、動画共有サイト、画像共有サイトでもそうだと思いますが、ec2インスタンスのコストよりかかるのが、ずばり!転送料です。一部のサービスでは、ec2のインスタンスコストよりデータ転送料金のほうがコストがかかっているという話をよく聞きます たとえば利用料金。。 サービス事業から見ると、大した額ではないかもしれません、しかし、私から見れば、一日でお給料がすっ飛びそうなお値段だと思ってます。 これを、ここまで下げることができました!! 今回、どのように、awsの転送料金を下げたかについて説明していきたいと思います S3の料金体系を学ぶ 個人的な主観ですが、s3の料金体型はほんとうにわかりずらいです。。 awsを利用するメリットは数多くありますが、一番恐れるのが、コストとして予測しずらい転送料の部分なんですよね。 qiita.com を参考にさせていただきました。kawazさん曰く、 一番高
かなり前に、なければINSERT、あればUPDATEというの書きました。 hit.hateblo.jp しかしながら、現状で運用でもっとも活躍できるのは、IGNOREの方だと思います どのようなケースで活用できるついて、サンプルを含め説明します プライマリーキーを更新 以下のテーブルをサンプルにプライマリーキーを更新するSQLの挙動がどうなるか考えてみましょう users CREATE TABLE `users` ( `userid` bigint(20) NOT NULL, `username` varchar(10) DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci プライマリーキーは、userid データ userテーブルの内容
インスタンスタイプを変更したら、ec2が起動しなくなった(汗 もともとの、VPCのNATインスタンスとして利用しておりましたが、いつの間には、m5インスタンスなるものが出ているじゃないっすか?汗 しかも、安い!! m4.Xlarge : 月コスト: $146.40 最大帯域: 791 Mbits/sec m5.large 月コスト: $70.28 最大 10 Gbps コストパフォーマンスの観点から、ことネットワークの帯域が大きく、かつ、コストが下がるってことを理由に、m4.Xlarge から m5.Largeにインスタンスタイプを切り替えてみようともくろみ、さて起動しようとしたら、なんかエラーで出て起動でないって、、あわわ。。 Enhanced networking with the Elastic Network Adapter (ENA) is required for the 'm
フォロー/フォロワーのテーブル設計 ソーシャルネットワーク系のデータベースでフォロー/フォロワーってどんなしくみで設計しているの?なんていうのを中心にまとめてみました NURO光キャンペーン ネットのみでも必ず3万円が貰える! 有効な暇つぶしの方法とは。。 フォロー・フォロワーを考える twitter等というか、最近どこでもあるけど、フォロー・フォロワーのテーブルについて考えたいと思います まず、フォローって何なの?というところですが、以下を引用しますね。 フォローとは? フォローとは、「追う」「従う」「関心をもつ」「傾聴する」などのような意味を持つ英語であるが、 IT用語としては、Twitterをはじめとするソーシャルサービスにおいて、他のユーザーの動向を知ることができるよう つながりを得ることである。特にTwitterにおいては、対象ユーザーのツイートを受信するように登録すること、およ
MySQL/MariaDBでのパフォーマンス低下一番の理由がスロークエリーです。MySQLでサービスを展開しているデータベースやさんって、例外なくここをきにするのではないかな?と思います。そしてスロークエリーが発生した場合の一番の対策は、適切な索引(INDEX)を設定という部分になると思います。たぶんですが、ディスクをSSDにすればー。とか、CPUのクロックをあげればとか、そもそもこのサーバでは古いとか・・・の前にまず索引のチューニングをするのが先って感じです ここでは、 スロークエリをログファイルとして出力させるためのMySQL (MariaDB)の設定方法 と 出力されたスロークエリを集計するmysqldumpslow ユーティリティ について説明したいと思います ここでは、遅いクエリーをどう改善するかについての説明は割愛します。1つの例としてのチューニングについては、 hit.hat
はじめltsvってapacheのモジュールかと思ってましたら・・そうじゃなくって、単純にLogFormatをラベル付きのログを出力する形式ってだけなんです。 でも、また、これが便利、たとえば、access.log等は、標準ではラベルが入っていないため、大量にある場合、若干みづらいですよね。これがltsvであれば、ぐっと見やすくなります。 ltsv.org 実際に試して見ましたが、ltsvってとっても便利!っていう話と、例として、apacheでの設定を中心で、おまけでnginxではどのように設定するのかなんていうのを書いていきます apacheでの設定例 ltsvを利用するにあたってapache httpd.confに以下の通り設定されているか確認してください。yumでインストールとかした場合は、基本的に入っているので、あまりきにしなくて良いかもしれません。 /etc/httpd/conf/
タイトルで爆速は大げさかな(汗) ここ数日、ブログを書こうとしたら、このmacの中から何かカリカリ音がして、なんだろう?と気になってはいたのですが、その翌日にさらにおかしくなり、文字を入力すると、変換の部分でピタっと画面がとまるとか(笑)筐体をぶっ叩くと、日本語変換できるとか、もーあきらかに動きが変なんですね(汗) じゃあ、この際だからmac初期化してディスクを綺麗にしようと試み初期化は終わり再インストールしても、やっぱりピタっと止まる・・なんだこれ? ハードディスク見てもエラーではないし、でも原因は、ハードディスクっぽいって感じ。 色々対策して、今ここで爆速iMacでブログを書けるまでになった対応を(記念に)メモします。 ・・というかわかっている人が対応したら、半日で治ったのかのしれませんが汗 USB C Mini DisplayPort 変換ケーブル Thunderbolt 3対応 u
nginxでのの方法については、わかったのですが、ELBを挟んだ場合は、どこでどのような設定をする必要があるのか、、頭がごちゃごちゃになりハマったのでここで整理します やりたいことは、以下の通り http://www.test-test-abc/ → https://www.test-test-abc http://test-test-abc/ → https://www.test-test-abc https://test-test-abc/ → https://www.test-test-abc ここまでやれば、ドメインを統一することにより、SEO的に良さそうな感じなのですが、これを、ELB内部だけで完結するのが、以前はかなり困難だったのです。。(だったはず。。。) これ、いつの間にか、このようなケースの設定もELBでできるようになっておりました!!! 以前のELBの問題とは? サーバ
異なるバージョン、もしくは、異なる サーバ間で、データベースのdump (mysqldump) および restore リストアを実施した時に、リストア先にデータベースもテーブルもないはずなのに、キー重複(Duplicate entry)が起きたりしたことはありませんか? え?、なにもないはずなのに。。。って。オカルトですよね。 この原因って、dump時の文字コードが原因している場合が多いですって話です。。。 プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ) 作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る 今回は、MySQL5.7のdumpをMySQL8.0にリストアしている
いいねってなに? FACEBOOKですと、いいね、 Twitterだと♥のあれです。エンゲージメント率を高めるばかりではなく、記事の拡散にも効果を発揮しますよね。また、サービス運営者視点で話すと、話題が見つけやすくなりますよね。 ってなわけで、今度はいいね。のテーブル設計をどうするか?というのは試してみたいと思います テーブル設計 構造はいたってシンプルです。 CREATE TABLE `likes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `article_i
先日、何気なく水を入れようとしたら、水道の蛇口の取っ手がぽろっと取れた・・笑 水が出せない、水が出せても止まらない、温度調節もできない、ちょっとした大惨事で、しばらくペンチで蛇口を回すという荒技で対応しておりましたが、もう限界・・ この蛇口の取っ手はどこのメーカのもの?というところから調べて直したお話です 見事な壊れっぷり 続きを読む スタイラスを購入したきっかけは、お絵かきをしたいわけではなく、IPadから利用できるようになったマウスがあまり使いやすくないことと、外出時にがさばるのが大きな理由なのですが(笑)実は文字編集でスタイラスって結構つかいやすいんですよー。コピペとかそーいうのが。 。。といいつつ、当方 ApplePencilも保有していますが、安価なApplePencilライクなスタイラスってどんなもんなんだろうってことで購入してみました。 ApplePencilは数万円しますが
IPad + 外付けキーボードで、インフラエンジニアさんがネックのなるのは、ESCキーが無いこと。。もちろんショートカット( CTRL + C )でその代用はできるのですが、普段やらない操作なので、ちょっとイラっときてしまいます(自分だけかも) またまた。。 今回もハードウェアキーボードのお話になりますが、なんと!? iPadでESCキーが有効なキーボードを見つけてしまったのです! それがこちらになります!! おかげさまで、外出時に喫茶店などで、緊急の対応をiPadでさらっと行えることができる。いや、ノートPC持てよ!って話が出そうですが、いやいや、ノートPCに比べれば、もう重量が変わってくるし、コンパクトですよね!! そんな中で、ベストマッチのキーボードを見つけてしまいました! そして商品説明に良い意味で偽りあり!!やっと引き当てた、iPadキーボード! Anker ウルトラスリム Bl
MySQL5.6およびMariaDB 10.0 以降のカラム定義にてdatetime型にON UPDATE オプションを付けると、データ更新時に日付時刻を自動でレコードにセットすることができるらしい。 3ステップでしっかり学ぶ MySQL入門 [改訂2版] 早速ですが試してみたいと思います!! 何が言いたいかを理解していただくためにこんなテーブルを作ってみました。 テスト用のテーブル CREATE TABLE t1 ( id int(11) NOT NULL, updated_at datetime DEFAULT CURRENT_TIMESTAMP, val1 int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 当該テーブルを以下のSQLでデータを格納します t1 テーブルへINSERT ここで、INSERTの指定時に、up
MySQLおよび、MariaDBでの文字列結合関数といえばCONCAT(コンキャット)です。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.5 文字列関数 文字列結合にいちいちconcatなんていう関数を使うのはめんどくさい、且つわけがわからなくなるので、パイプ(||)ショートカットでconcatと同様の操作がおこなえるように変更するtipsです ビッグデータ分析・活用のためのSQLレシピ concat を利用した場合 パッと見た限り、カンマが文字列なのかそうではないのかわからなくなりますよね汗 SQL SELECT concat('現在の時刻は',current_timestamp,'です','明日は晴れかな?','雨かな?','晴れたらいいな') ; 結果 mysql> select -> concat('現在の時刻は',current_timestamp,
MySQL5.6~ で日本語全文検索ができるぞ!!! 最近MariaDBばかりやっていて、MySQLの存在を忘れていたのですが、今まで英語しか利用できなかったのに、いつの間にか標準で日本語全文検索ができるようになっていたので、久しぶりに触って見ようと思います。これがまた、意外に簡単!だったので、その設定/実装方法をできるだけ簡単に紹介したいと思います 全文検索とは あれですね。通常テーブルに設定するカラムの索引ではなく、行全体に対して、インデクシングをする設定といえばいいのかしら IROTEC(アイロテック) ラバー ダンベル 40KGセット (片手20kg×2個) 筋トレ ダイエット ダイエット器具 トレーニング ベンチプレス 筋肉 出版社/メーカー: 株式会社スーパースポーツカンパニーメディア: その他購入: 2人 クリック: 31回この商品を含むブログを見る ウィキペディアで見るとこ
意外と知らなかったです。 root以外のアカウントから、rootに成り代わって実行はいくつかあるんですが、 rootからroot以外のアカウントに成り代わって実行する方法ってどうするんだろう?って 例えばこんなケースです [root@]# aws ec2 describe-instance-status You must specify a region. You can also configure your region by running "aws configure". まあ、当然そうなりますよね。aws configureは、ec2-userで設定しているわけなんで笑 このような場合、いままでsudoコマンド特定のユーザーに成り代わって実行していたのですが、amazon linuxおよびcentos等の起動コマンド・起動シェル内では設定しても動いてくれない(汗) コンソールから
MySQL8.0の話ですので、以前のバージョンの話とはちょっと変わってしまうかもしれませんが、テーブルの作成で、ものすごくしょうもないことでハマってしまいました。 ERROR 1071 (42000): Specified key was too long; max key length is 3072 bytes まず、前提として、索引(インデックス)の最大長は、3072バイトです。ってところから始めます(笑) これがいけると思っていたところからが地獄の始まり(笑)都合よく、私は、varchar(1024)を1024バイトだと思ってました(汗) CREATE TABLE `table1` ( `Id` bigint(20) NOT NULL AUTO_INCREMENT, `Url` varchar(1024) NOT NULL, PRIMARY KEY (`Id`), UNIQUE K
サービス無停止でMySQLのレプリケーション環境を構築する方法 稼働中のサービスを停止できないけど、スレーブを増やしたい(増殖したい)なんて場合に使える技になります。 実際これでとあるサービスの運用をやっております。 おうちで学べるデータベースのきほん 作者: ミック,木村明治出版社/メーカー: 翔泳社発売日: 2015/02/13メディア: 単行本(ソフトカバー)この商品を含むブログを見る マスターのバックアップ まず、スレーブ側のホストでマスターのスキーマ(例では、schema1 schema2のバックアップをとります。この際に、--master-data と --single-transaction は必須です。 --master-data を指定しますと、master側のバイナリログファイルとポジションを取得することができます。 --single-transaction を指定しま
トイレの修理はお早めに! TOTOのトイレ(SH381BA)の修理します。はい!全然、技術系の話でもデータベースの話でもありません! 結果からいいますと、トイレの水が出なくなりました厳密にいうと、タンク内部で水漏れしている気が・・する・・ 幸いにも、自宅は、トイレが2つあるので、全く使えない状態というのは避けることはできたのですが、 それでも、今まで2台トイレがあったのに、1台しか使えないということが、どれだけ困るかを実感できました。 このようなケースの場合、どのパーツ名のどの型番のものを購入すればいいのかを、備忘録代わりに残して、同じ症状で同じお悩みがある方に、お役に立てればと思っています そんでもって結局、今回は止水ダイヤフラム の交換とあいなりました! そして、意外に安くてびっくり カクダイ トイレ補修 マルチ ロータンクボールタップ 662-310 出版社/メーカー: カクダイ(K
あ、別にawsでなくてもいいのですが、そしてshellでなくても良いのですがw よくあるかどうかまではわかりませんが、アプリケーションを手動で起動して待機させる系統のものって、インスタンスを再起動さける時に、あら。動いてない。。。なんてことがありますよね?まぁ、インスタンスが起動してから、手動で実行すればいいのですが、それも面倒なので、この際、インスタンスが起動したら、自動的にアプリケーションが起動するという設定をしてみようじゃないかと思いメモがてら書いてきます。 今回の例は、pythonは、 api_app.py と app.pyをshellで起動する例(というかメモ)で、説明します。 対象python appをshell化 shell化っていうか、shellの中にpythonを書いただけです。 ログアウトした時、プロセスが落ちないように、nohupを入れて、且つ、バックグラウンドで起動
MySQLをKeepAlivedでロードバランサーを実現というのは結構ある話ですが、それぞれのセッションタイムアウト値が違うため、いざサービスを運用する!!なんて時に思わぬ落とし穴があったります。そのための注意書きです 無通信時のコネクションプーリングのタイムアウト時間のデフォルトは、interactive_timeoutで確認できます。ちなみに、MySQL 28800秒なので8時間です。 mysql> show variables like '%timeout%'; +------------------------------+----------+ | Variable_name | Value | +------------------------------+----------+ | interactive_timeout | 28800 | | wait_timeout |
awsのバケットの削除、もしくは、フォルダの中身の削除、s3のコンソールからでも行えるのですが、この中身が大量にあると一苦労。あっさり消えてくれません。もしくは、webのセッションがタイムアウトしてしまって、作業時間の無駄になってしまいますw ここは、もっと効率よく、ライフサイクルルールで大量削除を実施しましょう!ただし、取り扱い注意!! ライフサイクルルールとは 単純にいうと、s3内のファイルライフサイクル管理ですかね。(そのまま ライフサイクルルールには、2種類ありまして。。。 1.移行アクション – 別のストレージクラスにオブジェクトを移行するタイミングを定義します。たとえば、作成後 30 日目に STANDARD_IA (IA、少頻度アクセス) ストレージクラスにオブジェクトを移行し、作成後 1 年目に GLACIER ストレージクラスにオブジェクトをアーカイブするよう選択すること
次のページ
このページを最初にブックマークしてみませんか?
『Database JUNKY』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く