サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
hit.hateblo.jp
よくテーブルデザインをする際、あれ?これって予約語じゃね?って時ありませんか? もっと細かくみたい場合、WEBで調べるとか・・・ちょっとめんどくさいですよね。 いままで全然、知らなかったのですが、MySQL 8.0以降では、予約語をこんなに簡単になりました。 これは簡単!information_schema.KEYWORDSテーブルに予約語が格納されております!! information_schema.KEYWORDS SELECT * FROM information_schema.KEYWORDS LIMIT 10; ---- +------------+----------+ | WORD | RESERVED | +------------+----------+ | ACCESSIBLE | 1 | | ACCOUNT | 0 | | ACTION | 0 | | ADD | 1
タイトルで爆速は大げさかな(汗) ここ数日、ブログを書こうとしたら、このmacの中から何かカリカリ音がして、なんだろう?と気になってはいたのですが、その翌日にさらにおかしくなり、文字を入力すると、変換の部分でピタっと画面がとまるとか(笑)筐体をぶっ叩くと、日本語変換できるとか、もーあきらかに動きが変なんですね(汗) じゃあ、この際だからmac初期化してディスクを綺麗にしようと試み初期化は終わり再インストールしても、やっぱりピタっと止まる・・なんだこれ? ハードディスク見てもエラーではないし、でも原因は、ハードディスクっぽいって感じ。 色々対策して、今ここで爆速iMacでブログを書けるまでになった対応を(記念に)メモします。 ・・というかわかっている人が対応したら、半日で治ったのかのしれませんが汗 USB C Mini DisplayPort 変換ケーブル Thunderbolt 3対応 u
こんなの不可能だろと思いつつやってみたら以外と出来たというクエリーについて紹介します。 JOIN のON句にLIKEを使うというだけなのですが、これが以外と使える場面があります。今回、音楽のアーティスト名周りでこの難解なSQLをどのように活用するかを考えてみました。 テーブル アーティストテーブル アーティスト名とId (アーティストID)が含まれているテーブルです 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS) ゼロからわかる SQL超入門 (かんたんIT基礎講座) > DESC tbl_artist ; +-------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra |
たまにしかやらない DNS変更作業、いざやろうとすると、あれ?どうするんだっけ?ってなりませんか?少なくとも私はそうなりました。 今回、お名前comでドメインを登録したのですが、DNSは、aws route53のほうが管理しやすいので、切り替えようと考えました。 そして、調べて実施したのが、 お名前comからroute53のドメイン移管(ドメインレジストラ移管) でした。完全に舵を取り違えた感じです(汗) そしてそもそもの認識違いの発端。。。 ご指摘通り、DNS移管という、謎キーワードを、脳内で作成しまったからであります。 DNS移管ではなく、DNS変更です(汗) この間違えを踏まえ、メモがわりに記事を掲載しようと思った次第でありまして。。 内容は、お名前comのDNSをroute53に切り替えた話です ドメイン移管とDNS更新の違いについて ドメイン移管 ドメイン移管とは、ドメイン管理業
当記事、2012年に書いた記事になりますので、hyperdbがあるかないのかもわかりませんが、当方で活用する案件が発生しましたので、再アップしました。 思っていたより簡単にできた、そして結果からいいますと、思っていたよりパフォーマンスがよく無かった記憶があるのですが、こちらで検証したチープな環境だったからでしょう。。。きっと 表題の通り、wordpressのデータベースを、MySQL レプリケーションを駆使して負荷分散する際に活用できるプラグインです。それプラスといってはなんですが、KeepAlived(LVS)を間にはさんで、スケールアウトしやすい構成にしていました、以下の構成図になります。 データベースは、MASTER :1台 SLAVE :3台 の構成 更新用のVIP(192.168.101.80)、参照用のVIP(192.168.0.70)の二種類を利用し、参照用のVIPでロードバ
はじめltsvってapacheのモジュールかと思ってましたら・・そうじゃなくって、単純にLogFormatをラベル付きのログを出力する形式ってだけなんです。 でも、また、これが便利、たとえば、access.log等は、標準ではラベルが入っていないため、大量にある場合、若干みづらいですよね。これがltsvであれば、ぐっと見やすくなります。 ltsv.org 実際に試して見ましたが、ltsvってとっても便利!っていう話と、例として、apacheでの設定を中心で、おまけでnginxではどのように設定するのかなんていうのを書いていきます apacheでの設定例 ltsvを利用するにあたってapache httpd.confに以下の通り設定されているか確認してください。yumでインストールとかした場合は、基本的に入っているので、あまりきにしなくて良いかもしれません。 /etc/httpd/conf/
いいねってなに? 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
MySQLとヒアドキュメントをうまく使いこなされば、さくっとSQLをファイルを作ることができます。はじめは戸惑いますが慣れれば簡単です。数百回はやったかも(^^;) ヒアドキュメント(heredocument)自体は、MySQLとはまったく関係のない話、そもそもbashではありますが、MySQLとbashヒアドキュメントの相性は大変良いので、この機会に覚えておいたほうが良いかもしれません。 また、ヒアドキュメントを有効に活用できるようになれば、プログラムを作らなくても、シェルスクリプトだけで、バッチ処理を作ることも可能になり、なんにせよ、高速です!(プログラムが遅いっていっているわけではありませんのでそのは誤解しないでください) ヒアドキュメントを使って、SQLファイルを作成する例 今回の例で、EOT の名前にしましたが、別に、DOCでも良いし、とにかくEOT ~ EOTの間が文中でかぶら
MySQLおよび、MariaDBでの文字列結合関数といえばCONCAT(コンキャット)です。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.5 文字列関数 文字列結合にいちいちconcatなんていう関数を使うのはめんどくさい、且つわけがわからなくなるので、パイプ(||)ショートカットでconcatと同様の操作がおこなえるように変更するtipsです ビッグデータ分析・活用のためのSQLレシピ concat を利用した場合 パッと見た限り、カンマが文字列なのかそうではないのかわからなくなりますよね汗 SQL SELECT concat('現在の時刻は',current_timestamp,'です','明日は晴れかな?','雨かな?','晴れたらいいな') ; 結果 mysql> select -> concat('現在の時刻は',current_timestamp,
異なるバージョン、もしくは、異なる サーバ間で、データベースの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にリストアしている
意外と知らなかったです。 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等の起動コマンド・起動シェル内では設定しても動いてくれない(汗) コンソールから
MySQL(MariaDB)には、レンジパーティションってものがありまして、うーなんでしょ?ある規則にしがったデータをおのおののデータファイルに振り分けてくれるストレージエンジン的なものです。 データ領域が分割されるため、大量のデータを処理することによる性能上のボトルネックの発生を抑えられる MyISAMなど、テーブルサイズに上限がある場合でもそれ以上のデータを格納することが可能になる といった点です。 MySQLでもMariaDBでも、古いバージョンからある機能ではありますが、数百万規模のデータですとSQLの条件によって、読み込む分母のレコード数が少なくなるため、パフォーマンスは向上するわけですね。 サンプルテーブル こんなテーブルを作ってみました。非パーティショニングテーブルですね。つまり普通のテーブルです。これをベースにパーティショニング化を検証してみます。 | sample_tab
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
awsにて、動画共有サイト、画像共有サイトでもそうだと思いますが、ec2インスタンスのコストよりかかるのが、ずばり!転送料です。一部のサービスでは、ec2のインスタンスコストよりデータ転送料金のほうがコストがかかっているという話をよく聞きます たとえば利用料金。。 サービス事業から見ると、大した額ではないかもしれません、しかし、私から見れば、一日でお給料がすっ飛びそうなお値段だと思ってます。 これを、ここまで下げることができました!! 今回、どのように、awsの転送料金を下げたかについて説明していきたいと思います S3の料金体系を学ぶ 個人的な主観ですが、s3の料金体型はほんとうにわかりずらいです。。 awsを利用するメリットは数多くありますが、一番恐れるのが、コストとして予測しずらい転送料の部分なんですよね。 qiita.com を参考にさせていただきました。kawazさん曰く、 一番高
MariaDBでマルチソースレプリケーション 私的に待ちに待ったあの機能が追加されました。それは、マルチデータソースレプリケーション、mariadb10.0から実装されるという話は知っておりましたが、ようやく触る機会がきたので試してみようと思います。 余談ではありますが、弊社では、30スキーマはあろうデータベースをこれで一台に集約しておりますので、ちゃんと実績はありますのでご安心を そもそもマルチソースレプリケーションとは何? 異なる2つのインスタンスのデータベースを、1つのSLAVEでレプリケーションしちゃおうという意味です。たぶん言葉で説明するのは難解なので、図を以下に載せます。 え?これって、昔からできるんじゃないの?と思った方(自分)。実は、MySQLはこれができなかったのです (T_T) MySQLのレプリケーションを触り始めた時は、マルチマスターレプリケーションがそれだと思って
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の問題とは? サーバ
かなり前に、なければ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テーブルの内容
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
あ、別にawsでなくてもいいのですが、そしてshellでなくても良いのですがw よくあるかどうかまではわかりませんが、アプリケーションを手動で起動して待機させる系統のものって、インスタンスを再起動さける時に、あら。動いてない。。。なんてことがありますよね?まぁ、インスタンスが起動してから、手動で実行すればいいのですが、それも面倒なので、この際、インスタンスが起動したら、自動的にアプリケーションが起動するという設定をしてみようじゃないかと思いメモがてら書いてきます。 今回の例は、pythonは、 api_app.py と app.pyをshellで起動する例(というかメモ)で、説明します。 対象python appをshell化 shell化っていうか、shellの中にpythonを書いただけです。 ログアウトした時、プロセスが落ちないように、nohupを入れて、且つ、バックグラウンドで起動
ソニー SONY ワイヤレスヘッドホン WH-CH510 : bluetooth / AAC対応 / 最大35時間連続再生 2019年モデル ブルー WH-CH510 L 出版社/メーカー: ソニー(SONY)発売日: 2019/10/05メディア: エレクトロニクス 他のDBはよくしらないですが、MySQL系のSQLをSQL文中にユーザー変数を含めることができます。この手法を理解すると、洗練されたSQLを記述することができます。 変数の利用は、SET文を用いる方法と、SELECT ~ INTO を用いる2種類の方法があります 以降、それぞれのケースに合わせた変数の使い方を説明します 代入 SET文を利用する方法と、SELECT INTOを使う方法を説明しております SET文を利用する方法 SET @DATE=CURRENT_TIMESTAMP ; SELECT @DATE AS now_
MySQL8.0にするなら、WITH句で!共通テーブル式を使いましょう! MySQL8.0を使いたい理由は、CTEに対応したからなんです!! そもそも、MySQL 8.0を使いたかった理由って、共通テーブル式が実装されてからなんです! 私自身は、 IBM DB2でかなりお世話になりました。やがて年は過ぎ、MySQLしか触らなくなったのですが、WITH句ってどんなRDBMSにも付いているものだとばかり思っていたのですが、無い。。MySQLは無かったんですよね(汗) おかげさまで、サブクエリーのサブクエリをごりごり書く生活に慣れてしまいました。 今回は、このCTEを利用して、どれだけ、SQLが綺麗になるのかを見せたいと思います! テーブル 今回、CTEとして利用するテーブル定義です CREATE TABLE `loglog` ( `id` bigint(20) unsigned NOT NUL
nagiosのアラートをlineに通知する方法をまとめました。インフラの設計、および運用管理をしていると、かならず発生するのが、システム障害です。その障害は、寝ている時であろうと、ごはんを食べている時であろうと、はたまた休日であっても発生します。インフラエンジニアには休みはありません(汗) しかしながら、外出時、もしくは寝ている時も、気づかない場合があります。まーその、、、人間だからしょうがない。。スマホでslack連携しているし、通知もするようにしているから大丈夫だよ!!というケースもあります、でもでも、スマホでも気づかないことって結構あります。まず、歩きスマホしながら外出しないので、きずいた時には、slackに大量のアラートがわらわらと。。。 このようなケースを可能なかぎり避けたい、障害に早く気づきたい! そんな時に思いついたのが、nagios通知とスマートウォッチ連動です。これなら外
無事、システムもMySQL 8.0化が成功し、じゃあ今後、どう活用していこうと考えた時に、まずやったのが、WITH句なんですが、 hit.hateblo.jp 他にもいっぱい機能がアップされた部分があって、その中で、今回JSONで追加された関数を主に試してみました。 今回は、以下の関数を試してみたいと思います JSON_TABLE JSON_ARRAYAGG JSON_OBJECTAGG JSON_PRETTY JSON_OBJECT JSON_EXTRACT JSON_UNQUOTE こんなサンプルを使って説明します テストテーブルを作成 DROP TABLE artist_json ; CREATE TABLE `artist_json` ( `id` bigint NOT NULL, `ext` json DEFAULT NULL, PRIMARY KEY (`id`) ) ENGI
MySQL5.6~ で日本語全文検索ができるぞ!!! 最近MariaDBばかりやっていて、MySQLの存在を忘れていたのですが、今まで英語しか利用できなかったのに、いつの間にか標準で日本語全文検索ができるようになっていたので、久しぶりに触って見ようと思います。これがまた、意外に簡単!だったので、その設定/実装方法をできるだけ簡単に紹介したいと思います 全文検索とは あれですね。通常テーブルに設定するカラムの索引ではなく、行全体に対して、インデクシングをする設定といえばいいのかしら IROTEC(アイロテック) ラバー ダンベル 40KGセット (片手20kg×2個) 筋トレ ダイエット ダイエット器具 トレーニング ベンチプレス 筋肉 出版社/メーカー: 株式会社スーパースポーツカンパニーメディア: その他購入: 2人 クリック: 31回この商品を含むブログを見る ウィキペディアで見るとこ
その索引使われていますか? MySQLで長年運用しているうちに、パフォーマンスチューニングが必要になって、ほとんどが、チューニング効果の高い、索引チューニング(インデックスチューニング)をしていきますよね。そんでインデックスをぺたぺた張っているうちに、インデクスだらけになり、気付いた時には、テーブルの全カラムに対して索引が設定されてたなんてことないですか?(自分だけかも) その索引、本当に使われてますか? 使われていない索引が大量に存在すると、データの更新パフォーマンスが低下します。的確な答えではないのでですが、インデックスはある意味、インデックスのデータを含めたテーブルが一個できるといった認識をもってくれれば、使った数だけ、テーブルが増えていくって感覚をもってくれればイメージがつきやすいかな?って思います。 ということで、MySQL8.0で実装された、インビジブルインデックス(INVIS
IPad + 外付けキーボードで、インフラエンジニアさんがネックのなるのは、ESCキーが無いこと。。もちろんショートカット( CTRL + C )でその代用はできるのですが、普段やらない操作なので、ちょっとイラっときてしまいます(自分だけかも) またまた。。 今回もハードウェアキーボードのお話になりますが、なんと!? iPadでESCキーが有効なキーボードを見つけてしまったのです! それがこちらになります!! おかげさまで、外出時に喫茶店などで、緊急の対応をiPadでさらっと行えることができる。いや、ノートPC持てよ!って話が出そうですが、いやいや、ノートPCに比べれば、もう重量が変わってくるし、コンパクトですよね!! そんな中で、ベストマッチのキーボードを見つけてしまいました! そして商品説明に良い意味で偽りあり!!やっと引き当てた、iPadキーボード! Anker ウルトラスリム Bl
MySQL 8.0 バージョンアップしたら、速度が2倍向上!便利な関数が使える!!等、色々なメリットがあります。 ・・が、 通常のサービスでデータベースがメジャーバージョンアップしたからといってサービスを停止して、バージョンアップってしないかなー?って思ってます。自分がやるのであれば、別のサーバ立てて旧バージョンからレプリケーション!可能な限り、ダウンタイムを減らしたいのでこの手法一点で進めます ただ、今回は、かなり苦戦しています 次回、同じ状態にならないように、備忘録に残しておきます。 [Amazonブランド]Presto! マスク ふつうサイズ 200枚(50枚×4パック) PM2.5対応 出版社/メーカー: ヘルスタージャパンメディア: ヘルスケア&ケア用品この商品を含むブログを見る バックアップ mysqldumpに注意!! MySQL 8.0クライアントから、MySQL 5.7の
awsのバケットの削除、もしくは、フォルダの中身の削除、s3のコンソールからでも行えるのですが、この中身が大量にあると一苦労。あっさり消えてくれません。もしくは、webのセッションがタイムアウトしてしまって、作業時間の無駄になってしまいますw ここは、もっと効率よく、ライフサイクルルールで大量削除を実施しましょう!ただし、取り扱い注意!! ライフサイクルルールとは 単純にいうと、s3内のファイルライフサイクル管理ですかね。(そのまま ライフサイクルルールには、2種類ありまして。。。 1.移行アクション – 別のストレージクラスにオブジェクトを移行するタイミングを定義します。たとえば、作成後 30 日目に STANDARD_IA (IA、少頻度アクセス) ストレージクラスにオブジェクトを移行し、作成後 1 年目に GLACIER ストレージクラスにオブジェクトをアーカイブするよう選択すること
インスタンスタイプを変更したら、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
次のページ
このページを最初にブックマークしてみませんか?
『Database JUNKY』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く