タグ: MySQL を抽出しています。
Total: 60

MySQL 5.0.45 → 5.0.51

ブログ | 2008/2/7 15:04
ちょっと気がついたのでメモ。
下記、変なクエリーなのだけれど、
SELECT * FROM ika GROUP BY tako ORDER BY nabe;

5.0.45だとソートを切り替えられるが、5.0.51だとソートしない。

対処はおそらく、GROUP BY を消せばいいのだろう。
クエリーをプログラムで生成してると、こんなんも出没する。

タグ関係、直さねば。

MySQLの自動起動

ブログ | 2008/2/6 14:25
OSXのMySQLは、インストールパッケージの「MySQLStartupItem.pkg」で自動起動する筈なのだが、起動しない。

ほぼ、同じ構成だから問題ないと高をくくっていたのだけれど、OS10.4.11で新規にインストールしたからだろうか。
MySQLのバージョンも5.0.45じゃなくて、5.0.51を入れてしまったからだろうか。

いちいち検証できないので、リサーチ。

MySQLStartupItem.pkgでインストールされるのは、
/Library/StartupItems/MySQLCOM
のようだ。で、MySQLの起動は、
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
らしい。違うマシンでは確かに起動した。

で、問題のマシンを見てみると
/Library/StartupItems/MySQLCOM
がない。

あるマシンからファイルをコピペしてみる。
で、Webminの「起動およびシャットダウン」でMYSQLCOMを-YES-にしてみた。なんかいけそうだ。

それ、再起動。

お、アクセス権のエラーメッセージがでて、修復後勝手に再起動。
いけた。

念のため、もう一回再起動。

・・・

あとは、ディスプレイに接続しないmac miniにVNCで接続して画面がでない問題だな。あのmac miniではでてるのに、なぜ出ないんだ。
あっちが、Core DuoでこっちがCore 2 Duoだからかな。

検証
うえぇ、VNCサーバーにvineを使っているからだった。
http://www.redstonesoftware.com/products/vine/se...
ということで、vineはやめて、OSX純正(システム環境設定の)を使うことで解決。
vineだと、綺麗な画面がくるのだけれど、純正は色数がだいぶん削られてくるようだ。別に構わないけど。

tinyintは127まで

ブログ | 2008/1/21 13:43
4桁までいけるのかなと勝手に解釈していたのだけれど、違いました。
http://dev.mysql.com/doc/refman/4.1/ja/numeric-t...

tinyintは、-128〜127
intは、-2147483648〜2147483647

長さのtinyint(4)とか、int(11)が何を意味してるのかも書いてあるような気がするけど、今は面倒なので追求しない。

MySQL、生データの移動

ブログ | 2007/11/20 14:46
週末、サーバーの切り替えなどを行って、いくつか分かった。
とりあえず、データベースの移動についてメモ。

mysqldumpでもよいのだけれど、データベースが大きくなってくると時間がかかるしなかなか大変。

で、生データを移植する。

まず、元のデータをterminalで、
sudo tar cvfz /Users/kuwa/Desktop/data.tar.gz -C/usr/local/mysql/ data

で移植先のコンピュータに複製して解凍。
で、/usr/local/mysql/data を削除。
で、解凍したdataフォルダをそこへ移動。
このままでは所有権に問題があるので、terminalで
sudo chown -R mysql:wheel /usr/local/mysql/data
これで完了。

レプリケーションについては、また今度メモしよう。

複数サーバーに向けてのステップワン

ブログ | 2007/11/16 15:06
どうもポストが重くてしょうがない。
で、次のステップを考える。

CPUの稼働状況を見るにMySQLの負荷であろう。クエリーの見直しは逐一進めるとして、分散を考えよう。

・MySQL用にサーバーを一台追加
・レプリケーションで同期
・参照クエリはそっちに投げる

これぐらいができれば、半年ぐらいはしのげるような気がする。
さあ、できるかどうか、とりあえず今あるマシンで仮構築してみる。わからないことは2点。

1. メインサーバーからサブサーバーMySQLへのアクセス
2. レプリケーション

まず、1はテストしてみた。PHPでの接続で
mysql_connect("接続先のIPアドレス", "user", "password");
これだけでいいみたいだ。
phpMyAdminの「特権」でユーザーを追加する必要があり、ファイアウォールで3306を開けておく必要もある。で、たぶん繋がる。

で、2。これから調べる。

できちゃったら、Mac miniを買いに行け!

SQL_CALC_FOUND_ROWS

ブログ | 2007/11/15 20:56
ページャーつきのページで、データ総数を取得するのにSELECTをLIMITつきとなしの2回なげていたのだけれど、SQL_CALC_FOUND_ROWSを使うと1回で済む。これは素晴らしい。

んが、僕のクエリでは酷く遅いことが今判明。
なしだと0.006秒ぐらいのものが、つけると3秒以上かかることがざら。
これだったら2回投げるべきだ。

ついでに実行時間を計るときには、SQL_NO_CACHE をつければキャッシュを読まないことを先ほど知った。

SELECT SQL_NO_CACHE * FROM....

あー、今朝せっかく変えたのに、元に戻さねば。

負荷分散メモ

ブログ | 2007/11/14 00:16
なんとなく、同じデータベースで、あっちが重くてもこっちはそうでもないという感じがする。

ということは、テーブルを分けるだけでも負荷分散になるのかもしれない。ポストマップで言えば、マップでのパースと、ポストのリスト表示(検索・ソート)の負荷が大きいように思える。サブテーブルにcronで定期的に複製して、表示はそっちを参照するようなこともいずれ検討してみよう。
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close