私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part15
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
>>500
>レコードの存在チェックをかけたいカラムはプライマリキーではありません。
>レコードの存在チェックをかけたいカラムはプライマリキーではありません。
>>491
どの文字がどのように化けるか具体的に。
どの文字がどのように化けるか具体的に。
>>494
それ sjis のことじゃね?
それ sjis のことじゃね?
>>491
この条件で文字化けが起きるのはおかしいので、
表示する時の問題な気がする。
例えば、プログラムで表示してるなら、そっちの設定がおかしいとか。
どうでも良いけど、set names 何回するのかとw
>>494
sqlインジェクションとujisは関係ない。set names の問題と勘違いしてるのかな?
http://blog.ohgaki.net/set_namesa_mcb_asc
この条件で文字化けが起きるのはおかしいので、
表示する時の問題な気がする。
例えば、プログラムで表示してるなら、そっちの設定がおかしいとか。
どうでも良いけど、set names 何回するのかとw
>>494
sqlインジェクションとujisは関係ない。set names の問題と勘違いしてるのかな?
http://blog.ohgaki.net/set_namesa_mcb_asc
mysqlbenchでコネクション数を1000より大きくしたいのですが。。。
どなたか方法ご存知ありませんか?
どなたか方法ご存知ありませんか?
>>508
存じております><
存じております><
>>501
横やりなんだけど
> ON DUPLICATE KEY UPDATE を利用する時は DELAYED オプションは無視されます。
ってあるじゃん。やっぱりそうなると大規模じゃ無理ぽ?みんなどうしてるのかな。
横やりなんだけど
> ON DUPLICATE KEY UPDATE を利用する時は DELAYED オプションは無視されます。
ってあるじゃん。やっぱりそうなると大規模じゃ無理ぽ?みんなどうしてるのかな。
>>490
読んだけど、けども・・・。
読んだけど、けども・・・。
>>511
なんだ、はっきり言え
なんだ、はっきり言え
>>512
他に読むべき本が・・・、あるっ・・・!
初心者向けなのはわかるけど、あまり理系に向いてないというか浮かんでくる疑問が多くてこれ一冊じゃわかった気にならない。
>>513
手動でsequenceのテーブル書き換えるかAUTO_INCREMENTを0にしたらどうかな。結果報告待ってます。
最近こんなのが出て頻繁に落ちるようになっちゃった。メモリ不足なのかな・・・。
090217 9:29:42 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.
key_buffer_size=402653184
read_buffer_size=2097152
max_used_connections=18
max_threads=151
threads_connected=12
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013224 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
うーん。
他に読むべき本が・・・、あるっ・・・!
初心者向けなのはわかるけど、あまり理系に向いてないというか浮かんでくる疑問が多くてこれ一冊じゃわかった気にならない。
>>513
手動でsequenceのテーブル書き換えるかAUTO_INCREMENTを0にしたらどうかな。結果報告待ってます。
最近こんなのが出て頻繁に落ちるようになっちゃった。メモリ不足なのかな・・・。
090217 9:29:42 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.
key_buffer_size=402653184
read_buffer_size=2097152
max_used_connections=18
max_threads=151
threads_connected=12
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013224 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
うーん。
>>515
返信ありがとう。チューニングのチュの字もわかんないへたれです。
FreeBSD, メモリ4G, スワップ1Gです。
%uname -a
FreeBSD kennedy.l3tp.org 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 08:58:24 UTC 2009 root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
%swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 1048576 36 1048540 0%
%dmesg |grep mem
usable memory = 4280016896 (4081 MB)
avail memory = 4122501120 (3931 MB)
%pkg_info -Ix mysql-server
mysql-server-5.1.30 Multithreaded SQL database (server)
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
innodb_buffer_pool_size = 2000M
#innodb_additional_mem_pool_size = 20M
innodb_additional_mem_pool_size = 512M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
そこまで高負荷とは思ってないのですが、phpMyAdminでつなぐと頻繁に落ちる気がしてます。
返信ありがとう。チューニングのチュの字もわかんないへたれです。
FreeBSD, メモリ4G, スワップ1Gです。
%uname -a
FreeBSD kennedy.l3tp.org 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 08:58:24 UTC 2009 root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
%swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 1048576 36 1048540 0%
%dmesg |grep mem
usable memory = 4280016896 (4081 MB)
avail memory = 4122501120 (3931 MB)
%pkg_info -Ix mysql-server
mysql-server-5.1.30 Multithreaded SQL database (server)
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
innodb_buffer_pool_size = 2000M
#innodb_additional_mem_pool_size = 20M
innodb_additional_mem_pool_size = 512M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
そこまで高負荷とは思ってないのですが、phpMyAdminでつなぐと頻繁に落ちる気がしてます。
お前らのせいで>>516が口をへの字にしちゃったよ
アパッチを使いMySQLサーバを立て
別のPCからMySQLモニタでサーバにアクセスすることって可能ですか?
別のPCからMySQLモニタでサーバにアクセスすることって可能ですか?
select
NC.NUMCOMMENT AS NUMCOMMENT,
T.BODY AS BODY,
T.TITLE AS TITLE,
C.CATEGORY_NAME AS CATEGORY_NAME
from
TOPIC T,
CATEGORY C,
(select TOPIC_ID, count(*) as NUMCOMMENT
from COMMENT group by TOPIC_IC) NC
where
NC.TOPIC_ID = T.TOPIC_ID
and
T.CATEGORY_ID = C.CATEGORY_ID
(注意点)
俺は酔っぱらっている。
NC.NUMCOMMENT AS NUMCOMMENT,
T.BODY AS BODY,
T.TITLE AS TITLE,
C.CATEGORY_NAME AS CATEGORY_NAME
from
TOPIC T,
CATEGORY C,
(select TOPIC_ID, count(*) as NUMCOMMENT
from COMMENT group by TOPIC_IC) NC
where
NC.TOPIC_ID = T.TOPIC_ID
and
T.CATEGORY_ID = C.CATEGORY_ID
(注意点)
俺は酔っぱらっている。
>>531
小泉じゃねーかYO!中川じゃねーんかYO!
小泉じゃねーかYO!中川じゃねーんかYO!
>>522
INSERT INTO (・・・) SELECT ・・・
が使えるんじゃ?
つかオートインクリメントの数字そのものは気にするものじゃないよ。
どうしてもというのなら、自分でストアド書いたほうがマシかもね。
INSERT INTO (・・・) SELECT ・・・
が使えるんじゃ?
つかオートインクリメントの数字そのものは気にするものじゃないよ。
どうしてもというのなら、自分でストアド書いたほうがマシかもね。
要は次のものを取得したいという事で良いのかな?
・あるcategory idを持つ記事全てに対して付けられたcomment数の合計
・あるcategory idを持つ記事のbodyとtitle全て
だとすれば、これはクエリをcomment数を求めるクエリとbodyとtitleを
求めるクエリの2つに分けるのが、その後のアプリの実装も含めて結果的
には一番楽だと思う。
select
COUNT(*) AS NUMCOMMENT,
CA.CATEGORY_NAME AS CATEGORY_NAME
from TOPIC T, CATEGORY CA, COMMENT CM
where
T.CATEGORY_ID = CA.CATEGORY_ID AND
T.TOPIC_ID = CM.TOPIC_ID and
T.CATEGORY_ID = ???
group by CATEGORY_NAME
select
T.BODY AS BODY, T.TITLE AS TITLE,
CA.CATEGORY_NAME AS CATEGORY_NAME
from TOPIC T, CATEGORY CA
where
T.CATEGORY_ID = CA.CATEGORY_ID and
T.CATEGORY_ID = ???
・あるcategory idを持つ記事全てに対して付けられたcomment数の合計
・あるcategory idを持つ記事のbodyとtitle全て
だとすれば、これはクエリをcomment数を求めるクエリとbodyとtitleを
求めるクエリの2つに分けるのが、その後のアプリの実装も含めて結果的
には一番楽だと思う。
select
COUNT(*) AS NUMCOMMENT,
CA.CATEGORY_NAME AS CATEGORY_NAME
from TOPIC T, CATEGORY CA, COMMENT CM
where
T.CATEGORY_ID = CA.CATEGORY_ID AND
T.TOPIC_ID = CM.TOPIC_ID and
T.CATEGORY_ID = ???
group by CATEGORY_NAME
select
T.BODY AS BODY, T.TITLE AS TITLE,
CA.CATEGORY_NAME AS CATEGORY_NAME
from TOPIC T, CATEGORY CA
where
T.CATEGORY_ID = CA.CATEGORY_ID and
T.CATEGORY_ID = ???
結局ソートで一回、結合で一回インデックスを読みに行くことで
実現されるから、大事なところにインデックス貼っておけばそうは
変わらないと思う。
あとはAとBのレコード数と、制約条件などの有無でも変わってくる
はずなので、具体的にはデータ依存としか言いようがない。
あとLEFT JOINを使っているけど、NULLを含む列をORDER BYに
使ったとき並び順は実装依存なので。明確に外部結合が必要で
無い限り内部結合を使った方が無難です。
実現されるから、大事なところにインデックス貼っておけばそうは
変わらないと思う。
あとはAとBのレコード数と、制約条件などの有無でも変わってくる
はずなので、具体的にはデータ依存としか言いようがない。
あとLEFT JOINを使っているけど、NULLを含む列をORDER BYに
使ったとき並び順は実装依存なので。明確に外部結合が必要で
無い限り内部結合を使った方が無難です。
ストアドプロシージャの初歩的な書き方について質問です。
プロシージャ内でテーブル名を変数に入れてクエリするにはどうしたらよろしいでしょうか?
具体的には
-----------------------------------------------------------------------
delimiter //
CREATE PROCEDURE table_count (OUT count INT , IN table_name text )
BEGIN
SELECT COUNT(*) INTO count FROM table_name;
END;
//
delimiter ;
-----------------------------------------------------------------------
のようなことをしたいのですが、table_nameを変数として展開せずにtable_nameというテーブルを探しにいってしまいます。
どう書いたらよろしいのでしょうか?
よろしくお願いします。
プロシージャ内でテーブル名を変数に入れてクエリするにはどうしたらよろしいでしょうか?
具体的には
-----------------------------------------------------------------------
delimiter //
CREATE PROCEDURE table_count (OUT count INT , IN table_name text )
BEGIN
SELECT COUNT(*) INTO count FROM table_name;
END;
//
delimiter ;
-----------------------------------------------------------------------
のようなことをしたいのですが、table_nameを変数として展開せずにtable_nameというテーブルを探しにいってしまいます。
どう書いたらよろしいのでしょうか?
よろしくお願いします。
自己解決スマソ
更にサブクエリとすれば良かっただけでした
更にサブクエリとすれば良かっただけでした
質問です
複数のカラムを1つのカラムに見立てて
ユニーク制約をかけることって出来ないのかな?
複数カラムの全レコードを通して一意の値を持たせたいんだけど。
動作的には空テーブルに
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 3 );
が成功したとき、
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 3 , 1 , 2 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 4 , 5 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 3 ); も
失敗するような感じになって欲しい。
成功するのは
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 6 );
のように、c1,c2,c3とおして全く使用されていない値だけで
組み合わされた時だけにしたい。
UNIQUE (c1,c2,c3)みたいな表制約だと、c1,c2,c3の組み合わせの値が
同一のときだけしか制約されないので、これじゃないと言う事だけは
判ったんだけど。
やっぱりプログラム側で事前に重複チェックするしかないのかな?
複数のカラムを1つのカラムに見立てて
ユニーク制約をかけることって出来ないのかな?
複数カラムの全レコードを通して一意の値を持たせたいんだけど。
動作的には空テーブルに
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 3 );
が成功したとき、
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 3 , 1 , 2 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 4 , 5 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 3 ); も
失敗するような感じになって欲しい。
成功するのは
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 6 );
のように、c1,c2,c3とおして全く使用されていない値だけで
組み合わされた時だけにしたい。
UNIQUE (c1,c2,c3)みたいな表制約だと、c1,c2,c3の組み合わせの値が
同一のときだけしか制約されないので、これじゃないと言う事だけは
判ったんだけど。
やっぱりプログラム側で事前に重複チェックするしかないのかな?
昇天してしまったマシンからデータベースのバックアップを取りたいと
思っています。(マザーボードが死んだ)ディスクは生きているのですが、
適当なマシンにディスクをマウントしてバックアップをとる場合、mysqldumpを
使ってバックアップなどできるのでしょうか?os bootcdからrescueモードで
できればと考えています。OSはCentOS5です。
よろしくお願いします。
思っています。(マザーボードが死んだ)ディスクは生きているのですが、
適当なマシンにディスクをマウントしてバックアップをとる場合、mysqldumpを
使ってバックアップなどできるのでしょうか?os bootcdからrescueモードで
できればと考えています。OSはCentOS5です。
よろしくお願いします。
>>541
それどんなシステムなの?
それどんなシステムなの?
一件づつにユニークなナンバリングがされたアイテムを3つ用意して
それを登録してもらうんだけど、間違って同じ番号を複数入力されると
既に出来ている参照系に大きな影響が出てしまって
困るので、こういう風にしたいなぁと。
本当なら正規化してテーブル分けて云々するのがスジなのも
わかっているんだけど、よんどころない事情でそれも出来ないんだ
それを登録してもらうんだけど、間違って同じ番号を複数入力されると
既に出来ている参照系に大きな影響が出てしまって
困るので、こういう風にしたいなぁと。
本当なら正規化してテーブル分けて云々するのがスジなのも
わかっているんだけど、よんどころない事情でそれも出来ないんだ
>>541
トリガぐらいしか思い浮かばないな、俺の頭じゃ
該当テーブルの BEFORE INSERT/UPDATE/DELETE で
CREATE TABLE selected (識別子 型 UNIQUE); なテーブルにも反映させる
トリガぐらいしか思い浮かばないな、俺の頭じゃ
該当テーブルの BEFORE INSERT/UPDATE/DELETE で
CREATE TABLE selected (識別子 型 UNIQUE); なテーブルにも反映させる
c1, c2, c3 に入れる値を
任意の自然数nの代わりに
2の(n-1)乗になる数字を入れる
つまり
>>541 を
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 4 );
が成功したとき、
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 1 , 2 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 8 , 8 , 16 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 4 ); も
失敗するような感じになって欲しい。
成功するのは
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 64 );
・・・
と置き換える
任意の自然数nの代わりに
2の(n-1)乗になる数字を入れる
つまり
>>541 を
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 4 );
が成功したとき、
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 1 , 2 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 8 , 8 , 16 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 4 ); も
失敗するような感じになって欲しい。
成功するのは
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 64 );
・・・
と置き換える
>>549
開始時刻 | 終了時刻 | 経過時間
16:33:00 | 16:23:00 | 00:10:00
10:40:00 | 10:31:00 | 00:09:00
12:33:00 | 09:21:00 | 03:12:00
13:15:00 | 11:14:00 | 02:01:00
13:19:00 | 10:41:00 | 02:38:00
経過時間は,timediff関数を使って求められたのですが,
経過時間の合計や平均の出し方が分からないんです。
開始時刻 | 終了時刻 | 経過時間
16:33:00 | 16:23:00 | 00:10:00
10:40:00 | 10:31:00 | 00:09:00
12:33:00 | 09:21:00 | 03:12:00
13:15:00 | 11:14:00 | 02:01:00
13:19:00 | 10:41:00 | 02:38:00
経過時間は,timediff関数を使って求められたのですが,
経過時間の合計や平均の出し方が分からないんです。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : ☆類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part25 (947) - [94%] - 2017/6/18 6:30
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について