タグ

mysqlに関するktakeda47のブックマーク (133)

  • MySQLの物理削除によるパフォーマンスの悪化とその回避策について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!ショッピングでシステム開発を担当している村上です。 Yahoo!ショッピングでは数億件にのぼる商品が日々更新されています。 今回はそれを支える巨大なDBの運用の中で遭遇したMySQLのアンチパターンと、回避した方法について紹介いたします。 特定のテーブルをJoinするとすごく遅くなる Yahoo!ショッピングでは商品を出品するためのツールがあります。 商品情報には「商品名」「価格」といった、任意で設定可能な項目のほか、「ブランド」「商品種別」など、製品ごとに入力する内容が決まっている項目を、マスター情報としてテーブルで管理しています。 このマスター情報を利用して、出品の際に入力情報が正確であるかどうか確か

    MySQLの物理削除によるパフォーマンスの悪化とその回避策について
    ktakeda47
    ktakeda47 2020/06/22
    "サンプリングとして利用されるのはinnodb_stats_persistent_sample_pagesに記載された数のレコードだけにとどまり、デフォルトでは20件・・・大量のデータを物理削除していた関係上、・・・欠番状態のレコードが大量に発生し、統
  • library/mysql - Docker Hub

    library/mysql - Docker Hub
  • Multiple DB Connections in Laravel

    A long, long time ago (2013), I answered on this SO question about using 2 database connections. For some reason, over a decade later, this page still ranks. Let's do an update! Here is how to run more than one database connection. This article is about using databases with different data, not necessary for load balancing (or connection pooling) between databases. However Laravel does have the abi

    Multiple DB Connections in Laravel
  • MySQLの0000-00-00 00:00:00は使ってはならない - そーだいなるらくがき帳

    結論 何がいいたいかといいますと0000-00-00 00:00:00があるとORMも死ぬし、DBマイグレーションツールも死ぬし、そもそもMySQLからポスグレにデータを持っていくこともFDWをすることも出来なくて死ぬのじゃ。— そーだい@初代ALF (@soudai1025) 2018年4月25日 色々困るので使わない。 理由 以下に理由を述べる SQL標準ではない 正論で殴った場合。 0000-00-00 00:00:00の仕様が難しい 0000-00-00 00:00:00 はMySQLの独自な仕様で NOT NULL制約のカラムではNULLと等価であり、NULLではない という仕様がある。 "NOT NULL として宣言された DATE および DATETIME カラムでは、次のようなステートメントを使用することで、特殊な日付 '0000-00-00' を検索できます"https:

    MySQLの0000-00-00 00:00:00は使ってはならない - そーだいなるらくがき帳
    ktakeda47
    ktakeda47 2018/05/13
    (どっかで見たことあるけど忘れた)
  • PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!|ハイクラス転職・求人情報サイト AMBI(アンビ)

    PostgreSQLMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較! オープンソースのデータベースとしてよく比較されるPostgreSQLMySQL。どんな長所・短所があるのでしょう? それぞれの専門家による対談で明らかにします。 エンジニアとして働いていると必ず直面する悩み。それは、「どのリレーショナル・データベース(以下、RDB)を選ぶのが最善なのか?」です。 RDBごとに長所と短所は異なっています。そのため自社サービスにマッチしないRDBを選んでしまうと、それがボトルネックとなり開発・運用にトラブルが生じるケースは少なくありません。 なかでもよく比較検討されるのが、PostgreSQLMySQL。ともにオープンソースRDBのデファクトスタンダードであり、高い性能と数多くの機能を持っています。 では、両者は具体的にどのような長所・短所があるのでしょうか。そ

    PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!|ハイクラス転職・求人情報サイト AMBI(アンビ)
    ktakeda47
    ktakeda47 2017/09/05
    (そいや最近全然 PostgreSQL 使ってないな) "また、バージョン8.0からは、デフォルト設定だと・・・「は」と「ぱ」と「ば」はイコールになりますし、「びょういん」と「びよういん」もイコールになります"
  • 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 のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
  • mysqlをdisる会 - Qiita

    はじめに やあ (´・ω・`) ようこそ、バーボンハウスへ。 このmysqlはサービスだから、まずsystemctl start mysqld して落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい そう思って、この記事をかいたんだ じゃあ、注文を聞こうか。 というわけでmysqlをdisります。disるだけなので内容はありません。いいね? mysql には罠がいっぱい そうなんですよ罠がいっぱいなんですよ奥さん。 いやこれはおそらくmysqlに限った話ではないんですけど例えばこういうの! MySQLのチューニングなんてしたらパフォーマンス落ちるだけだし、デフォル

    mysqlをdisる会 - Qiita
  • Webエンジニアに知ってほしいRDBアンチパターン

    YAPC::Kansaiの登壇資料です。

    Webエンジニアに知ってほしいRDBアンチパターン
  • MySQL 8.0.0 Development Milestone Release登場!!

    先月、詳解MySQL 5.7を発刊したばかりであるが、MySQL 5.7自体は去年の10月にリリースされたバージョンである。それから約1年弱、MySQLは開発の手を緩めること無く日々改良を重ねている。 そう、MySQL 8.0の登場である。 現在はDevelopment Milestone Release(通称DMR)という状態なので、まだ正式版における機能が固まっている段階ではないという点には注意して欲しい。MySQLの開発プロセスでは、DMRをリリースするごとにその段階で成熟した機能をマージする。DMRを何度かリリースした後に、キリの良いところでリリース候補版となって正式版で追加される機能が一応確定し、その後バグ修正を経て正式版(GA版)がリリースされる予定となっている。詳しくはMySQLのマニュアルを参照して欲しい。 バージョン8.0!!5.7の次は誰もが5.8だと思っていただろう・

    MySQL 8.0.0 Development Milestone Release登場!!
    ktakeda47
    ktakeda47 2016/09/22
    "そこで、5.8の代わりにキリ良く5を取って8がメジャーバージョンになったわけである。かつてSolarisが2.6の次が7になったように、Java 1.4の次が5になったように、MySQL 5.7の次が8になるだけである。"
  • MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!)

    MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!) 【2016/01/13 10:12】 MySQL 5.7.11でdefault_password_lifetimeのデフォルトは0に変更になりました! それ以降のバージョンであればこの記事の内容は気にする必要はありません。 日々の覚書: MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい! TL;DR default_password_lifetime= 0 を秘伝のmy.cnfに入れておくつもり。 MySQL :: MySQL 5.7 Reference Manual :: 5.1.4 Server System Variables パラメーターの意味は読んで字のごとく、「最後にパスワードが更新さ

  • 我々(主語が大きい)は何故MySQLで外部キーを使わないのか

    外部キー便利!!! MackerelではPostgreSQLで外部キーあり そのレコードがあることが保証される 各テーブルのidにアプリケーションレベル(Mackerelの場合Scala)で型付けをするとなお便利 MemberID型、MonitorID型 → idで誤ったテーブルを引くとかがない 日のスキーマ CREATE TABLE `member` ( `id` INTEGER unsigned NOT NULL auto_increment, `earned_item_count` INTEGER unsigned NOT NULL DEFAULT 0, `name` VARCHAR(191) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4; CREATE TABLE `item`

  • 書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL

    来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。 多くの人が未だにRDBを使いこなせていないのではないか。RDBの使い方をマスターするには何が必要なのか。それがここ数年私が追ってきたテーマであり、この書籍を出すことになった動機である。 あまりにも酷いDB設計、あまりにもスパゲティなクエリ、あまりにも希薄なデータモデルへの理解。そういった問題はどこから生み出されるのか。そのひとつの結論としてたどり着いたのが、「そもそもRDBの使い方があまり理解されていないのではないか」ということだった。名著、SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり来どの

    書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL
  • MySQLのmy.cnfファイルサンプル

    MySQLのバージョン インストールされたMySQLのバージョンは以下のようになります。 名前 バージョン ダウンロード元 my.cnfサンプル 以下のサンプルを参照して、my.cnfファイルを作成してください。 # このファイルは MySQL 5.6を基準として作られてあります。 # http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html を参照しました。 [mysqld] ##-------------------------------------------------------------------- # mysqldの基設定 ##-------------------------------------------------------------------- # id は 1 から 2^

    MySQLのmy.cnfファイルサンプル
  • まだMySQL 5.5で消耗してるの?MySQL 5.6でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法

    MySQL 5.6が登場してからかなりの月日が過ぎたが、他のことで多忙だったせいか、MySQL 5.6についてはあまりブログで情報を発信していないことに気がついた。これはイカン!!と思い、MySQL Casual Advent Calendar 2014に合わせて、MySQL 5.6を使用する上で最もオススメしたい機能であるクラッシュセーフなレプリケーションについて解説しようと思う。この記事は16日目の記事である。 レプリケーションがクラッシュセーフとはどういうことかクラッシュセーフとは、何らかの事情により、プロセスがダウンしたりマシンが電源ごと落ちたり(つまりクラッシュ)しても、再起動後に以前の状態に戻って処理を再開できるということだ。データのクラッシュリカバリであればみなさん既によくご存知であろう。(REDOやUNDOするアレのことだ。稿では面倒臭い・・・ではなかった、題ではないた

    まだMySQL 5.5で消耗してるの?MySQL 5.6でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法
  • イミュータブルデータモデル(入門編)

    6. Step1 エンティティの抽出 発送担当者が受注リストをもとに、商品の在庫を確認し、在庫が あれば商品を発送する。 ① 要求仕様の「動詞」を抜き出しエンティティとする。 ② ①に関わる「名詞」を抜き出しエンティティとする。 ③ エンティティ間の関連に線を引く ④ 属性や候補キーも分かる範囲で書いておきます。 間違い! この段階で実装をプロパティファイルにするとか、Enum にするとか決め打ちでエンティティとして表さないのはや めましょう。 まず、はじめにエンティティを抽出します。

    イミュータブルデータモデル(入門編)
  • MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋

    MySQL 5.6 の検証中に MySQL 5.5 とは違うタイプのレプリケーション遅延を見つけたので紹介します。 MySQL のレプリケーションのおさらい MySQL のレプリケーションは次のような仕組みで動作しています。 マスターの更新トランザクションが binlog を書く スレーブの I/O スレッドがマスターに接続し、 binlog を取得し、 relaylog を書く. マスター側はスレーブからの接続を受け付けると(dump スレッド)、指定された場所から最新までの binlog を転送する binlog が追記されるのを待ってさらにスレーブに送る スレーブのSQLスレッドが relaylog を再生する MySQL 5.5 でよくあったレプリケーション遅延 マスターは並列してトランザクションを処理して、最終的にコミットした順で反映されれば問題ないようになっています。 一方、ス

    MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋
  • MySQLを商用利用すると無料で使えないという都市伝説

    MySQLに限らないけど、「GPLは営利目的では使えない的な思い込み」は止めて欲しい。 先週、システム開発の提案で客先に行ってきた。 当方、30前半のSE。対応してくれた担当者は40代後半の情報システム部門の方。 提案したシステムの規模はそれほど大きくはなく、お客さんからもあまり予算はないと言われていたため、RDBMSに「MySQL」を使ったWebシステムを提案したところ、「それほど可用性は求めてないし、無料で使えるDBの方がいい」と言われた。 あぁ、商用ライセンスを購入すると勘違いしたんだな、と思ったので、「MySQLはGPLライセンスもあるので無料で使うことができますよ」と説明したところ、担当者の顔が険しくなった。 「GPLだとソースコードを公開しないといけないんだよ?たとえMySQLのソースコードを改変していなくても、MySQLを使ったソフトウェアであればソースコードを公開しないとい

    MySQLを商用利用すると無料で使えないという都市伝説
    ktakeda47
    ktakeda47 2014/07/22
    ぬぁ > "typex2:MySQLの販売代理店のSoftAgencyのライセンス説明によると、GPL云々の解釈はともかく、MySQLを使ったソフトを開発してソースコードを公開しない場合は有料で、お金を払わないとライセンス違反になる模様。"
  • 内製 SG エンジンの軌跡 ~スクールガールストライカーズ~ 【 サーバ編 】

    近年、ハイスペックなスマートフォン、高品質なネットワークが普及し、それによりモバイルゲームの制作手法やそれを取り巻く環境も変化してきました。スクウェア・エニックスでは、そのような環境の変化に対して、日々新たなチャレンジをし続けています。そして、このようなスピード感溢れる業界の流れには、会社の枠を超えた技術情報の共有、交流が欠かせないと感じております。 そこでこの夏、社内のエンジニア・テクニカルディレクターによる最新のモバイル開発の技術情報や社内モバイルエンジン、開発秘話によるセッションをメインに、スクウェア・エニックス モバイル オープンカンファレンスを開催する運びとなりました。また、セッションの後は登壇する弊社スタッフと直接ディスカッションやフリートークができる場を設けております。この機会にスクウェア・エニックスという会社についても、より詳しく知って頂ければ幸いです。 マネージャー・テク

  • MySQLのシャーディングを実現する「MySQL Fabric」をリリース、米オラクル

    大規模なWebアプリケーションのバックエンドでは、データを分割して複数のデータベースで運用することによりスケーラブルな運用を実現する「シャーディング」と呼ばれる技術がよく使わています。 米オラクルはMySQLでこのシャーディングを実現するソフトウェア「MySQL Fabric」を含む「MySQL Utilities」をリリースしました。 PHPJavaPythonに対応 MySQL Fabricは基的にデータのレプリケーションを活用してシャーディングをするフレームワーク。データの範囲あるいはハッシュ値を分割キーとして用いたシャーディングを実現します。 アプリケーションからMySQL Fabricを利用するには、専用のコネクタを用いて接続する必要があります。コネクタは現在、PythonJavaPHPに対応しており、今後ほかの言語にも対応予定。 MySQL Fabricには、全体を管

    MySQLのシャーディングを実現する「MySQL Fabric」をリリース、米オラクル
  • MySQLチューニング

    2. \こんにちは/ ● ● ● ● とある企業のDBA ● オラクれない ● ポスグれない ● マイエスキューエる その正体は ● 嫁の夫 ● せがれの父 日 MySQL ユーザ会 (MyNA) のすべり担当 #mysql_jp でツッコミをいただけると幸い

    MySQLチューニング