私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part17
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
おいどんはパーで張り手でごわす。
>処理結果が不定になるので
え、update結果がバイナリログで
伝わるんじゃないの?
クエリだけが伝わって、実行内容は
不定なの?
>処理結果が不定になるので
え、update結果がバイナリログで
伝わるんじゃないの?
クエリだけが伝わって、実行内容は
不定なの?
>>453
5.1以降に実装された行ベースbinlogを使っていない限りは
マスタで実行したSQLが記録されている
スレーブはそれを再実行している
http://dev.mysql.com/doc/refman/5.1/ja/replication-formats.html
5.1以降に実装された行ベースbinlogを使っていない限りは
マスタで実行したSQLが記録されている
スレーブはそれを再実行している
http://dev.mysql.com/doc/refman/5.1/ja/replication-formats.html
>>453
binlog-format が statment(ステートメントベース)なら query が、
row(レコードベース)なら結果が入ると思う。
mixed の場合どのように判断されるかは試していない。
ステートメントベースの場合は error_log に次のような warningが出る。
Statement may not be safe to log in statement format. Statement: query...
ちなみに、
* ver 5.1.12~5.1.28 までは default mixed
* それ以外は、default statement
5.1.29 で 5.0系との互換性のために戻されてます。
row(レコードベース)は 5.1.5以降で実装。
row は安全だが、binlog にすべて書かれるのでレプリケーションの遅れや
マスター側の書き込み量の増大などが考えられるのでオススメしない。
binlog-format が statment(ステートメントベース)なら query が、
row(レコードベース)なら結果が入ると思う。
mixed の場合どのように判断されるかは試していない。
ステートメントベースの場合は error_log に次のような warningが出る。
Statement may not be safe to log in statement format. Statement: query...
ちなみに、
* ver 5.1.12~5.1.28 までは default mixed
* それ以外は、default statement
5.1.29 で 5.0系との互換性のために戻されてます。
row(レコードベース)は 5.1.5以降で実装。
row は安全だが、binlog にすべて書かれるのでレプリケーションの遅れや
マスター側の書き込み量の増大などが考えられるのでオススメしない。
binary型がいまいちよくわかりません
binaryというだけあって画像なんかのデータを入れるのに使うのかなとは思ったのですが
こちらはblobを使うようなので
char型のを全てbinary型にしても問題はないですよね?
両者にどんなメリットデメリットがあるのでしょうか?
binaryというだけあって画像なんかのデータを入れるのに使うのかなとは思ったのですが
こちらはblobを使うようなので
char型のを全てbinary型にしても問題はないですよね?
両者にどんなメリットデメリットがあるのでしょうか?
>>457
ちょっと違うかもしれないけど、自分はperlのutf8フラグ あり/なし
みたいなものと捉えてる。
例えばchar(10)としたカラムがあった場合、
UTF8では30バイト、binaryでは10バイトの領域を占有する。
で、UTF8の場合はUTF8文字で10文字分格納出来るわけだけど、
binaryの場合は10バイト(UTF8文字で3文字)までしか格納できない、
とかの違いがある。あと、照合順予やエスケープ、ソートの結果とかが異なる。
メリットとは言えないかもだけど、ウチの場合、かつて4.0系から5.0系にupした時に、
一時的に文字コード絡みの各種不具合(ってか仕様)を回避するために使ったことはある。
charset=binaryにしておけば、server/clientの文字セット指定に関らず無変換なので・・。
あと、あんまり用途はなさそうだけど、同じテーブルの同じカラムに異なる文字コードの
テキストを入れたい時になんかにも利用できる。
ちょっと違うかもしれないけど、自分はperlのutf8フラグ あり/なし
みたいなものと捉えてる。
例えばchar(10)としたカラムがあった場合、
UTF8では30バイト、binaryでは10バイトの領域を占有する。
で、UTF8の場合はUTF8文字で10文字分格納出来るわけだけど、
binaryの場合は10バイト(UTF8文字で3文字)までしか格納できない、
とかの違いがある。あと、照合順予やエスケープ、ソートの結果とかが異なる。
メリットとは言えないかもだけど、ウチの場合、かつて4.0系から5.0系にupした時に、
一時的に文字コード絡みの各種不具合(ってか仕様)を回避するために使ったことはある。
charset=binaryにしておけば、server/clientの文字セット指定に関らず無変換なので・・。
あと、あんまり用途はなさそうだけど、同じテーブルの同じカラムに異なる文字コードの
テキストを入れたい時になんかにも利用できる。
>>458
詳しい解説ありがとうございます
utfの例はわかりやすかったです
その例だとcharのほうが文字コード考えないでプログラムできるのでよさそうですね
照合順序、エスケープ、ソートこちらもこれから調べてみます。
基本的にあまり多用するようなものではないんですかね?
webプログラムなんかのコードを見るとあまり使ってる例はみないので
1度だけbinaryとvarbinaryを多用してるテーブル定義を見たことがありましたが
結局は設計者次第なんですかね
詳しい解説ありがとうございます
utfの例はわかりやすかったです
その例だとcharのほうが文字コード考えないでプログラムできるのでよさそうですね
照合順序、エスケープ、ソートこちらもこれから調べてみます。
基本的にあまり多用するようなものではないんですかね?
webプログラムなんかのコードを見るとあまり使ってる例はみないので
1度だけbinaryとvarbinaryを多用してるテーブル定義を見たことがありましたが
結局は設計者次第なんですかね
>>463
インサート文を書いて、mysqlに送信するといいよ。
インサート文を書いて、mysqlに送信するといいよ。
でもデータベース難しそうですね('A`;)・・・
私のやろうとしてること程度でしたらデータベースなんて使わずに
ローカルにファイル名と説明文をセットにしたテキストファイルを
用意してそれをPHPとかから読むようにしたほうがいいかもしれませんね・・・
私のやろうとしてること程度でしたらデータベースなんて使わずに
ローカルにファイル名と説明文をセットにしたテキストファイルを
用意してそれをPHPとかから読むようにしたほうがいいかもしれませんね・・・
PHPでMySQLからデータを読み込むアプリを作れるのであれば、
先にファイル名と説明文を登録・更新するアプリを作ってから、
表示用のアプリを作る方が、イメージをつかみやすいと思う
先にファイル名と説明文を登録・更新するアプリを作ってから、
表示用のアプリを作る方が、イメージをつかみやすいと思う
そゆうこと。
アップロードとかサンプル見ながらやれば割と簡単にできる。
少なくとも、直接SQLを発行して管理をするくらいなら、
自分で言っていたようにDBよりテキストファイルを使う方が賢い
アップロードとかサンプル見ながらやれば割と簡単にできる。
少なくとも、直接SQLを発行して管理をするくらいなら、
自分で言っていたようにDBよりテキストファイルを使う方が賢い
>>475
了解しました(・∀・)
> 自分で言っていたようにDBよりテキストファイルを使う方が賢い
やっぱりそうですよね('A` )・・・
更新したときもデータベースに修正しなおす必要もありませんし・・・
了解しました(・∀・)
> 自分で言っていたようにDBよりテキストファイルを使う方が賢い
やっぱりそうですよね('A` )・・・
更新したときもデータベースに修正しなおす必要もありませんし・・・
>>461-462
ありがとうございました。アドバイスのやり方に変更します。
ありがとうございました。アドバイスのやり方に変更します。
indexについて質問なんですけど、
insertやdeleteをするとindexの再構成が発生するのは当たり前として、
indexに絡まないカラムのupdateをした場合には
indexの再構成は発生しないで済みますか?
insertやdeleteをするとindexの再構成が発生するのは当たり前として、
indexに絡まないカラムのupdateをした場合には
indexの再構成は発生しないで済みますか?
>>478
はい。
はい。
>>479
ですよね、ありがとうございます。
ですよね、ありがとうございます。
一度作った行って削除しないのが普通ですか?
AUTO_INCREMENTでIDを挿入している場合
削除したらそこの部分だけポッカリ空いてしまいますよね?
現在の最終IDが100だとしてID2の行を消した後に
次に作成される行のIDが2になれば埋まりますが101になるので
IDを表示した場合歯抜けみたいでマヌケになってしまいます
削除フラグなんかをつけて表面上は削除したように見せかけてデータだけ残すなんて手もありますが
不必要な情報や個人情報なんかをユーザーが削除後も残しておくのはどうかと思うのですが
皆さんはAUTO_INCREMENTでID振ってる場合どうしますか?
削除してIDが抜けても気になりませんか?
AUTO_INCREMENTでIDを挿入している場合
削除したらそこの部分だけポッカリ空いてしまいますよね?
現在の最終IDが100だとしてID2の行を消した後に
次に作成される行のIDが2になれば埋まりますが101になるので
IDを表示した場合歯抜けみたいでマヌケになってしまいます
削除フラグなんかをつけて表面上は削除したように見せかけてデータだけ残すなんて手もありますが
不必要な情報や個人情報なんかをユーザーが削除後も残しておくのはどうかと思うのですが
皆さんはAUTO_INCREMENTでID振ってる場合どうしますか?
削除してIDが抜けても気になりませんか?
>>481
IDが抜けてなにを気にすることがあるの?
別に1ずつ増加じゃなくて、重複しないようにランダムで振られたっていいというのに。
IDというのは単に「その行を識別するための何か」であって
必ずしも数値である必要は本来無いもの。
ただ単に、扱いやすいから数値を使っていて、
ただ単に、扱いやすいから1ずつ増加にしているだけだよ。
もし「登録順にソートしたい」なんてシステム用件があるのなら
それはそれで「登録日」とか「登録順」といった別カラムを用意すべきだし。
IDが抜けてなにを気にすることがあるの?
別に1ずつ増加じゃなくて、重複しないようにランダムで振られたっていいというのに。
IDというのは単に「その行を識別するための何か」であって
必ずしも数値である必要は本来無いもの。
ただ単に、扱いやすいから数値を使っていて、
ただ単に、扱いやすいから1ずつ増加にしているだけだよ。
もし「登録順にソートしたい」なんてシステム用件があるのなら
それはそれで「登録日」とか「登録順」といった別カラムを用意すべきだし。
IDの使い回しなんかすると、いらんバグを作り込むだけだから
やめていおいた方が良いよ。
他人のデータが表示されたりとか。
やめていおいた方が良いよ。
他人のデータが表示されたりとか。
>>481
>一度作った行って削除しないのが普通ですか?
ふつ~かどうかは知らんが、まあDELETEはインデックスの再編成を伴うから
比較的重い処理ではある。
ポスグレやInterbaseならDELETEでもUPDATEでも、この点同じだから気にしてもしょうがないけど。
>一度作った行って削除しないのが普通ですか?
ふつ~かどうかは知らんが、まあDELETEはインデックスの再編成を伴うから
比較的重い処理ではある。
ポスグレやInterbaseならDELETEでもUPDATEでも、この点同じだから気にしてもしょうがないけど。
並んだ数字に抜けがあると気持ち悪いのは良く判る
んが、残すかどうかとは関係無いのう
んが、残すかどうかとは関係無いのう
初心者が大抵通る道だなw
後で考えるとなんてバカなことを気にしてたんだろうと思うけど
後で考えるとなんてバカなことを気にしてたんだろうと思うけど
LIKEの範囲をid(主キー)が1,5,7の場合という風に限定したいのですが、
どのように書けばいいでしょうか?
select * from db where foo LIKE'%test%' ... id =????
どのように書けばいいでしょうか?
select * from db where foo LIKE'%test%' ... id =????
質問がわからんけど
select * from db where foo LIKE '%test%' and id in (1,3,5)
とか、そいうことをやりたいんだろうか?
まさかそんなことを聞いてるわけじゃないか。
select * from db where foo LIKE '%test%' and id in (1,3,5)
とか、そいうことをやりたいんだろうか?
まさかそんなことを聞いてるわけじゃないか。
さくらインターネットを使っているのですが、
↓たまにこんなエラーが出て、一度出ると1時間以上なにも出来なくなります。
何か解決方法とかはありますか?
I cannot connect to the database because: User ********* already has more than 'max_user_connections' active connections
↓たまにこんなエラーが出て、一度出ると1時間以上なにも出来なくなります。
何か解決方法とかはありますか?
I cannot connect to the database because: User ********* already has more than 'max_user_connections' active connections
>>499
やっぱそうでよね。今つかってるプレミアで他のユーザ数を調べたらそれでも60とかいましたし。
やっぱそうでよね。今つかってるプレミアで他のユーザ数を調べたらそれでも60とかいましたし。
前へ 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 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- 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 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について