タグ

mysqlに関するfoaranのブックマーク (90)

  • PlanetScale を AWS Lambda から使ってみた

    記事は2022/03/14に書いたので、現在では使えない情報があるかもしれません。 PlanetScale[1]とは、『MySQLと互換性のあるサーバーレスデータベースプラットフォーム』です。 AWSで相当するサービスは、Amazon RDS for MySQLAmazon Aurora MySQL になります。 PlanetScaleの特徴として、『ブランチ』があります。 gitの運用のように、developブランチには開発環境のデータを投入、masterブランチには番環境のデータを投入、といった使い方ができます。 また、アカウントを作成すればすぐに無料枠の範囲内でRDBが使えるため、検証用の環境としても優れています。 注意点として、「外部キーに対応していない」という点があります。外部キーを利用したい場合、アプリケーション側で外部キーに相当する実装が必要になるようです。 素晴

    PlanetScale を AWS Lambda から使ってみた
    foaran
    foaran 2022/03/11
  • サーバーレスMySQLのPlanetScaleをNext.js+Prismaで使ってみた - Crieit

    PlanetScaleというのはMySQL互換のサーバーレスデータベース。つまりどこからでもMySQL接続してデータベースとして利用できるサービス。 接続方法は普通によくあるようなパスワードを使ったデータベースURLで接続可能。そのためだいたいどんなフレームワークでも利用できる。 https://planetscale.com/ 無料枠がでかい すごく気に入った理由の一つとして、無料枠がかなり大きいことがあげられる。2022/1時点で容量10GB、書き込み回数は月100万回、読み込み回数も月1000万回と小さいアプリケーションであれば気にするレベルでないほど十分にある。ちょっとしたアプリをたくさん作っているという人にとってはとても嬉しい無料枠。 というのも同じく無料で使えるHerokuのJawsDBも容量5MB、最大接続数10と、むちゃくちゃ少なく、集客下手だから…と思いつつもちょっと心配

    サーバーレスMySQLのPlanetScaleをNext.js+Prismaで使ってみた - Crieit
    foaran
    foaran 2022/02/03
  • pgloader 3.4.1でMySQLからPostgreSQLへスマートに移行しよう(翻訳)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。今回はPostgreSQL向けの強力な移行ツールであるpgloader 3.4.1の紹介記事をお送りいたします。 pgloaderはHomebrewやappでビルドインストールしたりソースからビルドしたりできますが、できればライセンスを購入して作者のDimitri Fontaineを応援しましょう。 概要 原著者の許諾を得て翻訳・公開いたします。 元記事: from MySQL to PostgreSQL 元記事公開日: 2017/07/06 pgloader公式サイト: http://pgloader.io/ GitHubリポジトリ: dimitri/pgloader 原著者: Dimitri Fontaine: PostgreSQLのエキスパートであり、記事のpgloaderの作者でもあります。 日pgloader v3.4.1をリリースいたしま

    pgloader 3.4.1でMySQLからPostgreSQLへスマートに移行しよう(翻訳)|TechRacho by BPS株式会社
  • MySQL GROUP BYしたらエラーになった - かもメモ

    お久しぶりのMySQLMySQLで重複してるデータを取ろうとしました。 SELECT * FROM table_a GROUP BY name HAVING COUNT(*) >= 2; Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.table_a.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by MySQL 5.7からデフォルトでONLY_FULL_GROUP_BYオプションがONになっており、GROUP BYするデータだけを取ってきなさいよ。と

    MySQL GROUP BYしたらエラーになった - かもメモ
    foaran
    foaran 2020/02/28
    “一部のカラムでGROUP BYして、全部のデータを取ってきたいなら、GROUP BYしたデータサブクエリにしてWHEREの条件に"
  • MySQLと正規形のはなし

    2016/07/02 YAP(achimon)C:: Asia Hachioji 2016 mid in Shinagawa

    MySQLと正規形のはなし
    foaran
    foaran 2020/02/06
  • MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ

    こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、

    MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
  • WHERE .. IN (..)のリストの順番でソートするORDER BY FIELDの仕組み

    MySQLには`WHERE col IN (..) ORDER BY FILED(col, ..)`という書き方でINに並べた順番にソートしなおせるという知見がある。 こんなテーブルがあって、 mysql56> SELECT * FROM t1; +-----+-------+ | num | val | +-----+-------+ | 1 | one | | 2 | two | | 3 | three | | 4 | four | | 5 | five | | 6 | six | | 7 | seven | | 8 | eight | | 9 | nine | | 10 | ten | +-----+-------+ 10 rows in set (0.00 sec) INにテキトーな値を並べてやっても、 mysql56> SELECT * FROM t1 WHERE num IN

  • Docker で MySQL 8.0.4 を使う - Qiita

    mysql8.0 Mysql8.0 ではデフォルトの認証形式を mysql_native_password から caching_sha2_password に変更している。 https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html 起きたこと rake db:create で下記エラー Mysql2::Error (Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/x86_64-linux-gnu/mariadb18/plugin/caching_sha2_password.so: cannot open shared object file: No such file or direc

    Docker で MySQL 8.0.4 を使う - Qiita
    foaran
    foaran 2018/04/24
  • 『アメーバピグにおけるDB構成&対応記』

    2ヶ月前にインフルエンザとウィルス性胃腸炎でひどくダメージを受けた増田(@masudaK)です。アメーバピグは2009年2月に始まったサービスで、FLASH・Javaで作られています。そして、データストアにMySQLを用いてます。記事では、わたくしが2年ほど見続けているアメーバピグのDB環境について構成や、日々どのようにして問題と向き合っているかを紹介したいと思います。インフラ寄りの内容が多いため、アプリ寄りの話は弊社生沼の資料を御覧ください。 1. 構成と規模 1.1. 構成 まず構成ですが、読み書きはすべてマスターへ行うようにしています。そのため、スレーブには参照を向けず、ホットスタンバイとして使っています。バージョンに関しては2012年中旬までは5.0を使ってましたが、DC移転にあわせて5.5にあげました。ロック機能を用いたシャード構成をしてまして、2014年3月現在6シャードにな

    『アメーバピグにおけるDB構成&対応記』
    foaran
    foaran 2014/05/23
  • MySQLでクエリチューニングことはじめ

    最近、寒暖の差が激しいですがみなさん体調は崩されていないでしょうか? こんにちわ。モニプラ for Facebookを担当しています高橋です。 サービス開始当初は問題なかったものの稼働が高くなりデータ量が多くなって クエリのパフォーマンスが悪化すること…よくありますよね? 今回はクエリチューニングの基的な手順とケース別に解決方法を解説したいと思います。 クエリチューニングの手順 1.スロークエリログで問題のクエリをあぶり出す まずはどのクエリが問題なのか特定する必要があります。 アプリケーション側でクエリの実行時間を測定し自前でログを出力しておくというのも手ですが、 お手軽にMySQLの設定で一定時間以上掛かったクエリをログに出力しておくことができます。 スロー クエリ ログ(MySQL 5.1 リファレンスマニュアル) mysqldを–log-slow-queriesオプションつきで起

    foaran
    foaran 2014/05/20
  • MySQL Sandboxを使ってみる - まめ畑

    MySQLを使用したテスト環境を構築する時に便利なMySQL Sandboxを使ってみました。 1台のノードに複数のバージョンのMySQLをインストールしたりする際は、MySQLサーバの共存の設定やポート番号などを設定したりと何かと面倒でしたが、Sandboxを使用することで簡単に解決することが出来ます また、簡単にレプリケーション環境を構築出来るほか、コマンド一発で全MySQLサーバにSQLを発行できたり、インストール時の状態に戻すことが可能なので、テストをする際に重宝します インストール perlがインストールされていなかったら、インストール sudo yum -y install perl sudo sudo cpan -i MySQL::Sandbox 使用しているOSにあったMySQLのバイナリをダウンロード wget http://dev.mysql.com/get/Downl

    MySQL Sandboxを使ってみる - まめ畑
    foaran
    foaran 2013/03/03
  • MySQL::Sandbox - 日向夏特殊応援部隊

    MySQL::Sandbox はお手軽に MySQL のサーバーを立ち上げるツールで、ちょっとしたテスト環境を構築するとかに非常に便利なプロダクトです。 とりあえずインストール $ sudo cpan -i MySQL::Sandboxでインストールしてから OS ごとの実行バイナリをダウンロードします。自分の手元の VM は CentOS 5.2 なので、mysql-5.0.82-linux-i686-glibc23.tar.gz をダウンロードしました。 まずは レシピ の最初にあるように make_sandbox してみます。 $ make_sandbox /path/to/mysql-5.0.82-linux-i686-glibc23.tar.gzそうすると /home/zigorou/sandboxes 以下にサンドボックスが出来てます。ついでに mysqld も立ち上がっていま

    MySQL::Sandbox - 日向夏特殊応援部隊
  • Kazuho@Cybozu Labs: Perl のテスト用に MySQL 環境を自動で構築するモジュール Test::mysqld を書いた

    ORM やウェブアプリケーション関連のライブラリなどのテストケースを書くにあたっては、 RDBMS へのアクセスが必要になります。しかし、SQLite のようなスタンドアローンのデータベースと比較すると、サーバ型データベースである MySQL に接続してテストを書くのは、既存の MySQL の権限設定やデータベース名を気にする必要があったりと、いろいろ不便です。そこで、MySQL のインスタンスをテンポラリディレクトリに自動生成し、テストが終わったら削除してくれる Perl モジュール Test::mysqld を書きました。こんな感じで使います。 use DBI; use Test::mysqld; use Test::More; my $mysqld = Test::mysqld->new( my_cnf => { 'skip-networking' => '' }, # TCP接続を

  • DB 処理における Fixture テストの勧め - Hokkaido.pm #1

    DB 処理における Fixture テストの勧め 自己紹介 Toru Yamaguchi <zigorou@cpan.org> id:ZIGOROu (@zigorou) 株式会社ディー・エヌ・エー ソーシャルメディア事業部プラットフォーム統括部システムグループエンジニア Japan Perl Association 理事 今回のお題 昨日は割と概念的なお話ばかりだったので、今回は具体的な話メインで行きたいと思います。 やはりプログラミングにはバグがつきもので、それを防ぐにはテストを書くしかないですよね、と言う事でテストにまつわるお話です。 とは言っても今日のこのイベントに来ている人は Test::More でのテストなどは書いた事がある人が多いと思うので、Test::More の説明は割愛します。 まずは Test::mysqld の使い方 とりあえず、手元の環境に mysql をイン

  • 株式会社スタイルズ

    AWSアドバンスドコンサルティングパートナーの一員として活動する株式会社スタイルズが、AWS導入、移行、開発、セキュリティ、運用保守など、すべてのご相談に乗らせていただきます。 AWSを導入したいが何から始めたらいいかわからない 既存のベンダーが新技術に弱く、良い提案がもらえない クラウドの導入にセキュリティの不安がある AWSをとりあえず導入したが、さらに活用していきたい 社内にAWSの知見を持っている人がいない AWSならではのシステム開発を詳しく知りたい

    株式会社スタイルズ
    foaran
    foaran 2013/02/23
  • MySQL/チューニング - ピノキヲ IT Wiki

    ピノキヲ IT WikiMySQLのチューニングは主に2種類あります。 インストールしたままのMySQLは遅いです。。。 テーブルサイズが小さければOKですが、数百万レコード、数千万レコードを格納するテーブルだと、SELECTが遅くなります。でもチューニングをすれば、2倍〜10倍、あるいはもっと早くなることもあります。 チューニングのやりかたは、大きく分類すると下記の2種類に分かれます。 SQLのチューニング→テーブルを全検索しないように、インデックスを用いて効率の良いSQLに変更します MySQLのパラメータチューニング→メモリバッファを増やすことでディスクI/Oの回数を減らし、動作を早くします。 以下、チューニングの詳細をメモします。

    foaran
    foaran 2013/02/23
  • MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.2.2.1 INSERT ステートメントの速度

    挿入の速度を最適化するには、多くの小さな操作を 1 つの大きな操作に組み合わせます。理想的には、単一の接続を作成し、多くの新しい行のデータを一度に送信し、すべてのインデックスの更新と一貫性チェックを最後まで延期します。 行の挿入に必要な時間は、次の要因によって決まります。ここでの数はおよその割合を示しています。 接続: (3) サーバーへのクエリーの送信: (2) クエリーの解析: (2) 行の挿入: (1 ×行サイズ) インデックスの挿入: (1 ×インデックス数) クローズ: (1) これには、テーブルを開く初期オーバーヘッドを考慮に入れていません。これは同時実行クエリーごとに 1 回実行されます。 テーブルのサイズによって、log N だけインデックスの挿入が遅くなります (B ツリーインデックスであるとして)。 次の方法を使用して、挿入を高速化できます。 同じクライアントから同時に

    foaran
    foaran 2013/02/23
  • MySQL Clusterカーネルの中身を覗いてみよう。

    MySQL Clusterのデータノードであるndbd(もしくはndbmtd)プロセスは、内部的にはマルチプルステートマシン(ブロック)がシグナル(もしくはメッセージ)を交換するという構造になっており、高い同時実行性を実現しているということについては前回述べた通りである。今日は、ndbd内部にどのようなカーネルブロックが存在するかということについて大まかに説明しよう。前回の話を踏まえて読んで頂ければ、何となくイメージだけでも掴めるのではないかと思う。まずは次の絵を見て頂きたい。これは俺の脳内から引っ張り出したndbdの構造のイメージ図である。 矢印はブロック同士の相関関係(シグナルの送受信など)を示すのだが、この絵に描かれているものは非常に省略されたものであり、実際にはもっと複雑に絡み合っているのだということを覚えておいて欲しい。例えばQMGRやDBDICTといったブロックは、他のブロック

    MySQL Clusterカーネルの中身を覗いてみよう。
  • MySQL Clusterソースコード探検隊!

    これまで「MySQL Clusterの進化とその構造について」および「NDBカーネルブロックの種類」について説明した。今日はその続きとしてMySQL Clusterのソースコードについて紹介しようと思う。シグナルを交換し合うマルチプルステートマシンは間違いなくこれからの時代にフィットするアーキテクチャなので、MySQL Clusterに興味を持たれた方が「膨大なMySQL Clusterのソースコードを探検する場合にどの入り口から入ればいいのか」ということを判断する一助になればと思う。とりとめなく書いてるのであんまりまとまってないかも知れないが、その点は容赦して頂きたい。 まず、ソースコードの入手方法であるが、これは最新のソースツリーをBazaarで入手する方法と、MySQLのWebページからダウンロードする方法の2つがある。Bazaarで入手するには、次のコマンドを実行すれば良い。(Ba

    MySQL Clusterソースコード探検隊!
  • Query: Advanced Search