のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,615,353人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレMySQL 総合 Part24

mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
151 : NAME IS - 2013/10/30(水) 23:56:57.27 ID:eIx8z178.net (+24,+29,-26)
主キーが設定されているテーブルに何故か空白のレコードが入るんだが
どうしたらいい?
152 : NAME IS - 2013/10/31(木) 00:08:08.70 ID:???.net (+6,-21,-2)
NULLも1つの値、2行入るならおかしいが
153 : NAME IS - 2013/10/31(木) 00:32:37.83 ID:2hfPmUNF.net (+69,+29,-41)
ロックについて質問。

READロックにすると、ロックを取ったスレッドも書き込めなくなる。
WRITEロックにすると、ロックを取ったスレッド以外は参照もできなくなる。

全スレッドから参照はできて、書き込みはロックを取ったスレッドしかできないようなロックの仕方はありませんか?
154 : NAME IS - 2013/10/31(木) 06:54:39.21 ID:???.net (+57,+29,-5)
ダーティーリードを許したいってこと?
155 : NAME IS - 2013/10/31(木) 12:51:40.94 ID:2hfPmUNF.net (+32,+29,-27)
まあ、そういうことになるのかな
書き込みはロックを取らないとできない、複数スレッドから同時に書き込んでデータがおかしくならないようにしたい
ただし書き込み処理に時間がかかるのでその間も読み込みはストールしないようにしたい、そんな感じです
156 : NAME IS - 2013/10/31(木) 13:03:05.51 ID:???.net (+72,+29,-58)
>>153
古いバージョンのマニュアルだけど、
http://dev.mysql.com/doc/refman/5.1/ja/innodb-transaction-isolation.html
の内容を理解して、MySQLがサポートしているトランザクション分離レベルでは要件を満たせないなら、
アプリ側で独自ロックをやるしかないね。
ただし、そのアプリの外側ではやり放題になるけど。
157 : NAME IS - 2013/10/31(木) 14:05:06.56 ID:rbtVJ87Z.net (-27,+2,-10)
質問させてください

最新の10件を残して残りすべて削除するにはどうしたらよいでしょうか?
よろしくお願いします。
158 : NAME IS - 2013/10/31(木) 14:48:24.87 ID:???.net (+2,-29,-48)
抽出できる物は削除できる。
まずはその最新の10件をSELECTできるように、そして最新の10件以外を
SELECTできるようなればそれをDELETEに渡すだけだ。
って何の最新?
159 : NAME IS - 2013/10/31(木) 15:11:00.76 ID:rbtVJ87Z.net (-19,+29,-24)
>>158
レスありがとうございます。
説明不足ですみません。最新とは登録した時間のことです。

最新のレコードをN件残して古いものを削除 したいのです。よろしくお願いします。
160 : NAME IS - 2013/10/31(木) 15:50:55.08 ID:???.net (-19,-30,-50)
DELETE FROM table WHERE id NOT IN (SELECT id FROM table ORDER BY 登録時間 LIMIT 5)
こんな感じでいいんじゃない?
ユニークなid無かったらそこも登録時間にする手もあるけど。
163 : NAME IS - 2013/11/01(金) 15:24:17.87 ID:???.net (+56,+3,-6)
>>162
> 「時間」という型はない
アスペなの?DATETIME使えばいいだろ。
164 : NAME IS - 2013/11/01(金) 16:08:49.98 ID:???.net (+47,+29,-17)
なんでもかんでもアスペアスペ言えば良いと思ってんじゃねーぞ
165 : NAME IS - 2013/11/01(金) 16:19:24.54 ID:???.net (+57,+29,-7)
時刻型ならあるが時間型はない
・・・とか言いたいんだろうか
166 : NAME IS - 2013/11/01(金) 18:10:47.12 ID:???.net (+0,-27,-28)
long int使えっててどっかに書いてあった
167 : NAME IS - 2013/11/01(金) 19:09:37.49 ID:???.net (+99,+29,-10)
>>163
あなたがエスパー能力の持ち主か
(ファミチキ下さい)
俺が思っている事を当ててみてくれ
168 : NAME IS - 2013/11/01(金) 19:37:21.05 ID:???.net (+71,+29,-3)
>>167
ファミチキ無いならケンタ喰えばいい
169 : NAME IS - 2013/11/03(日) 21:33:26.22 ID:WS2i8ToB.net (+24,+29,-22)
事前面接の事実をおさえて職安法44条で刑事告訴
http://wiki.algomon.com/wiki/%E4%BA%8B%E5%89%8D%E9%9D%A2%E6%8E%A5
170 : NAME IS - 2013/11/04(月) 15:52:39.13 ID:???.net (+13,-29,-129)
MySQLってよりは、RDB全般的なことなのかもしれないけど、
レコードを削除するにあたって、

(1) delete文でレコードを物理削除する
(2) 物理削除はせずにupdateで削除フラグをONにするだけ
  (後からまとめてバッチで物理削除)

のどちらを選ぶのが負荷的やパフォーマンス的にベターですか?
DBの用途はBtoC系Webサービスなんですが。
171 : NAME IS - 2013/11/04(月) 15:54:41.87 ID:???.net (+67,+29,-35)
DBによっては内部で同じことしてるのもあるし、、、
外部キーとか入り組んでてカスケードで消える物が多いとか
そう言う状況でも変わってくるだろう。
172 : NAME IS - 2013/11/04(月) 16:59:19.74 ID:???.net (+57,+29,-32)
個人的な好みで言うとレコードの削除は極力しないかな。
何か問題があった時データが存在していたほうが便利だし。
174 : NAME IS - 2013/11/05(火) 01:26:26.71 ID:???.net (+6,-30,-125)
slaveはmasterのバイナリログを見に行ってるだけだから、特に何もしなくてもいいよ。
slaveを再起動したときも、オプションにskip_slave_start = 1が入ってない限り自動的にレプリケーションが再開される。
slaveはmaster側のDB操作とか記憶されたバイナリログの位置を記憶してるから、masterやslaveが停止したところで記憶したログの位置から処理を初めてくれる。

そういえばskip_slave_start = 1指定するとログのロテートする都度、START SLAVE;実行するハメになるんだけど何かスマートな方法ってあるの?
175 : NAME IS - 2013/11/05(火) 01:57:50.08 ID:???.net (+31,-30,-291)
>>173
基本的には、174 が書いてる通り。
Master と切断されたら master-connect-retry(default:60sec) で設定された間隔ごとに
再接続を行う。現在の値は show slave status の Connect_Retry で確認できる。
error_log にもその際のメッセージが書かれてると思うし、show slave status でも出たはず
ログ:
[ERROR] Slave I/O: error connecting to master 'user@host:3306' - retry-time: 60 retries: 86400, Error_code: 1130

>>174
うちでは、skip_slave_start 設定してないし、
flush binary logs/ flush logs や reset master は使わないのでわからないのだが
skip_slave_start はトラブル時に勝手に再開しないように設定してる?

もしそうならば、ローテートしないようにするぐらいしかないんじゃないかな..
# slow_log/error_log のためにローテートしてるなら、5.5 以降の個別ローテートを検討で
176 : NAME IS - 2013/11/05(火) 07:48:45.21 ID:???.net (+62,+29,-48)
>>175
クラッシュした時とか勝手に再開されてデータの不整合起こらないように、、なんだけど特に運用する上での必須という訳じゃなさそうだしオフにしときます。
あざっす!
178 : NAME IS - 2013/11/05(火) 21:48:06.51 ID:???.net (+46,+18,-23)
レプリケーション本当に開始されてる??
マスター側が再起動しても、少し待てばスレーブも同じPositionになるはずだけど。

エラーログ一度確認してみた方がいいんじゃない。
179 : NAME IS - 2013/11/05(火) 22:09:15.40 ID:KR1DJtGu.net (+0,+29,-12)
はい。マスター側にInsertするとスレーブ側にも反映されているので同期とれてると思います
180 : NAME IS - 2013/11/05(火) 22:13:19.83 ID:KR1DJtGu.net (+0,+29,-14)
すみません。できてました
再同期取るまで多少時間がかかるんですね
マスター再起動、Insertですぐにスレーブに反映されると思ってました
みなさん、ありがとうございました
181 : NAME IS - 2013/11/05(火) 22:18:23.44 ID:???.net (+46,+28,+0)
お、おう。
182 : 170 - 2013/11/06(水) 23:46:46.93 ID:???.net (+53,-19,-7)
>>171-172
ありがとうございます。
参考になった。
とりあえず論理削除(削除フラグON)でいくことにします。
183 : NAME IS - 2013/11/07(木) 00:34:47.05 ID:???.net (-1,-29,-19)
MariaDBをライセンス以外の理由で使ってる人いる?
184 : NAME IS - 2013/11/07(木) 20:19:39.25 ID:???.net (+50,+27,-2)
宗教上の理由で使ってます。
185 : NAME IS - 2013/11/08(金) 00:15:06.12 ID:???.net (+57,+29,-16)
10年前亡くなったばあちゃんの遺言。
186 : NAME IS - 2013/11/08(金) 07:08:12.01 ID:???.net (+47,+29,-2)
家庭の事情
187 : NAME IS - 2013/11/08(金) 08:06:27.41 ID:???.net (-2,-27,-2)
>>182
削除日付推奨
188 : NAME IS - 2013/11/08(金) 08:30:18.49 ID:???.net (+65,+29,-3)
>>182
パーティショニングはしとくことお勧め
189 : NAME IS - 2013/11/10(日) 02:54:45.51 ID:???.net (+3,-30,-80)
mysqlコマンドにつけるオプションと同じことを、
sqlスクリプトの中で指定することはできますか。
たとえば mysql --slient や mysql --comments と
同じような動作にさせたいとき、sqlスクリプトの
中で何かオプションを設定すれば、--silent や
--comments と同じ動作になる、みたいなことは
できますか。
setコマンドでできるなら、variable名を教えてください。
よろしくお願いします。
191 : NAME IS - 2013/11/11(月) 01:24:22.90 ID:???.net (+60,+27,-36)
健全なライセンスで、MySQLの作成者とgoogle社員がコミットしているMairaDBかな。

Perconaは使ってるの聞いたことが無い。性能いいみたいだけど、使ってる事例とかあんま聞かないから仕事じゃ使えないな・・・。
個人で遊ぶには面白そうだけど。
192 : NAME IS - 2013/11/13(水) 07:16:20.80 ID:???.net (+3,-30,-136)
MySQLではなくUNIX系の話になると思うのだけど助けてください
mysqldumpをパイプ付きで実行した時にエラー戻り値を正しく取りたいです

mysqldump -uhoge > backup.dmp でエラー発生
echo $?  2が表示

mysqldump -uhoge | gzip -c > backup.dmp でエラー発生
echo $?  0が表示

mysqldump -uhoge > gzip -c > backup.dmpだとエラー戻り値も
取れるしバックアップも取れているみたいなんですけど
これで大丈夫ですか?
|と>の違いがよく判ってないです
193 : NAME IS - 2013/11/13(水) 08:01:09.96 ID:???.net (+42,+19,-26)
shell も書かずに質問とな
194 : NAME IS - 2013/11/13(水) 08:12:47.97 ID:???.net (+4,-30,-25)
> mysqldump -uhoge > gzip -c > backup.dmp
こんな書き方出来る shell でもあるのかと思った。
195 : NAME IS - 2013/11/13(水) 09:35:30.97 ID:???.net (+70,-30,-64)
以前にデータベースを作成した人が倍数+1の長さでフィールドを作成しています。
sample_id int(1025) UNSIGNED
scaler_id int(513) UNSIGNED
特に問題はないのですが+1をすることに何かデータベースを使用する上で良いことがあったりするんでしょうか?
196 : NAME IS - 2013/11/13(水) 10:15:09.16 ID:???.net (+9,-13,-3)
1000桁のID・・・だと・・・?
197 : NAME IS - 2013/11/13(水) 10:16:23.62 ID:???.net (+3,-30,-62)
>>194
びっくりしてやってみた(bash)

backup.dbというファイルに未圧縮でダンプされる
gzipというファイル名の空ファイルが出来る
"-c"はmysqldumpへのオプションとして渡る (--complete-insertのalias)

そりゃそうだね
198 : NAME IS - 2013/11/13(水) 10:35:41.48 ID:???.net (-1,-29,-41)
backup.db >> backup.dmpの間違い
元質問 >> bashならPIPESTATUSを調べれ。他は知らん
199 : NAME IS - 2013/11/14(木) 06:12:16.01 ID:???.net (+9,-18,-27)
namedパイプつかってばらして書いてもいいよ
200 : NAME IS - 2013/11/14(木) 18:09:51.43 ID:???.net (+0,+29,-43)
>>195
場合により符号分とかでキリがよくなるが(MySQLの話でもなくなるが)
そもそもその指定はおかしい。

いや、もしかしてそういう指定とかあるの?って不安になった。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について