タグ

mysqlに関するsungohxiのブックマーク (44)

  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.1.22 CREATE TRIGGER ステートメント

    SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント

  • mysqlの結果に連番をつける

  • MySQLとシェルスクリプト – OpenGroove

    MySQLSQL文を、OSのコマンドラインまたはシェルスクリプトから実行したい時の例を、いくつか。 まずコマンドラインからサクッと実行するには、-eオプションを利用。 $ mysql -u user_name -pxxxxxx -e “SQL文” 「;」で区切れば複数のSQL文発行も可能。 $ mysql -u user_name -pxxxxxx -e “SQL文;SQL文;SQL文” 以下の方式でも可。 $ echo “SQL文;” | mysql -u user_name -pxxxxxx これらのコマンドラインをそのままシェルスクリプトに書いてもいいわけだ。 次にSQL文をファイルに記述しておいて読み込ませる方法。 “file_name”にはSQL文が記述されているものとする。 $ mysql -u user_name -pxxxxxx < file_name 上記はSQL文にお

  • [MySQL]ORDER BY RAND()について - かけだしエンジニアの独り言

    2008年10月15日 15:13 カテゴリMySQL [MySQL]ORDER BY RAND()について Posted by kistame228 No Comments No Trackbacks Tweet MySQLのORDER BY RANDはランダムに値を取得してくれる 便利なのだけど、RANDを利用すると全文走査するので 大きなテーブルだと非常に重くなってしまう。 で、見つけたのが以下のAntonさんのブログ ◆“Do not use ORDER BY RAND()” or “How to get random rows from table?” ↑をザックリ訳してみると ・RANDは使うな ・じゃぁどうするのか 1-1.SELECT COUNT(*) AS cnt FROM quotes で全件数を取得 1-2.1-1で取得した数値からランダムな値をプログラムで生成 1-

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

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

    MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ
  • MySQLのDB領域とDBアカウントを作成 - Max OS X LeopardでLAMP環境を構築しよう - Apache, MySQL, PHP, Perlで作る開発環境 - futomi's CGI Cafe

    ここでは、MySQLのrootパスワードの設定、DB領域の作成、そして作成したDBにアクセスするためのDBアカウントを作成します。そして、テスト用のテーブルを一つ作成します。

  • MySQL 5.1.46リリース InnoDB Pluginが正式版に - SH2の日記

    出ました。今回は機能追加が1件、バグ修正が55件あります。バグ修正のうちセキュリティに関するものが1件、パーティショニングに関するものが5件、レプリケーションに関するものが7件となっています。 MySQL 5.1.38から体に付属するようになったInnoDB Pluginですが、バージョンが1.0.7に上がりRCからGA(Generally Available、正式版)となりました。ついに正式リリースです。というわけで何度か繰り返している話題ですが、今回はInnoDB Pluginについて再度おさらいをしておきたいと思います。 InnoDB Pluginの使い方 MySQL 5.1.38以降であればInnoDB Pluginを使うように設定するのは簡単です。/etc/my.cnfに以下の設定を書き加えることでInnoDB Pluginが有効化されます。 ignore-builtin-in

    MySQL 5.1.46リリース InnoDB Pluginが正式版に - SH2の日記
  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
  • MySQLのチューニング(インデックス&SQL)

    この列の中でチューニングに大切な項目が、type、key、rows、Extra である。基的な対策は、処理する行数を減らし、全体の処理回数を減少させることである。具体的な目標としては、行数の概算見積りである rows列の値をできるだけ少なくすることである。ちなみに以下は、テスト環境ならびにテーブル名、カラム名などは修正を加えたものであり番環境のものではない。(実際のクエリチューニングは番環境でやっているが、以下のデータはエントリーのために別途テストデータなどを用意した結果である) typeが「ALL」というのは、テーブルスキャンしているということ。インデックスがまったく利用されていないので、要チューニングである。よってまずは where句の ar_saiyo_flg にインデックスを貼る。(こんな基的なこともやっていないのか?と叱られそうだが、自分で作ったものじゃないシステムを運

    MySQLのチューニング(インデックス&SQL)
  • http://www.mysqlpracticewiki.com/index.php/Select_type

  • MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログ

    はじめに この記事では、MySQL を使って簡単なメッセージキューを手軽に実装する方法を解説します。 メッセージキューとは、メッセージを一時的に溜めておき、順次処理するための仕組みです。迅速なレスポンスが必要な Web アプリケーションにおいて、時間のかかる処理を非同期に行うために、バックグラウンドで順次処理していくような場合に利用できます。 簡単なメッセージキューと言っても、大規模な運用にも耐えられる程度の速度と堅牢性を持ちます。 また、ここで解説している方法で作られたメッセージキューは、弊社ウェブサービスであるニコニコ動画に最近追加されたtwitter連携機能でも利用しています。 メッセージキューを作るにあたって 今回実装するメッセージキューは メッセージの追加(push)を高速に行う事ができる メッセージの取得(pop)はある程度高速に行う事ができる 多くのクライアントから同時に p

  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
  • mysqldump の結果をそのまま圧縮したり転送したりするコマンド例 | バシャログ。

    ちょっと遅めの夏休みをもらって八丈島に行ってきました nakamura です!いい所すぎて危うくそのまま移住するところでした。 データベースの移行をする際みなさんどんな流れで作業しているでしょうか。コマンドラインでダンプを取って、サイズが大きかったら gzip で圧縮して、WinSCP でそれをローカルに落としてきて、それをまた別のサーバにアップロードして・・・・なんて事してたりしませんか? シェルのパイプやリダイレクトをうまく使ってあげれば、この辺りはコマンド一発でいけちゃったりするのです。今日はそんなコマンド例のご紹介です。 実際によく使うコマンドの例を箇条書きで。 とりあえずダンプの結果をそのまま圧縮する。 mysqldump -udb_user db_name -pdb_pass | gzip > db_name.dump.sql.gz 特定の文字列を置換した上で圧縮する。 MT

    mysqldump の結果をそのまま圧縮したり転送したりするコマンド例 | バシャログ。
  • layer8.sh

    This domain may be for sale!

  • 【レポート】PHPデベロッパがおかしがちな10のMySQL間違い | エンタープライズ | マイコミジャーナル

    SitePoint: New Articles, Fresh Thinking for Web Developers and Designers PHPを使ってWebサイトやWebアプリケーションを構築する場合はデータベースも併用することが多い。そしてその場合に採用されることが多いデータベースのひとつにMySQLがある。PHPはすぐに利用できるようになるプログラミング言語といわれているが、MySQLSQLはそうではない。堅牢で信頼できるデータベースを設計し、それを扱うSQLクエリを作成するにはそれなりの学習時間と経験が必要だ。 こうした話題がSitePointにおいてTop 10 MySQL Mistakes Made By PHP Developersとして掲載されている。PHPデベロッパが犯しがちな10のMySQLミステイクという内容になっている。どういった間違いをしてしまうか簡単に

  • PHP開発者のMySQLの間違いトップ10:phpspot開発日誌

    WindowsアプリのツリービューっぽいUIをWEB上で簡単実装できるjQueryプラ... 次の記事 ≫:シンプルさがいい感じの154種類のアイコンセット Top 10 MySQL Mistakes Made by PHP Developers PHP開発者のMySQLの間違いトップ10。 手慣れている人にとっては知ってることも多いかもしれませんが、初心者が役立ったり、知らない部分のカバーとしてメモとして書いてみます MyISAMを使っている デフォルトはストレージエンジンにMyISAMだけどInnoDBを使おう リカバリ可能でオンラインバックアップ機能、外部キー利用可能なInnoDBおすすめ 詳細:Open database life: MyISAMとInnoDBのどちらを使うべきか PHPMySQL関数を使っている mysql_* 関数を使わず、PDO等でストレージ変更に対応しよう

  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

    ちょっとキャッチ−なタイトルをつけてしまったが、今日は独断と偏見でMySQLを高速化する方法を10個紹介しよう。MySQLサーバをチューニングするときや初期導入する場合などに参考にしてもらいたい。 1. バッファを増やす、または減らす チューニングの基中の基であるが、適切なバッファサイズを設定することはパフォーマンスチューニングの要である。主なバッファは次の通り。 innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。 key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。 sort_buffer_

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
  • MySQL SELECT文

    MySQLのSELECT文で使用できる構文について説明します。 なお、基程度の構文については説明していません(DISTINCTなど)。 table references FROM句で指定するテーブル名に、いくつかのオプションを付ける事が出来ます。 AS テーブルに別名を付けます。なお、ASは省略できます。 SELECT T1.name FROM table_a T1; USE INDEX Select時に使用するインデックスを指定します。 SELECT * FROM table_a USE INDEX (use_index_name); IGNORE INDEX Select時に使用しないインデックスを指定します。 SELECT * FROM table_a IGNORE INDEX (ignore_index_name); FORCE INDEX USE INDEX と似たような動作を

  • [MySQLウォッチ]第23回 押さえておきたいバックアップとリストアのポイント

    よく,データベースの運用に関する相談の中では,バックアップと可用性(アベイラビリティ)を混同してい場合がある。データベースは,ある瞬間のデータを保存することが目的である。障害が発生した際に保存したデータを再現することにより,復元をおこなう。 可用性は,障害対策として,できるだけ止めずにデータベースを運用することを目的としている。もし,止める場合にも最小限の時間で,復旧することを目的としている。 障害が発生した場合に,速やかに復旧することは,非常に重要なことである。そのため,「レプリケーションやクラスタリングを使用すれば万全」と考えるのは,間違いである。もし,レプリケーションやクラスタリング自身に障害が発生すれば,必ずバックアップデータによって,復旧する必要がある。 また,誤ったデータベース更新を実行した場合,レプリケーションやクラスタリングは,すべてのサーバーが即座に更新を実行する。そのた

    [MySQLウォッチ]第23回 押さえておきたいバックアップとリストアのポイント
  • ユーザー権限の確認 - データベース ( MySQL ) - 自宅サーバーの構築 - 自宅サーバーでやってみよう!!

    更新日:2005/09/06 ここではコマンドによるユーザーの管理を簡単に説明します。 ユーザーの権限を確認するには、SQLコマンドの SHOW GRANTSコマンドを使って確認できます。