Udemy で講座の販売を開始しました! Udemy で「プログラミング学習の心得&HTTPの基礎」の動画講座を公開しました。 特別に 85% OFFのクーポンを発行します。 通常価格 10,800 円が 1,800 円で購入できます。 動画内でも説明していますが、初心者・初学者向けの内容です。 事前に自分の知りたい内容・興味のある内容か確認してからご購入ください。 挫折した人が教える PHP プログラミングシリーズ Vol.1『学習の歩き方』 はじめに 変数と関数の基礎はわかり、クラスも何となく聞いたことがある超初心者向けです。 長いですが、変数と関数しかわからなくても、読めばクラス、例外処理、PDOについて何となくわかるようになると思います。 それ以上の方は、読む必要はないと思います。 時間の無駄ですwww PHPでデータベースを利用するには、PDOを理解する必要があります。 PDOを
今まで mysql... 系を使用していましたが、PHP5.5以降は非推奨となり、将来的には削除される予定らしいので、PDOの使用に変更しようと思い、まとめてみました。 プリペアドステートメントでINSERTすると安全に値を渡せるとか、結構便利みたい。 Manualとか色々読んだけど、分かりにくい言葉が多かったので、自分なりに解釈を書いています。 PDOとかプリペアドステートメントの説明 こっちのページに詳しく書いています。 言葉の意味分からんわー。みたいな時は是非読んでみてください。 PDOでMySQLを色々やる。 まずメソッドや引数をちょっとまとめました。 今後増やしていこうと思っています。 メソッドや引数 内容
MySQL で Too many connections が発生しました。 processlist を確認したところ、Command が Sleep なプロセスが多く発生しており、 結果最大接続数の上限に達してしまうことで発生していたのでした。 Sleep なプロセスが接続を持ったまま残っていることは問題なので、これを削除することとします。 まずは processlist を表示します。 show full processlist を実行するか、select * from information_schema.PROCESSLIST を実行します。 COMMAND が 'Sleep' で、TIME が 1000 以上のものを抽出するには下記のようにします。 mysql> select * from information_schema.PROCESSLIST where USER='use
「トランザクション分離レベル」って今まで聞いたことはあったんだけど、なんのこっちゃわからんかったし、実用面で運用中に気にすることもなかったし、けど知らないままなのもなんだかなぁ、ってことで改めて調べてみました。 Wikipediaによりますと トランザクション分離レベル (-ぶんり-)または 分離レベル (英: Isolation) とは、データベース管理システム上での一括処理(トランザクション)が複数同時に行われた場合に、どれほどの一貫性、正確性で実行するかを4段階で定義したものである。隔離レベル 、 独立性レベルとも呼ばれる。トランザクションを定義づけるACID特性のうち,I(Isolation; 分離性, 独立性)に関する概念である。 Wikipedia「トランザクション分離レベル」より 重要なのはトランザクションのACID特性のI(Isolation; 分離性, 独立性)に関する概
MySQL で EXPLAIN を使って実行計画を調べていると Extra フィールドに「Select tables optimized away」というメッセージが表示された。これはなんだろうか? mysql> explain select max(id) from products ; +----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+
会社の Bitnami (Redmine) が 2.5 で古いのだけど Bitnami は一度アンインストールしてからインストールする必要があるようだったので放置してた。3.2 になるに至っていろいろ機能追加されてきた機能が欲しいというリクエストをもらったのでアップデート。vmware の windows で何回かアップデートの練習をしたおかげか特に問題なく終わった。後は、本体に直接入れていた修正をそのまま当て直すか、plugin 化するかが残っている状態。 以下アップデートのメモ 2.5 をアンインストール 念のためBitnami のルートフォルダからバックアップしておく。MySQL のデータはダンプしておく。 プログラムの追加と削除に登録されていないので (2.6 にはあった) インストールフォルダに有る uninstall.exe から実行 「データも全て削除」を選択 レジストリキー
こんにちわ。モニプラ for Facebookを担当しています高橋です。 先日サンフランシスコでMySQLのカンファレンスが行われMySQL5.6RC版の発表がありました。 http://dev.mysql.com/tech-resources/articles/mysql-5.6-rc.html ベースの性能がアップしているのはもちろんのこと新機能がモリモリ載っています。 今回は開発者視点で個人的に気になるMySQL5.6の機能をチェック&ちょっぴり検証してみました。 InnoDBでFULLTEXTインデックスが利用可能に http://dev.mysql.com/doc/refman/5.6/en/innodb-table-and-index.html#innodb-fulltext-index 今までMyISAMストレージエンジンでのみ使えたFULLTEXTインデックスがInnoDB
MySQLでToo many connectionsが出た時にチェックする項目の整理 MySQL側で見る事 どのMySQLサーバーで起きているか分かっている時にはそのサーバーにログインして確認する。 設定値の確認 MySQLにログインしてmax connectionsの確認をする mysql> show variables like "%max_connections%"; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 1000 | +-----------------+-------+ 1 row in set (0.00 sec)
CREATE TABLE news ( title VARCHAR(255), category VARCHAR(50), date DATE ); INSERT INTO news VALUES ('政治ニュース1', 'seiji', '2012-01-21'), ('政治ニュース2', 'seiji', '2012-01-22'), ('政治ニュース3', 'seiji', '2012-01-23'), ('経済ニュース1', 'keizai', '2012-01-21'), ('経済ニュース2', 'keizai', '2012-01-22'), ('経済ニュース3', 'keizai', '2012-01-23'), ('エンタメニュース1', 'entame', '2012-01-21'), ('エンタメニュース2', 'entame', '2012-01-22'), ('エン
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
Indexを作成すべき列の特長 1. テーブル内のデータ量が多く、少量のレコードを検索する場合 2. WHERE句の条件、結合の条件、ORDER BY句の条件として頻繁に利用する ただし全表走査が目的のテーブルであれば索引は不要 3. NULL値が多いデータから、NULL値以外の検索をする IndexはNULLを含まないのでNULL値以外の検索には効果がある 逆に、Indexを作成すべきでない列の特徴 表の規模が小さいか、表から大部分のレコードを検索する場合 WHERE句等の条件としてあまり仕様されないもの 列の値が頻繁に挿入、更新、削除される Indexは表に新規行が挿入されればIndexにも自動的に値が格納される。そのためデータの検索速度は向上するが挿入、更新、削除の処理では索引のメンテナンス作業が発生し、速度低下につながる WHERE句の条件として使用されるが、列が式の一部として参照
mysql> show status like 'Threads_connected'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 3 | +-------------------+-------+ 1 row in set (0.00 sec) mysql> show processlist; +------+------+-----------------+---------------------------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info |
MySQLサーバーをダウンさせた夜は数知れず。 その度にmy.cnfの設定を見なおしてみてはトライし、治ったと思いきや突然のダウン。 サーバーがダウンしてしまう原因は何かと聞かれれば、「メモリです」と断言しましょう。 メモリ設定は諸刃の剣。 パフォーマンスを最大に引き出すこともできればそれと引き換えにサーバーをダウンさせてしまうこともできるんです。 今回はMySQLのメモリの設定の勘所というかたちで紹介しようと思います。 グローバルバッファとスレッドバッファ メモリの設定についてまず「グローバルバッファ」と「スレッドバッファ」について理解しておくことが大事です。バッファとは一時的な記憶領域・つまりはメモリの領域のことなのですが。 グローバルバッファ MySQLで使用する全体的なメモリ使用量を計算するには グローバルバッファ + (スレッドバッファ × コネクション数) = メモリ使用量 と
MySQLでtoo many connectionsエラーが発生した経緯もあり、MySQLのコネクション接続数とスレッド数を参照するコマンドを調査しました。以下に記載します。 現在の接続数 以下は累計のため、現在値を把握するためには前回値との差分を取る mysql> show global status like 'Threads_connected'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 2 | +-------------------+-------+ 最大接続数設定(上限) mysql> show global variables like 'max_connections'; +-------------
MySQL5.0.45で、varchar(100)で定義したカラムに200バイト(全角100文字)までinsert可能です。 考えられる理由や、その確認方法を教えてください。
5月 16th, 2010 by mattari 前回、Redmine –0.9.4 にアップデートしましたが、もっとこう簡単にならないかということで、All In one な BitNami Redmine Stack に移行してみました。 おおまかにやることは、 Bitnami Redmine Stack をインストール DBの移行 SVNリポジトリの移行 Redmine の設定の更新 です。 作業中はユーザ・アカウント制御(UAC)を一時的に無効にしてください。 BitNami Redmine Stack のイスントール [Next]を数回押せば終わってしまいます。 DBの移行 既存のDBをバックアップ C:\mysql\bin> mysqldump > C:\redmine.sql BitNami の MySQL に DBをインポート DB名と <user> と <password
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く