タグ

mysqlに関するkanno_kannoのブックマーク (84)

  • mysqlのストアドプロシージャの便利さをアピールしてみる - (゚∀゚)o彡 sasata299's blog

    2009年02月10日01:50 MySQL mysqlのストアドプロシージャの便利さをアピールしてみる 今日はストアドプロシージャの話でも(*・ω・)ノ ■ストアドプロシージャとは? 一連のSQL文や処理を名前をつけてサーバ側に保存し、関数呼び出しのように使用できるもの。 ■ストアドプロシージャを使うメリットは? ・アプリ側の言語を選ばない。(MySQLで実装されていて、呼ぶだけなので) ・アプリサーバの負荷が減る。(複雑な処理はMySQL側で実行されているため) ・・といったところでしょうか。 少し前に書いたトリガーもそうですが、便利!・・ですけどメンテナンスがしにくいとか良くないところもあると思うので、メリット、デメリットを考えて、上手に使っていきたいですね。 あ、よく似たのに、ストアドファンクションってのもあります。 どっちも大体同じ。返り値の有無と、呼び出し方の違いくらいです。

  • SQLで大量データを一気に作るでござる(MySQL編) @ t100のプログラミング脱出作戦

    自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30) 開発をしていて、大量のテストデータが欲しいなーということが時々あります。 先日の、「MySQLの using temporary; using filesort が何故遅いのか」の内容も、実際に検証してみるには、sort_buffer_size を超える量のテストデータが必要になります。 しかし、これが意外と面倒くさいっ 使い慣れたスクリプト言語で、チョチョイとコードを書くのもOKなのですが、でもやっぱり面倒くさいっ (ですよね?) ということで、今回はSQLだけで大量データを作る方法を考えて見ます。 といっても、ストアドプロシージャでループと

  • Hunting Field: [vim] vimからmysqlを操作するプラグイン dbext

    最近、mysqlのクエリたたくことが多くなってきた。 周りの人は、mysql workbenchというGUIクライアントを使っている。 MySQL Workbench リレーション張りまくりのテーブル設計するにはいいかもしれないが、 現状テーブル作るときはsymfonyのコマンド使うし、 ちょっとselect実行するためにGUI立ち上げるのはめんどくさい。 そして何より、周りの人とおんなじもの使うのは負けた気がする。 で、vimからmysqlを実行するためのプラグイン dbextを入れてみた。 vim-scripts / dbext.vim Vimから任意のデータベースを操作 インストール pathogenを使っていれば、以下でOK。 $ cd ~/.vim/bundle $ git clone https://github.com/vim-scripts/dbext.vim 便利だ。 [

    Hunting Field: [vim] vimからmysqlを操作するプラグイン dbext
  • MySQL :: MySQL 8.4 Reference Manual :: B.3.5 Optimizer-Related Issues

  • 大人のためのInnoDBテーブルとの正しい付き合い方。

    InnoDB関連でよくある質問のひとつに「テーブルのメンテナンスは何をすればいいんですか?」というものがある。InnoDBMySQL 5.5でデフォルトストレージエンジンとなるため、InnoDBのテーブルメンテナンス計画を立ようと思う機会も増えることだろう。そこで、今日はInnoDBのテーブルメンテナンスの各種方法となぜそうしなければいけないかという理由を解説しようと思う。 ANALYZE TABLEテーブルメンテナンスの代名詞といえば、インデックス統計情報の更新ではなかろうか。運用を続けるうちに、知らず知らずインデックス統計情報が狂ってしまい、思うような性能が出ない。RDBMSにはそのような問題がつきものであるが、InnoDBの場合、ANALYZE TABLEは不要である。なぜなら、InnoDBが自発的に統計情報を更新するからだ。InnoDBは以下の条件に適合すると、ANALYZE T

    大人のためのInnoDBテーブルとの正しい付き合い方。
  • 有効なWikiNameではありません - PukiWiki

    *メニュー編集 コンピュータ関係 DataBase Linux PC-UNIX Programming PC情報 その他趣味系(別wiki) 自動車 温泉 スキー情報 外部リンク 旧 技術メモブログ 新 技術メモブログ ランチブログ NIFTYにあるHP 旅行記写真館 今日の訪問 0 オンライン人数 2 最新の20件 2024-02-11 GithubActions AWS/EC2 2024-01-29 typeorm 2024-01-23 personal/SQL 2024-01-20 AWS/IAM 2023-12-25 personal/Tax/2023 確定申告スケジュール 2023-12-19 PC/List/CF-SX1 2023-12-15 Server/移行/履歴/2023 2023-11-11 memo Device/iPhoneSE3 Device/Pixel6a 20

    kanno_kanno
    kanno_kanno 2012/02/19
    MySQLはルールベースだけっていうソースはどこだ
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 8.3.1 MySQL のインデックスの使用の仕組み

    インデックスは特定のカラム値のある行をすばやく見つけるために使用されます。 インデックスがないと、MySQL は関連する行を見つけるために、先頭行から始めてテーブル全体を読み取る必要があります。 テーブルが大きいほど、このコストが大きくなります。 テーブルに問題のカラムのインデックスが含まれている場合、MySQL はすべてのデータを調べる必要なく、データファイルの途中のシークする位置をすばやく特定できます。 これはすべての行を順次読み取るよりはるかに高速です。 ほとんどの MySQL インデックス (PRIMARY KEY、UNIQUE、INDEX、および FULLTEXT) は B ツリーに格納されます。 例外: 空間データ型のインデックスは R ツリーを使用します。MEMORY テーブルはハッシュインデックスもサポートします。InnoDB は FULLTEXT インデックスの逆のリスト

  • MySQL

    MySQL HeatWave MySQL HeatWave is a fully managed database service for transactions, real- time analytics across data warehouses and data lakes, and machine learning services, without the complexity, latency, and cost of ETL duplication. It is available on OCI, AWS, and Azure. Learn More » MySQL Enterprise Edition The most comprehensive set of advanced features, management tools and technical suppo

  • 知って得するInnoDBセカンダリインデックス活用術!

    InnoDBはクラスタインデックスという構造になっている。今日はクラスタインデックスがどういうことかということを、皆さんに理解して頂きたい。もっとも理解して頂きたいポイントは「セカンダリインデックスのリーフノードには主キーの値が含まれている」ということだ。 主キーの構造InnoDBの主キーは次の図のように「データが主キーのリーフノードに含まれる」という構造になっている。このような構造をクラスタインデックスという。 このような構造になっていることには利点と欠点があるが、大きな利点は主キーの値で検索をすると非常に高速だということだ。主キーのリーフノードにたどり着いたときには、既にデータのフェッチも完了している。データとインデックスが別々に格納されているタイプのストレージエンジンでは、インデックスからデータの位置を読み取って、その後データファイルからデータをフェッチする。このように二段階の操作が

    知って得するInnoDBセカンダリインデックス活用術!
  • MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ

    仕事MySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基的なところから学習しなおした。 MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。インデックスを使用すれば、数百とか数億ものレコードが入っているテーブルから、一組のレコードを迅速に見つけて取り出すことが可能になる。 しかし、インデックスは速度を改善することもあるが、挿入の邪魔になって遅くなることもある。 インデックスを適切に使うために、まずはインデックスの基概念をおさえる必要がある。 インデックスの概念 インデックスとは インデックスの仕組みを理解するには、まずMySQLがどのようにクエリに応答するかを知る必要がある。 例えば、 SELECT * FROM phone_book WHERE last_name = 'Hoge'

    MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ
  • 株式会社スタイルズ

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

    株式会社スタイルズ
  • MySQLでインデックスを使って高速化するならCovering Indexが使えそう - (゚∀゚)o彡 sasata299's blog

    2009年10月28日09:33 MySQL MySQLでインデックスを使って高速化するならCovering Indexが使えそう Linux-DB システム構築/運用入門 (DB Magazine SELECTION) 著者:松信 嘉範 販売元:翔泳社 発売日:2009-09-17 おすすめ度: クチコミを見る 最近、このを読んでいます。非常に面白いし、参考になります〜。中でもインデックスについての記事が特に興味深かったので簡単にまとめてみます。 前提 ・インデックスは検索性能には効果があるが、更新性能は落ちてしまう ・MyISAM と InnoDB ではインデックスの構造が違う ・インデックスは B+Tree インデックスと呼ばれ、ルート、ブランチ、リーフの階層構造になっている ・インデックスはソートされた状態で作成されている まずは MyISAM と InnoDB でのインデックス

  • エックスサーバー サーバー初期ページ

    このウェブスペースへは、まだホームページがアップロードされていません。 早速、エックスサーバー上へファイルをアップロードしてみましょう。 アップロードの方法などは、サポートマニュアルをご参照ください。

    エックスサーバー サーバー初期ページ
  • mysqldumpの--order-by-primaryオプションについて - SH2の日記

    TIPSです。このようなテーブルがありまして、 CREATE TABLE `link` ( `id1` int(11) NOT NULL DEFAULT '0', `id2` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id1`,`id2`), KEY `ix1` (`id2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;データは以下のような感じで、このときは2,900万レコードありました。 +---------+---------+ | id1 | id2 | +---------+---------+ | 5 | 69 | | 5 | 1022 | | 5 | 1487 | … | 1081 | 2021414 | | 1081 | 2087813 | | 1082 | 11 | | 1082 | 225

    mysqldumpの--order-by-primaryオプションについて - SH2の日記
  • PHP + MySQL on Leopard (Mac OS X 10.5) :: R-STYLES.NET

    Leopard(Mac OS X 10.5.x)でPHP + MySQLの環境構築する方法を紹介します。 PHPMySQLのインストールに関しては以下を参照してください。 PHP5 on Leopard (Mac OS X 10.5) MySQL5.1 on Leopard (Mac OS X 10.5) 基的にはこれで完了なのですが、Mac OS X用の.pkgファイルからMySQLをインストールすると、MySQLのソケットファイル(mysql.sock)が一般的な場所とは違う場所に置かれるようになっています。 そのため、デフォルトでPHPから参照する場所にはなく、MySQLに接続できない状態になっています。 この問題の解決方法は以下の2通りです。 「php.ini」を編集して「mysql.sock」を参照する場所を変更する。 「my.cnf」を編集して「mysql.sock」を配置

  • MacにMySQLとphpMyAdmminを入れ、XAMPPやMAMPを使わずにLAMP環境を構築する方法と、バーチャルホストの設定 | Macとかの雑記帳

    XAMPPやMAMPを使えばMacでも簡単にLAMP環境を導入することができますが、それらを使わずに構築する方法です。LAMP構築には[Apache] [MySQL] [PHP/Perl/Python] が必要ですが、MacはデフォルトでApacheとPHPPerlが導入されているので、MySQLとデータベース管理用にphpMyAdminを入れてLAMP環境を構築します。ついでにバーチャルホストの設定をしてサイトごとに専用のドメインを割り当てます。 MySQLをインストール 下記サイトよりMySQLをダウンロードします。 Download MySQL Community Server ※:MacPortsからもMySQLをインストールできますが、時間がかかる上に、後述するシステム環境設定の項目が追加されないので手動でインストールします。 ダウンロードし、展開orマウントして開くとインスト

    MacにMySQLとphpMyAdmminを入れ、XAMPPやMAMPを使わずにLAMP環境を構築する方法と、バーチャルホストの設定 | Macとかの雑記帳
  • MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.5.6.3 AUTO_INCREMENT カラムが InnoDB 内でどのように機能するか

    Section Navigation      [Toggle] 13.5.6 InnoDB テーブルの作成と利用13.5.6.1 異なる API と共に InnoDB 内でトランザクションをどのように利用するか 13.5.6.2 MyISAM テーブルを InnoDB に変換する 13.5.6.3 AUTO_INCREMENT カラムが InnoDB 内でどのように機能するか 13.5.6.4 FOREIGN KEY 制約 13.5.6.5 InnoDBMySQL 複製 もし InnoDB テーブルに AUTO_INCREMENT カラムを指定すると、InnoDB データ ディレクトリ内のテーブル ハンドルは、カラムに新しい値を割り当てるのに利用される自動インクリメント カウンタと呼ばれる特別なカウンタを含みます。このカウンタは、ディスク上には格納されず、主メモリ内だけに格納されま

  • MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 9.4.3.2 設定可能な InnoDB 自動インクリメントロック

    前の節で説明したように、InnoDB は AUTO_INCREMENT カラムを含むテーブルへの挿入を行う際に、AUTO-INC ロックと呼ばれる特殊なテーブルレベルロックを使用します。このロックは通常、(トランザクションが終了するまでではなく) ステートメントが終了するまで保持されますが、これは、与えられた一連の INSERT ステートメントに対する自動インクリメント番号が、予測可能かつ繰り返し可能な順番で割り当てられることを保証するためです。 ステートメントベースのレプリケーションの場合、これは、ある SQL ステートメントがスレーブサーバーで複製される際に、自動インクリメントカラムでマスターサーバーと同じ値が使用されることを意味します。複数 INSERT ステートメントの実行結果は決定性のものとなり、マスターと同じデータがスレーブで再現されます。もし複数の INSERT ステートメン

    kanno_kanno
    kanno_kanno 2011/10/20
    帰りに読む
  • 共有行ロックと排他行ロックの違い - shima111の日記

    select ... for update; select ... lock in share mode; の違いがよくわからなかった。 データを更新する時に必要なロックは、for update データを参照する時に必要なロックは、share mode と体感的に理解できるのだが、どちらのロックを取ったときも、他の誰もデータを更新、削除できない。 また、どちらのロックも、(for update していたら、他から参照できないのかと思いきや)他の誰からも参照は可能。 ん?となると、この2つのロック、何がどう違うの?? その答えは ここ に書いてあった。(リンク先はPostgresだが、MySQLでも同じこと) 共有ロックとは、排他ロック(更新、削除、FOR UPDATE)をブロックする/される一方、共有ロック同士では互いにブロックしないというものです。 なるほど、share mode はセマ

    共有行ロックと排他行ロックの違い - shima111の日記
  • MySQL(TM)とは

    [InterDB] [著者HP] [PREVIOUS][UP] Copyright @ 2009, Suzuki Hironobu @ InterDB バージョン 4.0.1から、クエリキャッシュ(Query Cache)機能がサポートされました。 クエリキャッシュとは、実行されたSELECT文の結果をキャッシュ(query_cache)に保存しておき、同じSELECT文が要求された場合は(検索を行わずに)キャッシュに保存されている結果を返す機能です(補足 1)。 なお、キャッシュされたデータに関連するテーブルが変更(UPDATE,INSERT,DELETE)された場合、クエリキャッシュ上の結果は削除されます。よって『テーブルが更新されたのに、古い(キャッシュの)結果が返る』といった心配は*無用*です。 検索結果の保存には、クエリテキスト(SELECT文そのもの)を保存するため