タグ

SQLとtipsに関するlarkerのブックマーク (5)

  • MySQLのクエリの良し悪しはrows_examinedで判断する - かみぽわーる

    仕事やらなんやらでMySQLのクエリの良し悪しを判断する必要があるとき、EXPLAINの内容だけだとどのぐらい良くなったり悪くなったのか分からないので SET long_query_time = 0; してrows_examined (そのクエリでrows_sent行の結果を返すために何行に触ったのか)も一緒に提示するようにしている(少なくともMySQL 5.7時点ではrows_examinedはslow_query_logでしか確認できないはずperformance_schemaが有効ならevents_statements_historyやその仲間たちで確認できるとのこと*1 MySQL :: MySQL 5.6 リファレンスマニュアル :: 22.9.6 パフォーマンススキーマステートメントイベントテーブル)。 例: 上の例のBeforeは、もともとDBAが書いた温かみのあるSQLでO

    MySQLのクエリの良し悪しはrows_examinedで判断する - かみぽわーる
  • MySQLアンチパターン

    DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。

    MySQLアンチパターン
  • 同一テーブル内で違うフィールドにデータをコピー - OKWAVE

    ryomaniaと申します。 MySQL3.23.58を使用しています。 質問の内容なのですが、NO、CNO、NAMEというフィールドを持つテーブル顧客があります。 NOにはauto_incrementで連番の数字が自動で入ります。CNOにはNOと同じ数字を入れたいと思っています。但し最初は数字の0が入っています。NAMEには名前が入っています。 例: NO | CNO | NAME 1 | 0 | test1 2 | 0 | test2 3 | 0 | test3 ・ ・ ・ といった感じです。この状態からupdate構文などを使用して、もしCNOが0であればNOのデータをCNOにコピーするということは可能でしょうか?出来れば複数の行を一度に行いたいと思っています(1000~3000行くらい)。 googleなどで調べては見ましたが答えというかいいヒントが見つかりませんでした。 変な言い

    同一テーブル内で違うフィールドにデータをコピー - OKWAVE
  • MySQL: データ検索クエリの基本 – SELECT文、WHERE句、LIKE、IN、BETWEENキーワード

    前回までにテーブルに一定のデータを追加しましたので、今回はそのデータを検索するクエリ文を以下の場合に分けて練習してみます。 SELECT文の基形 – WHERE句 比較文字列内にワイルドカードを指定 – LIKEキーワード、「%」、「_」記号 比較範囲の指定 – BETWEENキーワード 複数のOR結合をIN句でまとめる NOTキーワードで条件の反転 NULLフィールドの検索 – IS NULL、IS NOT NULL まず、扱うテーブル内のレコードの一覧を下記に示します。 mysql> SELECT * FROM book_list; +---------+--------+--------+-------+-----------------------+ | book_id | title | author | price | comments | +---------+------

    MySQL: データ検索クエリの基本 – SELECT文、WHERE句、LIKE、IN、BETWEENキーワード
  • 基礎から理解するデータベースのしくみ(5):ITpro

    SQL文を実行する際のパフォーマンスに大きな影響を及ぼすものとして,もう一つ,インデックスがあります。インデックスについては,どう定義すべきかというデータベース設計上の問題と,インデックスを有効に使うためのSQL文をどう書くべきかというコーディング上の問題があります。 ここではテーブル設計上の問題を主に取り上げます。SQL文のコーディングについては囲み記事「SQL文を最速にする11のポイント」を参照してください。 インデックスは,テーブルの検索速度を向上させるためのものです。それぞれのSQL文に対して最適なインデックスを定義するのが理想的ですが,実際にはある程度限られたインデックスで,必要なパフォーマンス要件を満たすようにインデックスを定義する必要があります。加えて,どんなSQL文が実際に発行されるのかがあらかじめわかっていない場合は,適当な想定に基づいてインデックスを定義しておかなくては

    基礎から理解するデータベースのしくみ(5):ITpro
    larker
    larker 2006/01/23
    SQL文を最速にする11のポイント
  • 1