タグ

mysqlに関するyuta0121のブックマーク (15)

  • RDS(MySQL)からCSVエクスポートを行う方法についてまとめてみた | DevelopersIO

    AWSに於けるビッグデータ分析環境構築に於いては、DWHであるAmazon Redshiftにデータを貯めこむ為に様々な経路からCSVやJSONファイルをS3等の環境に集約する作業が必要となります。そしてその作業の中にはオンプレ環境を始めとした外部データソースをAWSに集約するという経路がある一方で、AWS環境下にあるデータをAmazon Redshiftに投入させるために一旦ファイルとして出力させる(そしてAmazon Redshiftに投入する)という経路もあるかと思います。そこで当エントリでは、『RDS(MySQL)からAmazon Redshiftにデータを移行する際にどのような手段を取ることが出来るのか』という点について、幾つか洗い出してまとめてみたいと思います。 目次 EC2上でmysqlコマンドによるクエリ実行結果をファイルとして出力 mysqlコマンドでTSVファイルを生成

    RDS(MySQL)からCSVエクスポートを行う方法についてまとめてみた | DevelopersIO
  • 『mysqlの外部キー制約でtuncate table エラー ERROR 1701 (42000』

    IT忘備録・メモ書きと日記 IT、ネット、プログラミングなどの忘備録、メモ書きが中心です。あと日記も少々です。もしかしたら皆さんのお役に立てる情報があるかもしれません(`・ω・´) mysqlでtruncat tableしたらエラーが出た。 ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint 外部キー制約の問題。なので、一時的に外部キー制約を無効にし、truncateしたら外部キーを有効に戻す。 mysql> set foreign_key_checks = 0; Query OK, 0 rows affected (0.00 sec) mysql> truncate table hogetable; Query OK, 0 rows affected (0.01 sec) m

  • MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ

    MySQLUTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。 MySQLUTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。 UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。 utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。 登録 接続が utf8mb4 でカラムが utf8mb4 あたりまえですが、そのまま登録されます。 mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺'); mysql> select * from utf8mb4; +--------

    MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ
  • Dockerコンテナを使ってMySQLのレプリケーションをやってみる - >> work.log

    前回の記事 の続きです。 2つのホストにそれぞれMySQLコンテナを作成してレプリケーションをしてみました。 今回はDockerでやっただけでVPS等でもやり方は一緒のはずです レプリケーションの設定はOracle主催のMySQLセミナーで頂いた資料を元にしています。 MySQLの準備 docker-machineでホストから作成する ホストの作成 master と slave という名前でホストを作成します $ docker-machine create --driver virtualbox master $ docker-machine create --driver virtualbox slave $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM master virtualbox Running tcp://192.1

  • Docker で レプリケーションつきの MySQL を立ち上げる - Qiita

    Docker を使って、Master-Slave のレプリケーションを行うMySQLサーバをセットアップするサンプルスクリプトです。 https://github.com/essa/docker-mysql-repl 概略 一連のスクリプトを順番に実行するだけで、Master-SlaveのMySQLサーバが動きます MySQLサーバは、Dockerのコンテナの中で動きます DBの実体は、Host側に持ち、それをコンテナがマウントして使います 私は、MySQLDockerも勉強中で、あまり詳しくありません。格的な運用に耐えるものではありませんが、gitlabredmineのような、開発者用のWebアプリを自動バックアップ付きでサクっと立ち上げる時には参考になるかもしれません。 実際に使用する際は、必ずご自分で各スクリプトの内容を確認して、パスワード等を変更してお使いください。 下記のス

    Docker で レプリケーションつきの MySQL を立ち上げる - Qiita
  • Docker Hubのオフィシャルイメージを使ったLAMP環境(Apache+PHP+MySQL)構築 - Qiita

    やること Docker Hubのオフィシャルイメージを一行で立ち上げる データの置き場所を考える Dockerfileによるイメージのカスタマイズ Dockerfileを使わないカスタマイズ イメージの連携 ホスト側の環境 今回はUbuntu 16.04の64it版ISOをインストールしました。Dockerは32bitのOSでは動かないのでご注意。 仮想環境で使う場合は、

    Docker Hubのオフィシャルイメージを使ったLAMP環境(Apache+PHP+MySQL)構築 - Qiita
  • MySQLインデックスの基礎 : ひとつのテーブルに対するクエリの最適化法 | Yakst

    MySQLのインデックスを効果的に使うにはどうしたらいいのかについての分かりやすい解説。そもそもインデックスの役割はとは何か、そしてどうすればその役割を果たしてくれるのかを説明する。 たとえ1つのテーブルだけに対して実行されるクエリでも、パフォーマンスが悪いというのはよくあることです。その理由は簡単で、インデックスの作り方がまずいため、実行計画がおかしくなってしまうのです。ここでは、1つのテーブルのみに対する色々なクエリを最適化するためのガイドラインを挙げてみたいと思います。 おことわり : あらゆる状況をカバーしようとはせず、一般的なガイドラインを提示するに留めるつもりです。ここで挙げたものがうまく適用できない例を簡単に見つけることができるのは間違いないでしょうが、ほとんどの場合はここに書いたことが十分なのも事実です。また、MySQL 5.6以上にあるIndex Condition Pu

    MySQLインデックスの基礎 : ひとつのテーブルに対するクエリの最適化法 | Yakst
  • MySQLで処理に長時間かかっている複数クエリをまとめて殺す方法 | Basicinc Enjoy Hacking!

    あまりにも処理に時間がかかるようなSQLを実行してしまい、MySQLがうんともすんとも言わなくなってしまうような状況、よくありますよね。っていうか、まぁそんな状況あってはならないんですが、時たまあります。そんな時、問題となっているクエリの処理を止めたいわけです。 特定のクエリを止める方法 MySQLで実行中のクエリ一覧を見て、SQLを強制終了する方法 こちらを見てもらえればやり方は分かります。単純にMySQLに入って、show processlist;で問題のあるクエリを発見し、プロセスIDを kill するだけ。とても簡単。 複数のクエリを一括で止める方法 今回は問題のあるクエリが100個あったらどうする…?的なのを解決するエントリーです。まぁ、問題あるクエリ100個ある状況は、アプリ的に問題あるんじゃね?っていうレベルですが。 1個ずつプロセスIDをコピペして…なんてやってられないです

    MySQLで処理に長時間かかっている複数クエリをまとめて殺す方法 | Basicinc Enjoy Hacking!
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • mysql5.6 rpmインストール on CentOS6.5 - Qiita

    $ rpm -qa | grep mysql mysql-utilities-1.3.6-1.el6.noarch mysql-server-5.1.71-1.el6.x86_64 mysql-libs-5.1.71-1.el6.x86_64 mysql-5.1.71-1.el6.x86_64 mysql-connector-python-1.1.4-1.el6.noarch mysql-devel-5.1.71-1.el6.x86_64 $ wget -q http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.20-1.el6.x86_64.rpm \ http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.20-1.el6.x86_64

    mysql5.6 rpmインストール on CentOS6.5 - Qiita
  • 照合順序をutf8_general_ciからutf8_unicode_ciへ変更する - 馬場誠Blog(茨城県取手市で働くWebクリエイター)

    MySQLにて照合順序(colllation)の変更をする機会があり、少し調べたので自分用メモ。 やりたいことは、utf8_general_ciになっているテーブル(&フィールド)を、utf8_unicode_ciにするということです。 簡単なことなのかもしれませんが、今まで途中から照合順序を変更したことが無かったので、なかなかいい機会となりました。 方法 テーブルの紹介順序は、下記のSQLで簡単に変更できました。 ALTER TABLE `テーブル名` COLLATE utf8_unicode_ci が、、、しかし。すぐに気づかなかったのですが、これではフィールドの紹介順序は元のutf8_general_ciのまま変わらないんですね。 どうやら個別にフィールドも指定してやる必要があるようです。 ALTER TABLE `テーブル名` MODIFY COLUMN `フィールド名` VARC

    yuta0121
    yuta0121 2014/12/16
    collateの変更
  • 運用視点なMyISAMとInnoDBと。 – LexTech

    MySQL5.5からトランザクション処理ができるInnoDBがデフォルトストレージとなりましたし、とりあえずInnoDBにしとこうという風潮から、ストレージがInnoDBであることも多いのですが、実は蓋を開けて見るとまだまだMyISAMで動いているサービスがたくさんあります。今回は運用面から見た両者の違いをみてみたいと思います。 同じMySQLですが、InnoDBの運用とMyISAMの運用は注意するポイントが違います。 ロック方式 一番大きい違いはロック方式の違いでしょうか。InnoDBは行ロック方式(*1)、MyISAMはテーブルロック方式です。データをINSERTやUPDATEする時はセマフォ制御のためロックされますが、その時の挙動が違います。 たとえばUPDATEのクエリを投げると、MyISAMの場合は対象テーブル全体がロックされ、その後のクエリが”詰まり”ます。なので重いクエリを発

  • MySQL 今月のデータを抽出

    Excel で一部の図形(オブジェクト)だけを動かないように固定したいことがあります。 シートの保護でロック このように重なっている図があったとします。 ここで、後ろ側の菱形の図を固定したい場合の方法です。 固定しない図を選択 して右クリック、図形の書式設定をクリックします。(メニューの図形の書式でもこの設定を出せます。後述) サイズとプロパティ(一番右のアイコン)の中にあるプロパティを展開し、「ロック」のチェックを外します。ロックのチェックを外した図がいじれる図(固定しない図)になります。 次に、メニューの「校閲」にある「シートの保護」をクリック。 シートの保護で、「ロックされたセル範囲の選択」のチェックを外します。 これで先ほど「ロック」を外した図以外は固定(クリックできなくなる)されます。 解除したい場合 、校閲、シートの保護でロックされたセル範囲の選択のチェックを入れれば戻ります。

    yuta0121
    yuta0121 2013/11/19
    Mysqlでの○月の抽出方法
  • MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.1.1 文字列

    文字列は、単一引用符 (‘'’)または二重引用符 (‘"’)で囲まれたバイトもしくは文字の並び(シーケンス)です。次に例を示します: 'a string' "another string" ANSI_QUOTES SQLモードで実行時は、文字列リテラルは単一引用符でのみ囲まれます。これは、二重引用符で引用された文字列は識別子として解釈されるためです。 バイナリ文字列はキャラクタセットや照合順序を持たないバイト列のことです。 バイナリでない文字列は、キャラクタセットや照合順序を持つ文字列のことです。これら両方の文字列タイプは、文字列ユニットの数値に基づいて比較されます。バイナリ文字列にとって、ユニットとはバイトのことです。バイナリでない文字列にとってユニットとは文字であり、マルチバイト文字を認めるキャラクタセットもあります。文字値の順序は、文字列照合順序の関数です。 文字列リテラルでは、オプ

    yuta0121
    yuta0121 2013/09/21
    バックスラッシュが無視される問題
  • 昇順ソートでNULLを後ろにもってくる方法 - LukeSilvia’s diary

    MySQLの昇順ソートの問題 それは、昇順でソートすると、基準カラムがNULLの場合、それが先頭に来ることだ。実装としては正しいかもしれないが、NULLが最後に来てほしい場合もある。 しかし、MySQLには(少なくとも4.1系には)それを指定するオプションがない。よって、昇順にソートすると次のようになる。 例:面接に予約した学生を予約日順に昇順ソートする SELECT students.id,held_date_time FROM students LEFT JOIN interviews on students.interview_id = interviews.id ORDER BY held_date_time; +----+---------------------+ | id | held_date_time | +----+---------------------+ | 2

    昇順ソートでNULLを後ろにもってくる方法 - LukeSilvia’s diary
    yuta0121
    yuta0121 2013/08/01
    []
  • 1