私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part15
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
>>149
空振りはしない前提です。
UPDATE hoge (key,key) VALUES (val,val)という記法が使えないので、
REPLACEでユニークなキーを指定してやり、UPDATEの代わりにします。
INSERTはたくさん結合させてひとつのクエリにした方が早かったので類推しました。
今は少し忙しいので、暇が出来ればちょっとベンチマークを組んでみます。
誰かご存じの方がおられたらよろしくお願いします。
>>150
クエリが長すぎるのではないでしょうか。
他にもいくつかの理由が考えられますが、
Lost connection to MySQL server during queryで検索するといろいろ出てきます。
空振りはしない前提です。
UPDATE hoge (key,key) VALUES (val,val)という記法が使えないので、
REPLACEでユニークなキーを指定してやり、UPDATEの代わりにします。
INSERTはたくさん結合させてひとつのクエリにした方が早かったので類推しました。
今は少し忙しいので、暇が出来ればちょっとベンチマークを組んでみます。
誰かご存じの方がおられたらよろしくお願いします。
>>150
クエリが長すぎるのではないでしょうか。
他にもいくつかの理由が考えられますが、
Lost connection to MySQL server during queryで検索するといろいろ出てきます。
データーベースのエンジンいっぱいあるけど、
自分が調べた範囲ではINNODBが一番よさそうなんだけど、
普通はINNOを選択しておけばいいの?
自分が調べた範囲ではINNODBが一番よさそうなんだけど、
普通はINNOを選択しておけばいいの?
>>154
だったら id IN() で1000個並べたら1行で済む。
だったら id IN() で1000個並べたら1行で済む。
オレ、いまだにMyISAMなんだが
時代にとりのこされてるのか?
特に困ったことないけど。
時代にとりのこされてるのか?
特に困ったことないけど。
トランザクションと全文検索が一緒にできるようには
もうならないのかな
結構待ってるんだけど…
もうならないのかな
結構待ってるんだけど…
@ITのDBセミナー(ORACLE)でMySQLはVerがすぐあがる
そのたびにVerUp作業が入るから・・・と否定的な発言があったけど
実際使ってる人どうですか?
乗り換えを考えています
そのたびにVerUp作業が入るから・・・と否定的な発言があったけど
実際使ってる人どうですか?
乗り換えを考えています
テーブルを作り替えなきゃならないのかどうか、GRANT 関連が変わったかどうか、
取り敢えずこの二つは、リリースノートの最初に大書して欲しいものだとは思う。
取り敢えずこの二つは、リリースノートの最初に大書して欲しいものだとは思う。
MySQLのバージョンアップは相当遅い部類だと思うけど。
5.0 2005/10
5.1 2008/11
Oracle
10.1 2004/04
10.2 2005/06
11.1 2007/10
5.0 2005/10
5.1 2008/11
Oracle
10.1 2004/04
10.2 2005/06
11.1 2007/10
マイナーバージョンアップだと思って痛い目に遭う事を言ってるんじゃないの?
5.0.3 と 5.0.5 とで違うとか聞いたが。
5.0.3 と 5.0.5 とで違うとか聞いたが。
誰かSSDをキャッシュとして利用したZFS上でMySQL動かした人いますか?
http://blogs.yahoo.co.jp/chototsu_moushinp/44846634.html
http://blogs.yahoo.co.jp/chototsu_moushinp/44846634.html
SSD,安くなったとは聞いたがそんなことが出来るのか
はてなの全文検索で、DB全部メモリに乗っけるのがこの前話題になってたな
そりゃ早いわ
はてなの全文検索で、DB全部メモリに乗っけるのがこの前話題になってたな
そりゃ早いわ
MySQLの定番ベンチマークって何がいいですか?
DBエンジンによってはファイルシステム次第かもしれませんが。
rawデバイスに乗せるっていうのを誰かやっていたような。
DBエンジンによってはファイルシステム次第かもしれませんが。
rawデバイスに乗せるっていうのを誰かやっていたような。
Mysqlのある要素の最終行の値を取得するクエリがわかりません
select [ある要素] from [table名] where ~;
こんな感じで取得するクエリを教えてください
select [ある要素] from [table名] where ~;
こんな感じで取得するクエリを教えてください
【質問テンプレ】
・MySQL5.0
・欲しい結果:最終行のある要素の値
Mysqlのある要素の最終行の値を取得するクエリがわかりません
select [ある要素] from [table名] where ~;
こんな感じで取得するクエリを教えてください
・MySQL5.0
・欲しい結果:最終行のある要素の値
Mysqlのある要素の最終行の値を取得するクエリがわかりません
select [ある要素] from [table名] where ~;
こんな感じで取得するクエリを教えてください
OracleでもMySQLでも未ソート時の並び順は決まってない。
最後に何がくるかは分からない。
最後に何がくるかは分からない。
すいません
select max([カラム名]) from [table名];
でいいのですね、ご迷惑をおかけしました
select max([カラム名]) from [table名];
でいいのですね、ご迷惑をおかけしました
MySQLってもしかして、サーバーのIPアドレスと、
ユーザーIDと、パスワードがばれると、
全然関係ない人から、勝手にサーバーに
アクセスされて、データーベースを使われてしまったりするの?
ユーザーIDと、パスワードがばれると、
全然関係ない人から、勝手にサーバーに
アクセスされて、データーベースを使われてしまったりするの?
アクセス元(のIPアドレスとかFQDNとか)で制限掛けてあれば、全然関係ない人からはアクセスされない。
その許可されているアクセス元の別のユーザが、ユーザID/パス盗めば、当然アクセスされる。
でも、MySQL に限らないんじゃないの?
その許可されているアクセス元の別のユーザが、ユーザID/パス盗めば、当然アクセスされる。
でも、MySQL に限らないんじゃないの?
下記のエラーについて質問させてください。
Disk is full writing /var/lib/mysql/db/CBSC.MYI
LOGファイルなら削除で即解決だと思うのですが、
MYIファイルなのでどのように対応したらいいか分かりません。
出来ればMYIファイルを削除せずに下記のエラーが出ないようにしたいのですが、
何か良い対応方法はありませんか?
Disk is full writing /var/lib/mysql/db/CBSC.MYI
LOGファイルなら削除で即解決だと思うのですが、
MYIファイルなのでどのように対応したらいいか分かりません。
出来ればMYIファイルを削除せずに下記のエラーが出ないようにしたいのですが、
何か良い対応方法はありませんか?
それインデクスファイルだから、「出来れば削除せずに」どころではなく、そもそもインデクスができてない。
もうディスク増設した方がいいと思う。
どうしても現状のままというなら、まず *.MYI だけ他パーティションに移して、今の場所からは /bin/ln -s 新 旧 と
シンボリックリンク張ってから、myisampack してみるとか。(してる途中で disk full になっても知りませんよ)
もうディスク増設した方がいいと思う。
どうしても現状のままというなら、まず *.MYI だけ他パーティションに移して、今の場所からは /bin/ln -s 新 旧 と
シンボリックリンク張ってから、myisampack してみるとか。(してる途中で disk full になっても知りませんよ)
とりあえずdf -kでディスク状況を確認する事が先決だと思う。
/var/lib/mysqlに別パーティションをマウントしているならともかく、
/varが丸ごと一つのパーティションに乗っかっているとMySQL以外
にも色々問題が出てきますよ。
/var/lib/mysqlに別パーティションをマウントしているならともかく、
/varが丸ごと一つのパーティションに乗っかっているとMySQL以外
にも色々問題が出てきますよ。
HABTMリレーションを編集するときって
トランザクション使って一度全部消してから追加します?
それとも差分を求めて処理します?
auto_incrementのidがどんどんあがっていくのが・・・。
まあ1ユーザに1000回発行し直しても400万ユーザとかにならないと使い切らないんだけど。
トランザクション使って一度全部消してから追加します?
それとも差分を求めて処理します?
auto_incrementのidがどんどんあがっていくのが・・・。
まあ1ユーザに1000回発行し直しても400万ユーザとかにならないと使い切らないんだけど。
>>185
ローカルならXAMPだかMAMPだか使えば
ローカルならXAMPだかMAMPだか使えば
質問です。PHPからMySQLにクエリを送るとき。
型が文字列の変数$hoge を,型が int のカラムに insert したいのだが,
$sql = "INSERT INTO `table` (`column`) VALUES ('$source');"
mysql_query($sql) or die(mysql_error());
としたら,$hoge が""(空文字列)だと 0 が insert されるよね。
空文字列なら NULL が insert されるようにしたいんだが,どうすればよい?
型が文字列の変数$hoge を,型が int のカラムに insert したいのだが,
$sql = "INSERT INTO `table` (`column`) VALUES ('$source');"
mysql_query($sql) or die(mysql_error());
としたら,$hoge が""(空文字列)だと 0 が insert されるよね。
空文字列なら NULL が insert されるようにしたいんだが,どうすればよい?
普通はストアド
それだと分かりにくくなるから直書きしてる
全部mysql_real_escapeされてる前提だろ
と信じたい
それだと分かりにくくなるから直書きしてる
全部mysql_real_escapeされてる前提だろ
と信じたい
>>188
とりあえずNULLにしたいだけなら
if($hoge == 0)$hoge = "NULL";
else $hoge = "'$hoge'";
みたいなの書けば解決
DB側からのアプローチは知らん
とりあえずNULLにしたいだけなら
if($hoge == 0)$hoge = "NULL";
else $hoge = "'$hoge'";
みたいなの書けば解決
DB側からのアプローチは知らん
columnの型がintであるとわかっているのであれば、文字列から整数
への変換はクエリに値を埋め込む前に行っておくべきだと思う。
$sourceの値として空白文字列があり得るような実装がおっかない。
への変換はクエリに値を埋め込む前に行っておくべきだと思う。
$sourceの値として空白文字列があり得るような実装がおっかない。
>>193
ユーザが入力した文字列を直接SQLに埋め込むのはとても危険。
エラーやセキュリティホールの元なので基本的には禁じ手。
なので、$sourceに渡す前に$hogeの内容を適切に処理する必要がある。
色々方法があるけど、今回はcolumnがint型なので、is_numeric関数
で文字列が数値表現かどうか調べて、intval関数でint型の値に変換。
SQLに値を埋め込む時はこの変換したint型の値を、入力された文字列
の代わりに用いる。
これらの処理の合間に入力値が有効範囲か確認してエラーを返したり
入力値が無かったらNULLをINSERTするなどの処理を書けばよい。
さらにprepared statemementを使うと確実。
ユーザが入力した文字列を直接SQLに埋め込むのはとても危険。
エラーやセキュリティホールの元なので基本的には禁じ手。
なので、$sourceに渡す前に$hogeの内容を適切に処理する必要がある。
色々方法があるけど、今回はcolumnがint型なので、is_numeric関数
で文字列が数値表現かどうか調べて、intval関数でint型の値に変換。
SQLに値を埋め込む時はこの変換したint型の値を、入力された文字列
の代わりに用いる。
これらの処理の合間に入力値が有効範囲か確認してエラーを返したり
入力値が無かったらNULLをINSERTするなどの処理を書けばよい。
さらにprepared statemementを使うと確実。
これ以上はスレチだからwikiなんかを当たって欲しいが
http://ja.wikipedia.org/wiki/SQLインジェクション
俺はXSS関連はめんどくさいから
$_POST = array_map("hoge",$_POST);
$_GET = array_map("hoge",$_GET);
とかやってるお
hogeでmysql_real_escapeやらhtmlspecialcharsやら処理
あ、ごめんストアドプロシージャならこのスレが正しい
訂正ついでに
プリペアドステートメントでもストアドプロシージャでも
XSS対策には似たような効果を示す。(ただmysqliを使う必要があるが)
http://php.s3.to/man/pdo.prepared-statements.html
まあここらへんはだんだん慣れてくるとおもうお
訂正ついでに
プリペアドステートメントでもストアドプロシージャでも
XSS対策には似たような効果を示す。(ただmysqliを使う必要があるが)
http://php.s3.to/man/pdo.prepared-statements.html
まあここらへんはだんだん慣れてくるとおもうお
質問です。
phpMyadmin等ツールで一定の時間ごとにオーバーヘッドの解消を行いたいのですが、そのようなことは可能でしょうか?
phpMyadmin等ツールで一定の時間ごとにオーバーヘッドの解消を行いたいのですが、そのようなことは可能でしょうか?
>>198
phpMyAdminで見ると、項目としてあるみたいね。
http://oshiete1.goo.ne.jp/qa1155748.html
>>197
cronとかでoptimize tableしたら?
phpMyAdminで見ると、項目としてあるみたいね。
http://oshiete1.goo.ne.jp/qa1155748.html
>>197
cronとかでoptimize tableしたら?
前へ 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 ○
トップメニューへ / →のくす牧場書庫について