タグ

MySQLに関するsnaflotのブックマーク (37)

  • PHPでPDOを使ってMySQLに接続、INSERT、UPDATE、DELETE、COUNT、SUM - Qiita

    今まで mysql... 系を使用していましたが、PHP5.5以降は非推奨となり、将来的には削除される予定らしいので、PDOの使用に変更しようと思い、まとめてみました。 プリペアドステートメントでINSERTすると安全に値を渡せるとか、結構便利みたい。 Manualとか色々読んだけど、分かりにくい言葉が多かったので、自分なりに解釈を書いています。 PDOとかプリペアドステートメントの説明 こっちのページに詳しく書いています。 言葉の意味分からんわー。みたいな時は是非読んでみてください。 PDOでMySQLを色々やる。 まずメソッドや引数をちょっとまとめました。 今後増やしていこうと思っています。 メソッドや引数 内容

    PHPでPDOを使ってMySQLに接続、INSERT、UPDATE、DELETE、COUNT、SUM - Qiita
  • 『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』

    サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。

    『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』
  • [MYSQL][PHP]まとめてINSERTするSQL文の自動生成処理 | Crunch Times

    MYSQLに限らず、DBのアクセス回数はパフォーマンスの悪化を招きます。MYSQLではINSERTの複数レコード実行がサポートされていますので、PHPSQL文を自動生成してみましょう。 まとめてINSERTするばあいの構文は下記のようにVALUES以降に挿入する値を()で括っていきます。 INSERT INTO student (name, city) VALUES ('佐々木', '広島市'), ('蘇我', '福山市'), ('山', '那覇市');

  • CRUD Admin Generator – コード生成型のデータベース管理

    PHPで作られたシステムでMySQLを管理しようと思ったらphpMyAdminが真っ先に頭に浮かぶと思いますが、そのUIが随分古かったり、自分なりのカスタマイズができないなどと不満を感じている人もいるかと思います。 そこで紹介したいのがCRUD Admin Generatorです。ジェネレータの名前の通り、コードを生成してくれるソフトウェアです。 CRUD Admin Generatorの使い方 CRUD Admin Generatorではテーブルごとにコードが生成されますので、生成後に実際に編集できるテーブル以外のファイルを削除することもできます。また生成されたコードをベースにさらにカスタマイズすることもできるでしょう。カスタマイズしたデータベース管理にしたい時に使えそうです。 CRUD Admin GeneratorはPHP製、MIT Licenseのオープンソース・ソフトウェアです。

    CRUD Admin Generator – コード生成型のデータベース管理
  • MySQLからelasticsearchへ、レコードをネスト構造化しつつ同期出来る fluent-plugin-mysql-replicator v0.4.0 を公開しました - Y-Ken Studio

    elasticsearchは全文検索サーバとしても知名度を獲得しており、次のような記事も人気を集めています。 elasticsearchを全文検索サーバとして活用するなら読んでおきたい、6つのブログ記事をピックアップ - Y-Ken Studio http://y-ken.hatenablog.com/entry/essential-japanese-blogs-for-elasticsearch-study MySQLでは実現の難しかったLuceneならではの次のような特徴を兼ね備えたelasticsearchはとても魅力ですよね。 ファセット検索 (Facet) http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets.html 柔軟な日語処理 (kuromoji) http

    MySQLからelasticsearchへ、レコードをネスト構造化しつつ同期出来る fluent-plugin-mysql-replicator v0.4.0 を公開しました - Y-Ken Studio
  • PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能

    基礎からのPHPという書籍を読んでおりましたら、SQLインジェクションの攻撃例として、以下のSQL文ができあがる例が紹介されていました。PHP+PDO+MySQLという組み合わせです。 SELECT * FROM tb2 WHERE ban=1;delete from tb2 2つのSQL文がセミコロンで区切って1つにまとめられていますが、これを「複文(multiple statement)」と言います。私は、SQLインジェクション攻撃の文脈で複文が使える組み合わせを調べたことがあり、PHPMySQLという組み合わせでは、複文は使えないと思っていましたので、この攻撃は成立しないのではないかと思いました。 しかし、決めつけも良くないと思い手元の環境で動かしてみたところ、あっさり動くではありませんか。 PDOを用いてMySQLを呼び出す場合は複文が実行できると気づきましたが、なぜPDOの場合

  • PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 - Qiita

    PDOを使ったデータベース操作でオブジェクトを扱う場合、不便なところが結構あります。 それを PDOStatement を拡張することで使いやすくしようという話を基に、応用例としてJSON出力とCSVファイル出力の方法を紹介します。 オブジェクトで取得するためのフェッチモード フェッチモードには多彩なものが用意されているのですが、オブジェクトで取得する場合はどれも使いづらいです。 自分はいわゆるモデルクラスは不変オブジェクトにしたいよ派かつ、マジックメソッド大好きなので、その辺りの使いやすさについても注目してみます。 PDO::FETCH_OBJ 列名をプロパティに持つ匿名オブジェクト (stdClass) を返します。 匿名オブジェクトなんて連想配列と同じだし、今となっては意味がなさそう…。 PDO::FETCH_LAZY PHPマニュアルの記述からは PDO::FETCH_OBJ と

    PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 - Qiita
  • MySQL: 今日、昨日、1週間前のレコードを抽出する

    一番シンプルなのは datediff 関数で日数を計算すればよいが、date_add、date_sub 関数から計算することもできる。テーブルの作成とデータの登録は次のように行った。 create table test_table (id int not null auto_increment, created_at timestamp, primary key(id)); insert into test_table (created_at) value(date_add(curdate(), interval 1 day)); insert into test_table (created_at) value(date_sub(curdate(), interval 1 day)); 昨日、1週間後だけでなく明日、1週間後、月末もついでに書いておいた。 # 1週間前 select *

    MySQL: 今日、昨日、1週間前のレコードを抽出する
  • MySQL演算子・関数

    MySQLの演算子や関数について説明します。 なお、個人的に必要無いと思うものについては省略しています(笑)。 MySQL5.0.16対応 最初に MySQLでは、数値⇔文字列の変換は自動的に行われます。 SELECT 100 + '200' -> 300 SELECT 100 < '200' -> 1 (TRUE) SELECT 100 < '22' -> 0 (FALSE) 比較演算子 比較演算の結果は、1(TRUE) / 0(FALSE) / NULL のいずれかになります。 例を挙げます。 SELECT 1 = 1 -> 1 SELECT 1 = 3 -> 0 SELECT 1 = NULL -> NULL SELECT NULL = NULL -> NULL 最後の結果に注意して下さい。 どのデータベースにも共通して言えることですが、NULLという値は 特別な意味を持ちます。 N

  • ID毎に最新の値を取得する

    はじめて質問させていただきます。 現在、MySQLを使って会員管理用DBを作成しており、以下のようなテーブルを作っています。 ID | Name | Address | UpdateDate 1 | A | 東京 | 2009-10-10 1 | A | 福岡 | 2009-10-11 2 | B | 東京 | 2008-09-02 このようなID毎に複数のデータがある状態で、各IDの最新のデータのみを取得したいのですが、方法がわからずにいます。 大変初歩的な質問かもしれませんが、方法をご存じの方どうかご教授ください。 また、素人なもので、質問の方法が悪いかもしれません。その場合、ご指摘いただければ幸いです。 よろしくお願いします。

    ID毎に最新の値を取得する
  • MySQL :: MySQL Workbench

    設計 MySQL Workbench は、 DBA、開発者、データアーキテクトがデータベースの設計、作成、管理をビジュアルに行うことができるツールです。データモデラーが複雑な ER モデルの作成、フォワードおよびリバースエンジニアリング作業を行うために必要な機能を含み、難しい変更管理や、通常かなりの時間と労力を必要とするドキュメンテーション作業の為の重要な機能なども含まれています。 詳しくはこちら » 開発 MySQL Workbench は、SQL クエリーの作成、実行、最適化をビジュアルに行えるツールを備えています。SQL エディタは、シンタックスのカラーハイライト、自動補完、SQL ステートメントの再利用、SQL の実行履歴情報を提供します。Database Connections Panel によって MySQL Fabric を含む一般的なデータベース接続の管理が容易になります。

    snaflot
    snaflot 2013/08/25
    ER図作成ツール
  • MySQLの超遅いSELECTが劇的に早くなった | X->A->O

    CakePHPはよく触っていたものの、MySQLについてあまり知らなかったんですが、大規模なデータベースを扱ってみようと思い立ちいろいろ試行錯誤しています。 で、ついさっき感動したのが、40万件のレコードを扱ってるテーブルに簡単なSELECT分を投げて返ってくる時間がなんと5秒もかかっていて、なんじゃこりゃ?って首をかしげてたんですが、INDEXひとつで劇的に早くなったこと。 40万件が大規模かそうでないかはこの際おいておいて、INDEXのつけ方次第でこんなにも速度に変化があるのかと涙が出そうになった。 最初の激遅いテーブルは簡単に書くとこんな具合。 CREATE TABLE IF NOT EXISTS `shops` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `status

  • How to Convert a Google Spreadsheet into JSON, XML, and MySQL

    How to Convert a Google Spreadsheet into JSON, XML, and MySQL Update: Google is deprecating Google Spreadsheets gadgets, as they announced in this post, so I am no longer updating or supporting them. I've written a post on a new technique here. As some people know, I have a huge fetish for Google Spreadsheets - maybe because I'm always dealing with small datasets, and Spreadsheets is perfect for t

  • ヵェの部屋♪-BLOG- : herokuのアドオンでmysqlを利用する。もち無料。

    herokuのアドオンでmysqlを利用するといったら、 Amazon RDSがよく紹介されています。 ですが、今回は違うアドオンを紹介したいと思います。 Amazon RDSは、確かに接続は無料です。freeです。 herokuのホームページにもfreeって書いてますよね! https://addons.heroku.com/amazon_rds ですが、落とし穴があってですね。 接続は無料でも、利用料が無料というわけじゃないんですね。(たぶん) そこで、 「PostgreSQLは嫌だ・・・。MySQLをご所望なんだー!!でもデータも少ないし無料がいいんだよこんちくしょー!」 という方にとってよい情報だと思います。 (私もまさか他にアドオンがあるとは思ってませんでした) そのアドオンというのがコレ。 確か10MBまでなら無料です!!!! 「Xeround Croud Database

  • PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional

    先日発売されたsymfonyの執筆に携わらせて頂いたので、今回はPHPのPaaSホスティングサービスである cloudControl で、無料で symfony1.4 を稼働させます。きっと、cakePHPやCodeigniterも稼働させることができるのではないでしょうか。 cloudControlって? 1時間あたり1BoxというcloudControlで定義している独自の単位は無料で使えます。簡単に言うと、少ないアクセスのサイトだったら無料で使えます。それ以上のアクセスを提供するためにはunlockの手続き(有料)が別途必要です。 また、無料で提供しているアドオンが利用できます。その中にはMySQLがあるので、PHPMySQLで稼働するフレームワークは大抵稼働するのではないでしょうか。 cloudControl で symfony1.4 を稼働させるところまで、解説することにしま

    PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional
  • xampp(windows)のMySQLでクエリログを出力させる方法

    アプリケーションがどんなSQLを投げているかを確認するために、クエリログを出力することにしました。 [xamppインストールフォルダ]/mysql/bin/my.cnf に以下の記述を追加 [mysqld] <省略> log=c:/[任意のログファイル名].log ※ポイント※ [C:\WINDOWS\my.ini]と言うファイルが存在し、MySQLの起動方法によってはこちらの設定が読まれてしまう。 my.cnfをエクスプローラーで確認するとウインドウズの設定によっては「短縮ダイヤル」と表示され、拡張子が見えない。 添付画像に「短縮ダイヤル」で表示されているmy.cnfを示しました。 はじめに気づいた時には拡張子も表示されておらず、非常に混乱しました。

    xampp(windows)のMySQLでクエリログを出力させる方法
  • http://blog.tofu-kun.org/070721115104.php

  • クエリーを実行して結果を表示。シンプルなMySQLフロンとエンド·Bike MOONGIFT

    Bikeは軽量なMySQLフロントエンドです。 MySQLの管理ツールとして名高いphpMyAdminですが、あまりにリッチ過ぎて動作が緩慢に感じられることがあります。UIもちょっと古くさく感じるかも知れません。そこで単にクエリーを投げて結果を確認するのに特化したBikeを紹介します。 画面の上にクエリーを入力して、その結果が下に表示されます。 クエリーを保存しておいて使い回せます。 結果を指定時間ごとに繰り返す事もできます。 1ページ20行ごとでページネーションされます。 ライブラリに入っている機能を使うとく襟の入力が手軽になります。 テーブル名を入れるだけで構造表示ができます。この場合はDESCが省略できるだけですが、もっと複雑な場合はより便利になるはずです。 Bikeは実行したクエリーを保存しておいてくれるので、レポート関係など繰り返し実行するクエリーを呼び出すのに便利です。CMSと

  • PHPの変数をhtmlで出力する - OKWAVE

    ど初心者でごめんなさい。 phpの変数をhtmlで表示する場合 <?= $変数名 ?>と教わったのですが、下記のプログラムをじっこうすると <?php $url = "localhost"; $user = "root"; $pass = ""; $db = "SampleDB050"; // MySQLへ接続する $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); // データベースを選択する $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); // クエリを送信する $sql = "SELECT * FROM T01Prefecture"; $result = mysql_query($sql, $link) or die("ク

    PHPの変数をhtmlで出力する - OKWAVE
    snaflot
    snaflot 2011/12/05
    short_open_tagが無効になっている?
  • DotCloudでのMySQL,Redis,MongoDBの使い方 – Rest Term

    前回のエントリーDotCloudが素晴らしいに引き続きDotCloudで遊びます。 今回はDotCloudの「プログラミング言語やミドルウェアを自由に選べる」という特徴を活かしていろんな組み合わせを試してみたいと思います。 * メニュー PHP + MySQL Ruby + Redis (Sinatraを利用) Python + MongoDB (Flaskを利用) PHP + MySQL この組み合わせでのシステム開発はなんだかんだ言って仕事で慣れている方も多いのではと思います。もちろんDotCloudでもPHP + MySQLの環境をサポートしています。アプリケーションのデプロイまでの簡単なフローは前回のエントリーに書いたのでそちらを参照してください。 * 環境 PHP 5.3.2 MySQL 5.1.41

    DotCloudでのMySQL,Redis,MongoDBの使い方 – Rest Term