MySQLで複合列PKなテーブルに対するWHERE条件でINを使うと、実行計画が変わる?
何言っているかわかんねえよ。と思うので、事例で語る。なお、この事象が出たのは、MySQL5.6.23です。実験1:PK列が1つのケース準備こんな感じでテーブルとデータを用意します。mysql > createtable test_in_exp_tbl( -> col1 int(11) notnull, -> col2 int(11) notnull, -> col3...
View ArticleMySQLのトランザクション制御がキモい話
MySQL Casual Advent Calendar 2016 - Qiitaの5日目の記事です。AdventCalendar自体初参加でドキドキ。トランザクションの開始は、BEGINしたときじゃない!MySQLでは、BEGIN(START...
View ArticleJOIN ON で絞り込み条件を入れるのと、JOIN ONの後WHERE句で絞り込み条件を入れるのとでは、結果が違う件
MySQL Casual Advent Calendar 2016 - Qiita 12日目の記事です。まさかの3回目。もうムリ。。。JOIN ON句で結合条件ではなく絞込条件を書くことができることを、知らなかったのです。具体的な名称がわからない&検索にもヒットしにくいので、勝手に名前をつけました。「JOINに直値」わかりにくいと思うので、サンプルSQL書きます。SELECT...
View ArticleMySQLのChar型のデータサイズについて小ネタ
MySQL Casual Advent Calendar 2016 - Qiitaの 18日目です。がんばった。もう小ネタしか出てこない。MySQLのchar型宣言時の数字は「データサイズ」ではなくて、「文字数」っていうのは、ワリと有名。Oracleからやってくると戸惑うところではあるけど、ワリとすぐに慣れるよね。...
View Articleお兄さんとの約束は守ろう!(MySQLのtx_isolationとbinlogの話)
MySQL Casual Advent Calendar 2016 - Qiita...
View ArticleDell Inspiron 11 3000(3162)エントリープラスを買いました(検討~購入編)
こんなPCです。Dell ノートパソコン Inspiron 11 Pentiumモデル ホワイト 17Q12W/Windows10/11.6インチ/4GB/128GB出版社/メーカー:Dell Computers発売日: 2016/02/19メディア: Personal Computersこの商品を含むブログを見る液晶:11.6インチ WXGA (1366x768) CPU:Pentium...
View ArticleDell Inspiron 11 3000(3162)エントリープラスを買いました(到着後)
到着後、と言いつつ、到着までの話から。納期の件BTOなので、発注後に海外工場で組立工程に入り、運送フェーズに入ったところで到着予定日が見えるシステム。最初に表示されたのが、発注日+7日。お、MyNA間に合うじゃん、ってウキウキしてたら、船便が日本に到着して佐川急便に引き渡されたところ?で予定日変更で発注日+10日。なぜか国内で、しかも関東圏内の佐川での輸送3日消費するような日程表示になっていて、諦め...
View ArticleKindleよりも紙で読む方が向いてる本
Kindle版、便利だよね先日、ダンボールにして10箱、300冊近い蔵書を処分したのを機に、なるべく電子書籍、なるべくKindle版で購入しようと思い始めています。保管場所の問題が最大の理由ですが、処分する際の中古引取価格を見て、「Kindle版と紙版の価格差>中古買取相場」なケースが多いことも、Kindle移行を真剣に考えるようになった理由の1つです。Kindle端末もタブレットも持っていないので...
View Article「AWS 認定ソリューションアーキテクト - アソシエイト」合格した
どんな試験すでにたくさんの方が受験し、レポっているので、今更感たっぷりですが。AWS認定ソリューションアーキテクト ? アソシエイト試験は、AWSプラットフォームでの分散アプリケーションとシステムの設計経験がある個人を対象としています。この試験では以下について理解していることが求められます。AWSにおけるスケーラビリティ、高可用性および高耐障害性の設計とデプロイ既存のオンプレミスアプリケーションの...
View ArticleMySQLに対して定期的に実行して結果を保存しておくと幸せになれるアレ
ワンライナーmysql -uユーザ -pパスワード -h接続先 -e"SQL文" | sed-e's/\t/\" \"/g' | sed-e's/^/\"/g' | sed-e's/$/\"/g' | sed-e"s/^/$(date '+%Y%m%d %H:%M:%S') /g">>ファイル...
View ArticleMySQLで幸せになれるヤツの続き-パスワードを隠蔽する方法
パスワードをゴニョゴニョする前にatsuizo.hatenadiary.jpでパスワードを生テキストで書くなって人はゴニョゴニョしてください。って書いた話の件ですが、なんでこんな話になるの、ってところをまず押さえましょう。mysqlクライアントでのログイン方法あれこれ普通は、以下のように指定してログインを行うと、パスワードについてプロンプトがきて、そこで入力します。入力内容は見えないやつです。(サン...
View ArticleMySQLで幸せになれるヤツの続き-列名の行は都度いらなくない?
atsuizo.hatenadiary.jpで挙げたワンライナーを見て、タイトルのような疑問を持った人もいるかと思いますので、そのへんの補足です。お好みでどうぞ「-N」オプションを付与すると、SQL実行毎に表示される列名の行を除外して出力させることができます。なんで、「-N」なしの例示だったのかこれもCloudWatchLogsでの検索に絡んで、2つの理由があって列名の行を出力させています。視認性の...
View ArticleMySQLでキャラクタセットを変更する
キャラクタセットはカラムレベルで持っているOracleの場合はデータベースレベルで持っているキャラクタセット定義ですが、MySQLの場合、キャラクタセットはカラムレベルで持っています。ですので、同じデータベース、テーブルの中で、カラムによって別々のキャラクタセットを持つこともMySQLでは可能です。(誰がそんな使い方するんだよ)そして、データベース、テーブルレベルで「デフォルトの」キャラクタセットは...
View ArticleノートPCと愛称の良い「USBハブ+優先LANアダプタ」
ノートPCの薄型化の影響で有線LANポートが無い機種、増えてますよね。クラムシェル、2-in-1の折りたたみタイプ、セパレートタイプなど、薄さを追求するデザインを求める傾向に拍車がかかっています。MacBookみたいに「USB...
View ArticleMySQLの文字列型の扱い
先日、この記事が公開されていたのでgihyo.jpアレ?って思ってドキュメント見直して、手元の環境でも実行してみました。確かに「その通り」だったのだけど、ドキュメントに書いてあるとおりのこと、かつ、「その一部」の話だなーとおもったので、もうちょい補足するつもりで。「その(公式ドキュメントの)一部」、っていうのは、記事中は「取り出し時のサイズ」の話だけをしていて、「消費するストレージサイズ」の話には言...
View ArticleMySQLのセッションタイムアウトの制御
timeout系パラメータはいくつかあるけれど新規接続時のタイムアウト(connect_timeout)ではなく、一度確立した接続がタイムアウトで切断される現象に影響するタイムアウト設定のお話。ERROR 2013 (HY000): Lost connection to MySQL server during...
View Article人に仕事を依頼する立場に立ったら
自分でやった場合の手順を想像するそのとき、必要になる情報、前提条件、完了条件が何かはっきりさせる。どれくらいの時間が掛かりそうか見積もる。これを疎かにすると依頼の際に被依頼人との調整に必要以上に時間がかかる被依頼人の作業が滞る被依頼人の作業見積もりと乖離があると、依頼自体を断られることもある(依頼側が勝手に)期待した納期で成果物が上がってこない上がってきた成果物をレビューする観点が足りず、品質が上が...
View Article