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

    私的良スレ書庫

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

    元スレMySQL 総合 Part23

    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
    751 : NAME IS - 2013/06/07(金) 17:02:24.54 ID:??? (-21,-30,-195)
    CentOS上で動くMySQLに読み書きするC言語のプログラムを書きたいです。
    サンプルソースコードなどがあるプログラミングの参考となるサイトはないでしょうか。
    または書籍など。
    MySQL C API、Connector/C、Connector/ODBC当たりを使うのかなと思うのですが、
    探し方が悪いのかそれらの導入から使い方までが分かりやすく書いてあるサイトが見つかりません。
    ご存知の方がいましたら教えていただけると助かります。

    ODBCに関しては、例えばDBをMySQLからPostgreSQL等に変更した場合もソースコードの変更は
    ほとんどしないで切り替えられるのかと思いました。
    752 : NAME IS - 2013/06/07(金) 22:08:53.11 ID:??? (+25,+29,-5)
    >>751
    どれを使うのがよいかを別として、これじゃわかんなかったってことかな
    http://dev.mysql.com/doc/refman/5.1/ja/c.html
    753 : NAME IS - 2013/06/09(日) 15:09:45.38 ID:??? (-7,-30,-163)
    質問です
    REPLACE INTO mytable(id, name, a, b) VALUES('id1', 'ほげ',52,10),('id2','おはよう',14,2)
    で挿入または更新はできたのですが、例えば
    バルク更新でカラム(id, name, a, b)の4つを指定したとき、
    4つ全部更新したいものや、2つだけ更新したいものを一度に扱いたい場合があると思うます。
    そのときのVALUESはどう指定すればいいのでしょうか?
    VALUES('id1',,,10) ←空で指定する エラー
    VALUES('id1',NULL,NULL,10) ←NULLまたはデフォルト値入ってしまう
    VALUES('id1',name,a,10) ←デフォルト値が入ってしまう
    といった感じでうまくいきません。
    でもなぜか、
    VALUES('id1',id,52,10)
    という風に自分自身(name)とは別のカラム名を指定すると
    id1 という値がnameのところに入りました。
    自分自身の値を取得できるような方法などありましたら教えてくださいm(_ _)m
    755 : 753 - 2013/06/10(月) 06:32:01.03 ID:??? (-22,-30,-89)
    あれからいろいろとやっていて、そもそも自分のやりたいことは
    REPLACE INTOじゃなくINSERT INTO   ON DUPLICATE KEY UPDATE
    だったことに気付きましたすみません。
    で、ON DUPLICATE KEY UPDATE以降を
    name = IF(VALUES(name)='',name,VALUES(name)), a = IF(VALUES(a)='',a,VALUES(a))
    みたいに書いたところ(たぶん)思い通りの感じになりました
    もっと効率良い方法がありましたらお願いします
    756 : NAME IS - 2013/06/10(月) 12:41:26.59 ID:??? (+18,+28,-2)
    >>755
    それは効率いい方法無い
    757 : お質問 - 2013/06/11(火) 12:51:12.84 ID:??? (+32,+29,-56)
    会社の案件管理にデータベース使いたいとおもてます
    mySQLとPHPもしくはperlCGIで構築したいです。
    けどぜろから作るより既存のフリーテンプレが何かあるんじゃないかと。
    定番のなにかオススメありませんけ
    758 : お質問 - 2013/06/11(火) 12:55:17.37 ID:??? (+25,+29,-68)
    やりたいことは
    ・折衝案件登録
    ・受注済か折衝中か
    ・作業の進捗
    ・担当者ひもづけ
    ・受注額と外注費、粗利
    これらを月ごとに〆て会議資料にしたい
    759 : NAME IS - 2013/06/11(火) 13:59:11.50 ID:??? (-28,-29,-1)
    >>758
    最後の一個以外はRedmineとかでいけるが。
    760 : NAME IS - 2013/06/11(火) 15:38:14.71 ID:??? (+48,+29,-96)
    RDBの勉強を始めたところなのですが、トランザクションのロック単位が分かりません。
    トランザクションの中で異なる複数のテーブルを順番に読み書きしている場合、
    START TRANSACTIONを実行した瞬間から、これらの複数テーブルあるいは対象レコードに
    一斉にロックがかかるのでしょうか。
    そうならないと矛盾が起きると思うのですが。
    761 : NAME IS - 2013/06/11(火) 16:09:45.43 ID:??? (+33,+29,-23)
    >>760
    「読み取り一貫性」「トランザクションレベル」とかでググれ
    763 : NAME IS - 2013/06/11(火) 20:59:46.52 ID:??? (+33,+29,-18)
    >>760
    お前みたいな素人の考える範囲で収まってると思うか?
    その道のプロがいるんだから大体進んでいるのだよ、世の中は。
    764 : NAME IS - 2013/06/11(火) 23:09:51.56 ID:??? (+27,+29,-22)
    トランザクションは難しいよねぇ。
    ISAMをイサムと読んでる俺には無理だったよwww
    765 : NAME IS - 2013/06/11(火) 23:25:06.05 ID:??? (+42,+29,-58)
    >>760
    START TRANSACTION を送信した瞬間にDBMSが
    「お、このアプリはテーブルAとテーブルBを使いそうな予感がしたのでロックしておこう」
    という処理をするのは矛盾以前に不可能と存じます。
    766 : NAME IS - 2013/06/12(水) 11:53:04.17 ID:??? (+17,+18,-1)
    >>765
    全テーブルロックしろよ
    767 : NAME IS - 2013/06/12(水) 12:56:08.35 ID:??? (+27,+29,-29)
    いやあ^^;
    俺もさっき、ド下手なコード書いたらロックが掛かって困ったw
    頑張って競合しないようにコード修正しよ。
    769 : NAME = ' - 2013/06/13(木) 08:03:32.46 ID:??? (+27,+29,-11)
    やっとロックを回避するコードにでけたw疲れたぁ~
    771 : NAME IS - 2013/06/13(木) 13:59:01.33 ID:??? (-29,-30,-248)
    MySQL 5.6のデータを5.0に移植しようとして
    こんなdumpコマンド打って
    #mysqldump -u root -p -x --all-databases > dump.sql
    んで5.0に対して移植するとき下のコマンド打ったら
    # mysql -u root < dump.sql
    STATS_PERSISTENT=0って構文がおかしいよ、ってエラーがでたので
    これを下みたいに全部削除したら上手く読みこめたんだが
    元:ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Relay Log Information'
    改:ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Relay Log Information'
    このSTATS_PERSISTENT=0って結局なんのか?
    774 : NAME IS - 2013/06/14(金) 23:22:43.47 ID:7XeoKqBC (+39,+29,-153)
    相談があります。

    ゲーム情報サイトを作っていまして
    ページの右上に、次のように登録情報数を表示させたいです。

     登録ゲーム数(国内):XXXXX本
     登録ゲーム数(海外):XXXXX本

    このとき、データ件数を高速で取得するため
    トリガを使う方法を考えました。
    参考:ttp://developer.cybozu.co.jp/archives/kazuho/2009/06/mysql-innodb-se.html

    ですが、これだと「国内」と「国外」でテーブルを分けないといけません。
    英語版サイトも作る予定ですので、
    日本のゲームと世界各国のゲーム情報は等価で扱いたい、
    つまり同じテーブルで管理したいです。

    データ総数は10万件ほどになる見込みで、
    トリガを使わないインデックス全スキャンも避けたいのですが、

    上記の件数表示を高速で行う何か良い方法はありませんでしょうか?
    775 : NAME IS - 2013/06/14(金) 23:28:59.01 ID:??? (+20,+27,-1)
    DBに持たせない
    776 : NAME IS - 2013/06/14(金) 23:42:34.59 ID:??? (+27,+29,-6)
    10万件なら全スキャンしても大して時間かからんろ
    778 : NAME IS - 2013/06/15(土) 01:11:51.90 ID:??? (+37,+29,-24)
    毎回スキャンっていうのがどうもな
    INSERTした時にどっかに数保存しとけばいいやん
    779 : 778 - 2013/06/15(土) 01:20:25.79 ID:o0n+i+Qz (+15,+29,-136)
    そうですね。
    削除や発売国を更新した時も数を更新して。

    ただ荒らし対策で(Wikiのように誰でもデータを更新できる)
    特定ユーザーが登録したデータの一括削除機能もあるのです。
    ちゃんと何件削除したかを制御して数を更新しないと・・・
    バグの素ですね・・・。

    そして2行目に書いた「削除や発売国を更新した時も数を更新して」についても
    複数ユーザーがほぼ同時に同じゲームデータの発売国を更新したときとかに
    きちんと制御しきれるか・・・頭が痛い・・・。
    780 : NAME IS - 2013/06/15(土) 01:28:22.19 ID:??? (+31,+29,-7)
    >>779
    微妙な処理をするときは、あらためて件数を数えたらどうだろう。
    781 : NAME IS - 2013/06/15(土) 01:39:40.86 ID:??? (-12,-20,-8)
    +1するとか-1するとかじゃなくてinsertとかしたときに数えなおせばいいじゃん
    10万件なんてそんな負荷掛からんのだから
    782 : 781 - 2013/06/15(土) 01:49:23.70 ID:o0n+i+Qz (+9,+29,-63)
    正確な数字を取ろうとすると
    テーブルの全レコードをロックして数えることになるので
    正確な数字は諦めるか・・・。

    正確な数字は諦めて>>780さん案になりそうです。
    トリガ案も大量INSERTとDELETの負荷が恐いし。

    皆さんありがとうございました。
    783 : NAME IS - 2013/06/15(土) 02:03:54.99 ID:??? (+27,+29,-19)
    なんでお前は名前欄に他人の番号入れるんだよ?
    784 : NAME IS - 2013/06/15(土) 11:11:14.73 ID:??? (+30,+29,-9)
    >>779
    だからDBにもたせなきゃいいってのに。常に厳密な数字が必要とは思えんし
    785 : NAME IS - 2013/06/15(土) 11:12:14.22 ID:??? (+27,+29,-5)
    あ、リロードできてなかった。
    いい方向に倒れてよかったよかった。
    786 : NAME IS - 2013/06/15(土) 11:12:49.39 ID:??? (+17,+29,+0)
    寝ぼけてんのか
    787 : NAME IS - 2013/06/15(土) 23:09:16.37 ID:??? (+27,+29,-36)
    どのくらいのアクセス数を見込んでるのかわからんが、
    この程度の話を聞いてるような奴が作ってるページは毎回count(*)やっても
    DBに負荷かからないから安心していいよw
    789 : NAME IS - 2013/06/16(日) 22:13:29.23 ID:??? (-25,-26,-9)
    MySQLでチェックポイントファイルを作るにはどうすればいいんでしょうか?
    教えてください。
    790 : NAME IS - 2013/06/17(月) 17:22:37.49 ID:??? (+9,+14,-16)
    >>789
    チェックポイントファイルは作れません。
    普通に全バックアップしてください。
    791 : NAME IS - 2013/06/19(水) 17:06:03.66 ID:??? (-26,-29,-21)
    mysqlって複数のテーブルで共有して使えるauto_incrementとかないの?
    792 : NAME IS - 2013/06/19(水) 17:44:07.27 ID:??? (+22,+29,-6)
    >>791
    ほかのDBにはあるの? 便利そうだなそれ
    793 : NAME IS - 2013/06/19(水) 18:25:27.14 ID:??? (-24,-27,-66)
    MySQLにそんなものがあったら
    一つのテーブルを操作するときに全部のテーブルとの操作を制御しなきゃならなくなり
    構造上作れないと思え



    ・・・・・・と思ったが『数える用』のテーブルでも作って→そこにINSERTして→帰ってきたauto_incrementの数値を取得
    すりゃ解決するな
    794 : NAME IS - 2013/06/19(水) 19:39:12.57 ID:??? (-18,-29,-77)
    >>792
    postgresqlはシーケンスオブジェクトっていう、selectするたびに数字が増えるものが別途存在するので
    複数のテーブルから利用することもできる
    auto incrementに相当する serial は デフォルト値にシーケンスオブジェクトが設定されたintカラム
    795 : NAME IS - 2013/06/19(水) 23:25:55.03 ID:??? (+25,+29,-11)
    >>794
    ほほー
    そろそろMySQL卒業しよっかな
    オラクルだからいつかは卒業しなきゃと思ってたんだけど
    796 : NAME IS - 2013/06/19(水) 23:29:01.65 ID:??? (-20,-13,+0)
    mariaはどうなのよ
    799 : NAME IS - 2013/06/20(木) 12:51:42.02 ID:??? (+27,+29,-5)
    ポスグレに移籍することはあってもマリアちゃんだけは無いわ
    800 : NAME IS - 2013/06/20(木) 12:52:26.46 ID:??? (+33,+29,-5)
    そんなこと言ってもこれから先はマリアが主流になってくるよ
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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