1 :
NAME IS NULL :
2012/07/26(木) 18:16:38.53 ID:CVnIDpJq
2 :
NAME IS NULL :2012/07/30(月) 09:46:09.72 ID:UhTDChWc
遅かったやん( ´ー`)y-~~ まだまだ教育したるからな?そこ覚悟はしときや( ゚Д゚)y─┛~~
( ´Д`)y━・~~
ゴキ光線の棲家はここでつか? ( ´Д`)y━・~~
みんな痘疾のおっちゃんかわいがってやらんとあかんでー、( ´Д`)y━・~~
>>5 なんやわれ( ´Д`)y━・~~
ゴキ光線のいちびりは見るに堪えないのぉ(爆笑)
>>6 痘疾のおっちゃん、相手されてへんのー( ´Д`)y━・~~
>>7 ゴキ光線のお気に入りのこのスレももう終わりやのぉ〜(爆笑)
ゴキブリ高専はその程度なんやで?
( ´Д`)y━・~~
>>8 なんで統失になったん?( ´Д`)y━・~~
>>9 なんや?われ( ´Д`)y━・~~
ワシがいつ糖質になったん?ゴキブリ高専はホンマ妄想が好きやな(爆笑)
>>11 あ?アホちゃうか?( ´Д`)y━・~~
>>12 馬鹿がなにほざいとる( ´Д`)y━・~~
>>13 お前がアホやろ?ゴキブリ高専( ´Д`)y━・~~
>>15 いいこやからゴキブリは巣にお帰りなさい( ´ー`)y-~~
こら生暖かく見守るしかないのぉ( ´ー`)y-~~
>>17 ゴキブリはワシのこと粘着してるん?
Do cockroach adhere to me? ( ´ー`)y-~~
To whom as concerned. Be attention with COCKROACHes, which graduate from the LOW-SKILL school that we generally regard as like a shit ( ´ー`)y-~~ Regardless of our low assessment, they stupidly believe themselves that they are expert in IT technology, futhermore they can do everything as they want. Can you believe their way of thinking? ( ゚Д゚)y─┛~~
>>18 糖質のおっちゃん、それがどないしたん、厨房か( ´Д`)y━・~~
>>19 Sorry, reject( ´Д`)y━・~~
>>20 厨房wwwwwwお前はゴキブリやろ?
ワシはいつまでも若い心を持ってるんやで( ゚Д゚)y─┛~~
せやないと研究なんかできひんわ( ´ー`)y-~~
それにしてもSI時代もっとゴキ高専のクビ切れるほどの権力
あればよかったんやけどなぁ〜(核爆)
>>22 きいてるきいてる、糖質のおっちゃん
_、_
( ,_ノ` )y━・~~~
>>23 効いてるって?( ´Д`)y━・~~
大丈夫か?頭( ´Д`)y━・~~
相も変わらず沸いとるのぉ〜( ´Д`)y━・~~
ゴキブリ高専はなんでそんな僻みっぽい性格なん?この前、高専から大学に編入してきて、いきなり辞めよったゴキガキおったやん?
何故かワシんとこ来て文句言いよったわ( ´Д`)y━・~~ ここの学生じゃない奴は出て行けと言ってやったわ(爆笑)
>>24 赤腹ゲット、糖質のおっちゃん
_、_
( ,_ノ` )y━・~~~
>>25 どこが赤腹なん?辞めた生徒はもう部外者やろ?しかも危険やからそう言ったまでやで?
>>26 妄想赤腹のおっちゃん
_、_
( ,_ノ` )y━・~~~
>>27 なんや?われ( ´Д`)y━・~~
ホンマ、カスやな(爆笑)
>>28 なんやけっかうっとんのか、馬鹿
_、_
( ,_ノ` )y━・~~~
>>29 ワシと同じ土俵に立って勝とうなんざ100年度早いで(爆笑)
低脳ゴキブリ高専卒は身の丈がわからんゴミばっかやな( ´Д`)y━・~~
下請けは下請けらしく指示待ちしときや〜( ´Д`)y━・~~
>>31 ぐうの音も出ないやろ( ´Д`)y━・~~
それがワシとお前ら低脳ゴキブリ高専卒との差やな( ´Д`)y━・~~
eruditeなフリはもうたくさんやからな?町のパソコン大先生様がよぉ( ´Д`)y━・~~
>>33 ( ´Д`)y━・~~。。◯ このにーやん病気なんやなぁ)
>>34 paranoiaにいわれてもなー
_、_
( ,_ノ` )y━・~
>>35 ゴキ高専卒はあかんな〜( ´ー`)y-~~
>>36 Hey a paranoia guy.
_、_
( ,_ノ` )y━・~
>>37 ゴキブリ高専卒は粘着質やな( ´Д`)y━・~~
>>39 なんや、ゴキブリ( ´Д`)y━・~~
あのアホのにーやんかいな、思い出したわ(爆笑)
>>40 そろそろ新しいねたを投入しなきゃ、偏執のおっちゃん
_、_
( ,_ノ` )y━・~
>>41 何ゆーとりますの?( ´Д`)y━・~~
ゴキブリ高専卒のにーやんは混沌とした掲示板がお好みなのかな?(爆笑)
ワシは荒らしちゃうからな?ゴキブリにわかるか?( ´Д`)y━・~~
ワシは不当な扱いをしてきたゴキブリに謝罪を要求しとるだけやし(爆笑)
>>42 キムチのおっちゃん、どうりで気持ち悪いわけだ
_、_
( ,_ノ` )y━・~
>>43 謝罪という言葉を聞いただけで、即キムチ認定かいな(爆笑)
さすがゴキブリや、虫けらのような単純なリアクションやな( ´ー`)y-~~
ま、お前をいじり倒しておもちゃにしたるわ(核爆)
アカデミックな人間にかまってもらえるんやからニーヤンも感謝せなあかんで?
んん〜?( ´ー`)y-~~
>>44 ほるほる?おっちゃん
_、_
( ,_ノ` )y━・~
>>46 半白おっちゃん
_、_
( ,_ノ` )y━・~
>>47 ゴキブリ高専卒のにーやんはちゃんと仕事してるん?
まさか俺みたいな高学歴SIerに干されたんか?(核爆)
>>48 高卒SIer(核爆笑)
_、_
( ,_ノ` )y━・~
>>50 統合失調症のおっちゃんにほめられた( ´ー`)y―┛~~
>>52 ところで地底引率なのになんで馬鹿なの( ´ー`)y―┛~~
>>52 学歴がしたのやつに馬鹿にされ発病( ´ー`)y―┛~~
>>53-54 ワシがバカってかぁ??( ´Д`)y━・~~
ゴキブリがよーゆーわ(爆笑)
わしからも質問、なんでゴキブリはんは自分がすっばらしー技術者と勘違いしてるん?( ´Д`)y━・~~
>>55 痘質のおっちゃんをいじめたやつはこのすれにいるの?( ´ー`)y―┛~~
>>56 あ?なにゆーとりますの?( ´Д`)y━・~~
「を」ちゃうやろ、「が」やろ?
>>57 被害妄想で偏執か(核爆笑)( ´ー`)y―┛~~
>>58 日本語不自由なのはゴキブリ高専卒の伝統なんかなん?w
一昔前、下請け土方の指導してた頃思い出したわ( ´ー`)y-~~
>>60 話のそらし方が厨房レベル(核爆笑)( ´ー`)y―┛~~
>>61 自己弁護の仕方、とぼけ方が下朝鮮人なみやなぁ( ´Д`)y━・~~
あかんでぇ〜(爆笑)妄想も酷いようやしなぁ( ´Д`)y━・~~
>>62 まじ突っ込みされてファビヨーン(核爆笑)( ´ー`)y―┛~~
5.6っていつGAになんの?
オラクル、MySQLの売り込みもけっこう熱心だけどなー うちに来る営業からのイメージ
ゴキブリどもの粘着消えたでぇ( ´Д`)y━・~~
>>69 なんで統合失調症になったの、おっちゃん( ´ー`)y―┛~~
>>70 あ?アホの子また来たん?
なんでゴキブリ高専になったん?(爆笑)
>>71 どうやってろんだしたの、おっちゃん( ´ー`)y―┛~~
>>72 ゴキブリ高専くん、日本語へんやで( ´Д`)y━・~~
>>71 なんで高専と思い込むの(核爆笑)、おっさん( ´ー`)y―┛~~
>>73 やっぱり頭変とちゃう、おっさん( ´ー`)y―┛~~
>>74 ゴキブリみたいな特徴が見て取れるやもーん(爆笑)
あ、ちゃうん?(^_−)−☆
下請けのゴキブリはんでっかぁ〜(^_^;)
>>76 だれに虐められて統合失調症になったの、おっちゃん( ´ー`)y―┛~~
>>77 ニートか?お前( ´Д`)y━・~~
同じ質問しかでけへんのは嫌がらせのつもりなん?(爆笑)
無い頭でよー考えました(^_−)−☆
で、下請け土方のゴキブリがワシのような高貴な人間に何の用や?( ´Д`)y━・~~
>>78 どうやって駅弁大学から地底の院に受かったの、ピペドのおっちゃん( ´ー`)y―┛~~
>>79 駅弁大学ってワシのことゆーてるん?(爆笑)
大学っちゅーのはな、東大京大阪大東工大くらいまでやで?(爆笑)
ゴキブリ高専やとそのへんよくわからんか( ´Д`)y━・~~
憐れやな( ´Д`)y━・~~
>>80 こんなところでさぼるな、ピベドのおっちゃん( ´ー`)y―┛~~
>>81 なんやてぇ〜( ´Д`)y━・~~
さぼろーがなんやろーと関係ないやろ?(爆笑)ワシのオモチャが一丁前な口きいたらしばき倒すで( ´Д`)y━・~~
わかったか?ゴキブリ高専くん(^_−)−☆
>>82 なにいうとんねー、ボケカスしばくどー、ピベトのおっちゃん( ´ー`)y―┛~~
>>83 ピヘドってなんなん?(爆笑)
土方のにーやんは時々よーわからんこと口走るから困るわ〜( ´Д`)y━・~~
>>84 きいてるきてる、おっちゃん( ´ー`)y―┛~~
>>80 最初から東大といてるのなら分かるが、地底引率(核爆笑)( ´ー`)y―┛~~
>>86 なんやて〜( ´Д`)y━・~~
誰が地底院卒やねん(爆笑)
ちゅーかお前どこの出や?いえへんやろ(爆笑)ゴキブリ高専がよぉ( ´Д`)y━・~~
>>87 くせーとおもったら、偽者のおっちゃんか( ´ー`)y―┛~~
>>88 ゴキブリはカサカサ地べた這いつくばってたらええねん( ´Д`)y━・~~
>>89 なんやねん、高専に偏執する(核爆笑)おっちゃん( ´ー`)y―┛~~
>>90 悔しいんか(爆笑)
ゴキブリからかって遊ぶのホンマおもろいわぁ〜( ´Д`)y━・~~
ワシの授業とってたカス高専あがりのゴキブリも結局姿消してもーた(爆笑)
高専カンファ(爆笑)では偉そうなことプレゼン(大爆笑)しとるんやろな(^_^)
ホンマしょーもないマスかき集団なんやな、お前ら( ´Д`)y━・~~
インストール後の初期設定ウィザードにて、 Developer Machine、
ミスです。 インストール後の初期設定ウィザードにて、 Developer Machine、Server Machineの選択が有りますが、 これの設定によって具体的に何が変わるのでしょうか。
>>93 my.iniを自動生成する時のメモリ割当量が変わると思う。
This will influence memory, disk and CPU usage.ってあるけど、
diskとCPUは関係無い気がする。
>>94 thx.
サーバーとして運用する予定なのでサーバー選択しておきます。
( ´Д`)y━・~~
( ´ー`)y―┛~~
/⌒ヽ ./く ` / // ^ ./ヽy━~~ . ヽ/ / .(⌒ヽ/ / |´ \.|
___ /|∧_∧| ||. ( | じゃ、そういうことで ||oと. | || |(__)J| ||/彡 ̄ ガチャ
,、,, ,、,, ,, ,,
_,,;' '" '' ゛''" ゛' ';;,,
(rヽ,;''"""''゛゛゛'';, ノr)
,;'゛ i _ 、_ iヽ゛';,
>>96 お前それサバンナでも同じ事言えんの?
,;'" ''| ヽ・〉 〈・ノ |゙゛ `';,
,;'' "| ▼ |゙゛ `';,
,;'' ヽ_人_ / ,;'_
/シ、 ヽ⌒⌒ / リ \
| "r,, `"'''゙´ ,,ミ゛ |
| リ、 ,リ |
| i ゛r、ノ,,r" i _|
| `ー――----┴ ⌒´ )
(ヽ ______ ,, _´)
(_⌒ ______ ,, ィ
丁 |
| |
>>100 サブイボぶわー出ましたわ( ´Д`)y━・~~
さすが天下の下請け高専卒はんやなぁ(爆笑)
Λ_Λ \\
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >_Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>101
_____________________
|
| 東京都立松沢病院ですが何か?。
| _____________________
| / ⊆ニ(二(ニニ⊇――――' (●ヽ
|
/| /______________________ヽ
,/ ̄V ̄ ┏━, / ̄ ̄ ̄|| ||. ̄ ̄ ̄ ̄ |||  ̄ ̄ ̄ ̄ ̄ ̄...| |
,/ ∧ ∧. i┸i //. ∧ ∧ || / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
_.,/. ( ゚Д゚ ) | :::|// ( ゚Д゚ ) <
>>101 を迎え入れに来ました。
|/,,,,,へ⊂ ヽ .// ,/ ノ/ ||\______________
,/ ̄ ̄ ̄ ̄ ̄ ̄//|_/ ̄ ̄ ̄|  ̄ ̄ ̄ ̄ ̄ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|~ ゜ ̄゜ ̄ ̄ ̄~~| ̄ ̄ =。|┃ |━━━━━...............|
|______: |,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,゜,,,,,,,,,,,,,,,,,,,,,,|,,,都立松沢病院,,,,,[|
._|]0::∴:::0::[二二il:] ,-―-、 ,,| | . [|
|====== ;...........| /,  ̄ヽ |~~|. | /,  ̄ヽ | {|
ヽニ[_]ヾニニヽ''''''|―-|.(※)|':|''''|.''''''''''''''''''''''''''''|''''''''|.(※)|:|'''''''''''''''''/
ゞゝ三ノ ̄ ̄ ̄ ゞゝ_ノ ̄ ̄ゞゝ三ノ ̄ ̄ ̄ ゞゝ_ノ ̄ ̄
アホなゴキブリばっかやの、さすが天下の下請け高専卒はんやなぁ(爆笑) ワシにはとてもじゃないけど、お前らみたく人間捨てられへんわぁ( ´Д`)y━・~~ ゴキブリ高専卒はやっぱり生きてて楽しいんやろな(爆笑)自称優秀さんやもんな(核爆)
__
/ ☆ \
ヽニニニノ
>>104 論文の清書できたかね?
| ノ 凶授 ヽ ( ) 学生実験の指導はやってるかね?
/ ● ● | ( ) 科研費の申請書できた?
__| ( _●_) ミ__ ( ) 奉仕しろよピベド
(_. 彡、 |∪| 、`__ )─┛
/ / ヽ ヽノ /_/:::::/
|::::::::::| / ( ̄ ̄ ̄ヽ |:::::::| ̄
|::::::::::| |  ̄ ̄ヽ .ノ |:::::::| /
/ ̄ ̄旦 ̄ ̄ ̄ ̄ ̄ ̄ ̄/|/
/__________/ | |
| |-------------------| |
>>105 さすが高専ゴキブリの土方はんやなぁ( ´Д`)y━・~~
ピペドってwワシはそこの分野ちゃうからなぁ(^_−)−☆
あ、もしかしてあれか?ポス毒板出張って煽れそうなレスコピペしただけちゃうんか?意味もわからずに(核爆)
あかんのぉ〜こらおもろいわ(爆笑)
ゴキブリ高専卒はどーしてもワシをポスドクやら土方扱いしたいらしいの( ´Д`)y━・~~
やっぱ自分の不遇を少しでも紛らわしたいからなん?wwww
ほらほらぁ〜もっと頭使わんとぉ〜( ´Д`)y━・~~
すげぇ。。。。まだやってんのかコイツ。。。。 ものすごい勢いで呆れた。。。。
108 :
NAME IS NULL :2012/09/06(木) 21:03:43.20 ID:JRz8L3Ga
MySQL Clusterの稼働実績が少ないのはどうしてなんだろ? ClusterならAuto-Shardingとかのスケーラビリティを向上させる便利機能がある。 でもDeNAなどの大規模サイトさえもClusterは使わず、 アプリレベルでゴリゴリ手を入れて手動Shardingして MySQL(InnoDB)使ってる。 MySQL Clusterは安定性とかあまりよくないんですか?
コンサルしてもらわないとまともに運用まで持っていけないぐらい 技術的な難易度が高いとは聞いたことがある
>>108 Clusterはミニマムスタートしにくい(最低4台)
↓
InnoDBでスタートしちゃうとClusterへの移行が手数
↓
InnoDBのノウハウ貯まる
↓
次もInnoDBで良いじゃん
という流れじゃない?
構築や運用は、MySQLだと思わずに別製品だと割り切ればそこまで難しくない。
>>110 あるある すぎるw
初期台数が必要なのは結構ネック。
負荷が高くなって分割を検討し始めた時に
cluster にしとけばよかったかな〜っていっつも思う。
ゴキブリ高専卒は今日もチューニング作業に邁進したまえ。 いくらチューニング作業に秀でようと結局は下請け奴隷やってことを忘れたらあかんで? 人間は謙虚じゃないとあかんでぇ( ´Д`)y━・~~
113 :
NAME IS NULL :2012/09/08(土) 23:59:30.16 ID:K8oltseq
Spider使ってる奴いらっしゃいますか?
>>113 ワシ元Cockroach使いやけど、需要ある?
( ´Д`)y━・~~
さて、そろそろヲタでも放置するか
ゴキブリども、SQLの話は終わりやの( ´Д`)y━・~~ 結局有用性について誰も説明でけへんかったのぉ( ´Д`)y━・~~
て
>>4 わしの大勝利に終わったのぉ( ´Д`)y━・~~
ゴキブリ光線( ´Д`)y━・~~
selectの結果を縦に表示するときは ; じゃなくて \G 使うけど あれ、なんで \G なの? もっとほかの記号になる予定は無いの?
>>119 なんのGか考えてみーや( ´Д`)y━・~~
おまえらゴキのイニシャルGやろ?(爆笑)
て
PHPからMySQLを操作したとき LOCK TABLES table1 WRITE, table2 READ UPDATE table1 SET c1 = (SELECT COUNT(c1) FROM (SELECT c1, c2 FROM table2 WHERE c1=1 OR c2=1 OR c3=1 ORDER BY c0 DESC LIMIT 20) AS p1 WHERE c1=1), c2 = (SELECT COUNT(c2) FROM p1 WHERE c2=1), c3 = (SELECT COUNT(c3) FROM p1 WHERE c3=1) WHERE c0=1 こういう感じのSQLを送信したんですけどMySQLからp1をLOCKされてないってエラーが出てしまって サブクエリをロックするにはどうしたらいいんですか?
>>122 黙らんかい、基地外ゴキブリ( ´Д`)y━・~~
お前らゴキブリはワシに謝っとけ
正規化に全然詳しくないんですけど、 ブログを作ってるとして、カテゴリを実装しようとしたら、皆さんはどうやって実装しますか? こういうマスタを作るとか言葉で説明してください
あ、カテゴリって複数設定できるようにしたいです
たとえば記事IDとカテゴリIDを紐づけるテーブルを作った場合、 データを追加していくと当然見た目的にはばらばらになると思うんですが、select文でwhereでidを指定すれば、 そのIDのデータだけ引っ張ってきてくれるのでどうにでもなると思うんですが、 そういうデータの格納順番って気にしなくていいんですか?
気にしなくて良い 適切なindexがあれば
129 :
119 :2012/10/26(金) 16:59:58.86 ID:???
謎は謎のままか
130 :
NAME IS NULL :2012/10/26(金) 17:44:48.75 ID:UOE+ocQG
こんな症状になった。検索しても何も引っかからない。ちなみにローカル(Win7)だとうまく行く だれか原因を教えて下され。 【症状】以下のようなテーブルに4件レコード挿入して、LIKEで検索した結果が思った通りにならない。 CREATE TABLE IF NOT EXISTS `test_samples` ( `id` int(10) unsigned NOT NULL auto_increment, `bigram` varchar(2) NOT NULL, `bigram_no_index` varchar(2) NOT NULL, `trigram` varchar(3) NOT NULL, PRIMARY KEY (`id`), KEY `bigram` (`bigram`), KEY `trigram` (`trigram`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `test_samples` (`id`, `bigram`, `bigram_no_index`) VALUES (1, 'ab', 'ab', 'ab'), (2, 'いろ', 'いろ', 'いろ'), (3, 'aろ', 'aろ', 'aろ'), (4, 'いb', 'いb', 'いb'); SELECT * FROM `test_samples` WHERE `bigram` LIKE 'い%'; #返り値が空でした(行数0) ------------ MySQL環境 サーバ: Localhost via UNIX socket サーバのバージョン: 5.0.95 プロトコルバージョン: 10 ユーザ: admin@localhost MySQL の文字セット: UTF-8 Unicode (utf8) Webサーバの環境 sw-cp-server/1.0.0 MySQL クライアントのバージョン: 5.0.95 PHP 拡張: mysql OS centos 5 【期待した結果】 idが2番と4番のレコード 【その他比較情報】 ■インデックスを張ってないカラムなら問題ない。 SELECT * FROM `test_samples` WHERE `bigram_no_index` LIKE 'い%'; ■3文字長のカラムなら問題ない SELECT * FROM `test_samples` WHERE `trigram` LIKE 'い%'; ■ascii文字なら問題ない。 SELECT * FROM `test_samples` WHERE `bigram` LIKE 'a%'; #1番と3番が返る ■ローカル環境(Win7)なら問題ない。
131 :
130 :2012/10/26(金) 17:46:32.10 ID:UOE+ocQG
すみません、レコード挿入の箇所間違えました(−− INSERT INTO `test_samples` (`id`, `bigram`, `bigram_no_index`, `trigram`) VALUES (1, 'ab', 'ab', 'ab'), (2, 'いろ', 'いろ', 'いろ'), (3, 'aろ', 'aろ', 'aろ'), (4, 'いb', 'いb', 'いb');
何度もすいません カテゴリを実装しようとするとき ある記事IDとカテゴリを結びつけるテーブルと カテゴリIDとカテゴリIDを結びつけるテーブルを作ろうとおもったんですが、 記事IDとカテゴリを結びつけるテーブルは記事IDとカテゴリIDを結びつけるべきですか? それともカテゴリ名ですか?
>カテゴリIDとカテゴリIDを結びつけるテーブル ??? >記事IDとカテゴリを結びつけるテーブルは記事IDとカテゴリIDを結びつけるべきですか? >それともカテゴリ名ですか? カテゴリID
外部キー制約って結構使いますよね? じゃあストレージエンジンはInnoDBにすることの方がおおいんでしょうか?
一つのテーブルから、複数のテーブルのカラムに外部キーって設定できるんでしょうか? 出来る場合はどうやって記述したらいいんでしょうか?
>>135 今はInnoDBがデフォルトでしょ。だからそういうことなんじゃ。
ただ外部制約やトランザクションを使わないんならMyISAMもでいいだろうし
>>137 わかりました
本当にありがとうございました
139 :
130 :2012/10/27(土) 02:34:13.34 ID:???
回答が無いようなので他を当たります。 失礼しました。
NAVICAT評価版の30日終わったから、製品版を買ったのだが 知らないで英語のサイトの方に行って買ってしまった。 日本語版にしたいのだが、日本のサイトで買わないといけなかったのかな? そんなことどこにも書いていなかったよ・・・ なんか方法があれば教えてください。
販売元に問い合わせるのが一番確実なのでは
InnoDBにWikiの2000万件のデータをinsertしてるんですが 最初0.3秒で終わるのが4秒とかになるのは何とかなりませんか?
MyISAMでインデクス無しでインサートしてからエンジン切り替え
>>143 ナイスな方法ですね!
ありがとうございます
以前ここでカテゴリの実装についてアドバイスもらったんですが、 カテゴリマスタテーブルと、記事IDとカテゴリIDを紐つけるテーブルを作った方がいいといわれました。 これを実現するために、 まず、記事IDとカテゴリIDを紐づけるテーブルにアクセスして、記事IDに紐付いているカテゴリIDを全部取得します。 その後このカテゴリIDの名前を調べるために、カテゴリマスタテーブルと取得したカテゴリIDを照合してカテゴリ名を取得します。 このように2回データベースにアクセスすることになるんですけど、 こんな設計で問題ないんですか?
あ?( ´Д`)y━・~~ ゴキブリ光線卒はまだ巣食っとるん? いい加減謝罪しとけや、ボケ(爆笑)
そんな設計で問題ない 記事TBLとカテゴリマスタTBLとリンクTBLをジョインするクエリで一発で取れる
ジョインなんてあるんですね 調べてみます ありがとうございました!
>ジョインなんてあるんですね それを知らないでテーブル設計して動かそうとしてんの?
>>150 初めはそのつもりでした
完全独学、参考書一切なしで勉強してるんで
独学ってのは参考書を見ないことじゃないぞw
>>152 何か参考書買わなくてもネットに色んな知識が転がってるからいいかなって
複数レコードの結果を取得する例として、 mysql_fetch_assocをwhileループに突っ込んで何度も実行して取得してる例をよく見かけるんですが、 これって一般的な方法ですか? SQLITEいじってたときは、sqlite_array_queryで複数レコードを一発で配列として取得できてたので、効率悪い気がするんですが
数万件のレコードでもそうするつもり?
sqlite_array_queryの実装は見てみたりした?
あ、実装ってsqlite_array_queryがどう実行されてるかって意味ですか? それなら見てません
普通の流れ 1. query 投げる 2. データなしまで fetch する 3. データを取り出して処理 4. 2に戻る sqlite_array_query て使ったことないけど 内部でこんな処理をやっている筈
>>159 じゃあ結局同じ事をやろうとしてたってことですね
じゃあこの方法のままで行きます
ありがとうございました
>>141 問い合わせたのフォームがあったので問い合わせたのですが、連絡がないようです。
レスポンス悪いのかな?
>>161 昨日の今日だし
二三日待ってみるよろし
>>160 お前はゴミバカ光線卒以下の蛆虫かいな(爆笑)
中卒か?( ´Д`)y━・~~
とにかくゴキ光線以下の畜生だということわわかるでぇ(爆笑)
ホンマ雑魚がわらわら寄ってくるな(爆笑)この板は(爆笑)( ´Д`)y━・~~
>>155-156 sqlite_array_queryって一度に全部配列に突っ込むんだね。知らなかった。。
危なっかしい実装だ。
>>153 エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
実践ハイパフォーマンスMySQL 第2版
Linux-DB システム構築/運用入門
読みことをオススメする。
ネットに転がってるのは初歩的なものばかり、有用な情報がないことはないが辿り着くのに時間がかかる。
英語が読めるならもっといい情報も取り入れれるけどね。
結局今のところは本の方が勉強に適している。
>>161 レスきましたよ。
納得できないって言ったら、認めてくれましたよ。
丁寧な対応だったので、英語版しばらく使っていようかな?
selectでただ単に「上から」なら select * from hoge limit 0,1、1,1で取得できるんですが UPDATEで同じような事できないんでしょうか? update hoge set age=sage limit 0,1、1,1のような
update にも limit あるよ しかし select もそうだけど何がヒットするかわからんクエリを よく平気で投げられるな
とりあえず値を付けておくって感じなんで順番は大丈夫です $sql = "UPDATE `table` SET `hoge` = 'val' LIMIT 0,1"; これで無理だったんですが Client API version 5.0.95
マニュアル見た? おれがマニュアル見た感じ、UPDATE 構文のLIMITはrow_count一つだけで オフセットつけられないように見えるが。
UPDATE構文に使えるLIMITは行数を制限と書いてあるわけだから LIMIT 0,1の様に位置まで制限する子ちおは出来ないのでは?
やはり俺の予想は当たった 出来ない
やっぱりですか・・・。 全て重複するレコードがあるので 判別する為にprimary_keyみたいなのをとりつけようと思ったのですが 既にレコードがあるので後から付ける事は出来ないですし、上から一つずつ取り出して値付けていくしかないかなと思い
いや、該当レコードを特定する手段を考えればいいだろ やり方がそもそもおかしいし、途中を選ぶ必要なんてないだろう。
UPDATE一発で連番を一気につける方法はあるけど、
そもそも
>>175 の件だって、既に登録したものはWHEREではじけばいいだけだろう。
>>176 >>177 なんで気付かなかったんだろうかそのやり方
本当にありがとうございました、自分がアホなだけでした
ゴキブリはやっぱだめやな(爆笑) ホンマおかしなゴキ光線やで( ´Д`)y━・~~
auto_incrementって1からだよな? なんか仕事場のだと0からなんだが
MyIsamだったら任意の値からスタートできたんじゃなかった?
-からスタートするのとかはみた事無いが 理論的には可能、ただしやる必要性がねぇ
プライマリーキーを削除しようとして alter table test drop primary key; ってやったらクエリOKって出たんですが、 show columnsやdescコマンドでカラム情報を見るとまだ、keyのところにPRIって書いてるんですが、 これって本当にプライマリーキー削除されてるんですか? ちなみにもう一度削除しようとすると、 「削除できません。そのキーが削除されてるか各二にしろ」ってエラーが出ます。
MySQLを数日起動させておくと、Key_blocks_unusedが徐々に0になっていくんですが これは単に割り当ててるメモリが足りてないって事ですか? メモリが足りていれば、どこかのラインで増えたり減ったりの均衡状態に入るものですか?
>>185 例えばメモリ4GBでデータベースが100GBだったら
Key_blocks_unusedがそのうち0になるのは当たり前。
すべてのデータがメモリに収まるような
小規模データベースだったら均衡状態に入る。
質問です phpでmysqlの`time`テーブルにUNIX時間の形式で `hoge` 1352164724 1352164824 1352164124 を10万件程保存しておいて これらの時間帯での個数を調べたいのですが SELECT `hoge` FROM `time` で全部取り出してからphpで全ての時間帯を調べるのと、MySQLで時間帯調べるのどっちが早いのでしょうか? それともこんな事やってる自体設計ミスであり、01時、22時と最初から記録しておくべきなのでしょうか?
1カラム目をidって言う名前でprimary keyとauto_incrementを設定してるんですが、 5カラム目の値を update test set aaa = 1 where id = 1; って指定するんですが、 duplicate entry 1 for key primary ってエラーがでます。 別に1カラムめのIDを変更しようとしてるわけじゃないんですがなぜでしょうか?
>>188 は忘れてください
別の質問なんですが、主キーが削除されません。
alter table drop primary key
でクエリおkって出て、もう一度削除しようとするとプライマリキーがありませんって出るんですが、
show columnsやdescで見るとkeyのカラムにまだPRIってかかれています。
どうやったら消えるのでしょうか?
>>189 はとりあえずカラムごと消して作り直したらプライマリキー消えました
でもalter tableで消えないのは納得してないので原因わかるかたいたら教えてください
>>187 10万回も日時を計算する事がどれだけ処理繰り返すか考えるだけで
前者の二つであるphp&mysqlでの計算は論外って理解できないのか?
>>191 再現しないから何とも。
消す前だったらSHOW INDEXES見たら? て感じだったけど。
194 :
190 :2012/11/06(火) 15:45:49.64 ID:???
ふと思ったが1000万件の大規模なdatetime型を「毎月5日」「水曜日」を検索すると数秒かかるが datetimeの他に月(1-12)日、(1-31)、曜日(0-6) と三つのカラムをint型で作って保存したらめちゃくちゃ高速にならないか?
>>194 オプティマイザーは基本的に1つしかインデックスを使わないから、
検索クエリに準じただけインデックス作る羽目に遭うのでオススメできない。
○月×日、○月の△曜日、月日問わず△曜日だけ…だけでも3つ必要になる。
datetimeをパーティションキーにしてパーティションするのが良いんじゃない?
> オプティマイザーは基本的に1つしかインデックスを使わないから へー、初耳 パーティショニングするにしてもtableが100個以上あったら設計ミスだから 1秒以内とかは難しいか
インデックスは二つ使えるがな 一つはインデックス、もう一つは並び順
>>194 を冷え込んできた今日この頃、湯船につかりながら考えてみたが
2005年1月1日から2012年の12月31日まで1秒ずつ2億件記録されてたとする
それを超高速で「期間を指定した毎月n日」「期間を指定したn曜日」で検索するのなら、これらだけに限るが例えば
2008年11月2日水曜日なら
n日用 n曜日用
2/08/11 3/08/11/02 (/は取り除いてint型で保存)
と記録する
そんでこれをindex化してselectする時にこれらのindexを指定すりゃ容量は増えるが超高速検索が可能になる
例えば2007年から2008年の金曜日なら
where 5070101 ビトウィーン 5071231
試せっていわないでください insert into test values(select id from abc where str = 's') みたいにvaluesに直接selectの実行結果をいれることは可能でしょうか?
試した insert into test select id from abc where str = 's';
いけるんですね ありがとうございました
カテゴリ登録みたいに、1つのカラムに複数登録するとき、 たとえば1の記事は 1,2 1,3 1,5 みたいに2,3,5のカテゴリIDを登録するためにレコードを三つ追加してるんですが、 あとからこれを修正するときは、一度deleteで1の記事のレコードを全部消して、 全部再登録した方が早い気がします それともそれぞれの組み合わせが存在すれば更新 or 削除って形にしたほうがいいでしょうか? 後者の方がsql文を実行する回数が増える気がするのですが。。
わかりました 移動します ありがとうございました
外部キー制約を追加しようとしたときに Cannot add or update a child row: a foreign key constraint fails ってエラーがでます。 良く調べたんですが原因がわかりません。 constraintがイマイチよくわからないんですが説明していただけないでしょうか?
constraintは理解できました、 が上記のエラーはまだ出ます。 どなたかアドバイスいただけないでしょうか
ホント迷惑
209 :
NAME IS NULL :2012/11/08(木) 21:25:03.12 ID:73wlXgPA
innodbでパーティションテーブル使うときって PARTITION p1 .なんとかかんとか DATA DIRECTORY="/.../.../.." って効かないの?なんぼ頑張っても/var/lib/mysql/DBに書きに行くんだけど。
datadir以外に書きたいと?
>>209 そもそもInnoDBでDATA DIRECTORYを指定できるのは5.6から。
CentOS 6 で MySQL 5.5 を使いたい時って、remi と IUS どっちがおすすめ?
DELPHI STARTERでMY SQLをodbcでつなげる方法があると聞いたのですが、 よくわかりません。 どなたかお教え願います。
どこまでやったのよ?
216 :
NAME IS NULL :2012/11/13(火) 21:36:54.06 ID:VVIRS8pD
すみません、質問です。mysql5を使ってます mysqlにはset型という型がありますよね これは例えば記事のタグを登録する場合に便利だと思うんですが タグ専用のテーブルで id|tagID|docID みたいな形でタグ管理するのに比べ どんな長所があるんでしょうか 専用テーブルだとトランザクション処理が必要だと思いますが、それ以外に 速度面でのメリットなどはどうなんでしょうか? どういう状況で使っていますか? ご意見お願いします
帰れ
質問するなら一つずつにしてくれ いっぺんに一つの事聞きたいならYAHOO知恵袋が良いと思う。その文章そのままコピってもいいから
外部キー作成するときにエラーが出てこまってます。 エラーは can't create table errno:150 みたいなエラーです。 以前にも外部キー作成の時には苦戦させられて、 参照元と先の型が一緒かとか確認したんですが、どこも異常なしでした 外部キー作成時の条件を全て教えてください
考えられる原因 01. FOREIGN KEY制約に指定しているカラムの型が一致していない 02. FOREIGN KEY制約に指定しているカラムがPRIMARYではない時、INDEXが無い 03. INDEX名が他に既に使用されている 04. 参照先、参照元のどちらかがInnoDBではない 05. ON DELETE SET NULLを指定しているが参照先がNOT NULL 06. お互いのテーブルのCharset照合順序が異なる 07. 外部参照カラムにデフォルト値をセットしている 08. 複合キーの片方に主キーまたはINDEXが無い 09. 何かしらの構文エラーがある 10. インデックス名やカラム名が64文字を超えている
>>220 あああ・・急いで作ったのでInnoDBにしてませんでした・・・
大馬鹿ですね
このチェック項目保存しときます!
本当にありがとうございました!
チェック項目の先頭に 00. InniDBであること を付け加えよう
パーティショニングと外部制約の関係について教えて下さい 現在のところ、MySQLではパーティションを利用する際に 外部制約はサポートされていないんで、外部制約を外してパーティションの 設定ってことになりますけど、そういう場合、外部制約でDBに任せていた チェックをプログラム側でしないといけないってことですかね?
はい
224です。やはりそうなんでしょうね^^; ありがとです
語気光線( ´ ▽ ` )ノ
XAMMPインストールしたのですが以下のようなエラーが出てスタートできません Error: MySQL shutdown unexpectedly. This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdown by another method. Check the "/xampp/mysql/data/mysql_error.log" file and the Windows Event Viewer for more clues なおポート重複や多重起動がないのは確認しました 他にどういった原因が考えられますでしょうか?
230 :
NAME IS NULL :2012/11/21(水) 11:06:29.24 ID:zz+1fbgK
where句以降で書いてんじゃん 条件書くときの古い形式だと聞いたことはあるし、自分ではやらないけど
えっとつまり、これはinner joinと同じってことですか? 等価結合とinner joinって同じですか?
複数テーブルからのinner joinの書き方がわかりません。 Aテーブルに id,name っていうカラムがあり、 BとCテーブルは、 Bテーブル id,name Cテーブル id,name ってなってます。 BとCテーブルのidはAテーブルのidに対応しています。 これらを結合して、 id,name,b.name,c.name と表示させたい場合はどういうsql文を書けばいいのでしょうか? select id,name,b.name,c.name from a inner join b on a.id = b.id まではかけたのですが、cテーブルをくっつける方法がわかりません。
↑はちょっと間違えました。 BとCテーブルのnameはidが割り振ってあって、 そのidは別のDテーブルのidカラムに対応してます。 なので全部書き直すと、 Aテーブル id,sex,age Bテーブル id,nameid Cテーブル id,nameid Dテーブル id,name となってます。 select id,sex,age,d.name from a inner join b on a.id = b.id inner join d on b.nameid = d.id; とすれば、 id,sex,age,d.name Bテーブルのidに対応したDテーブルのnameが表示されるのですが、 これにCテーブルのIDに対応したDテーブルのnameも表示させたいです。 でも、 select id,sex,age,d.name,d.name from a inner join b on a.id = b.id inner join d on b.nameid = d.id inner join c on a.id = c.id inner join d on c.nameid = d.id; とかくと、 not unique table/ailias : d となります。 どうやってかけばよろしいでしょうか?
サブクエリでselect の結果を直接where句の条件式に使うことができますが、 これをlikeの%%で囲った中に指定したいんですができないんでしょうか? そのままlikeに指定することはできますが、 該当文字列の前後に関係ない文字列を含む場合があるので%を付ける必要があるんです
>>233 同じ名前だと区別できなくなるから、AS で別名付ける
>>234 || で文字列連結とかは?
MySQLだと + だっけ?
MySQLはCONCAT関数か、PIPES_AS_CONCAT設定か
238 :
NAME IS NULL :2012/11/22(木) 00:35:57.56 ID:HkwG0qJP
>>229-231 Oracleだと8以前はその書き方しか出来なかった。
その条件を満たすレコードは結果的にjoinしたのと同じというか
JOINはWHEREから結合だけ切り出して機械にも人間にも
解釈しやすくする改善と考えていいと思う
>>238 なるほどそういうことですね
ありがとうございました!
241 :
NAME IS NULL :2012/11/25(日) 10:59:28.60 ID:dmB9wUBe
質問です id|type|name| 1|動物|犬| 2|乗り物|車| 3|動物|猫| 4|動物|その他| 5|動物|牛| 6|乗り物|バイク| 7|乗り物|その他| 8|動物|羊| こんな感じでデータが入ってるテーブルに対して、以下の条件でselectしたいです ・typeが動物のものだけ抜き出す ・nameが「その他」のものを抽出した配列の一番最後にして抜き出す どうしたら良いでしょうか、ご意見よろしくお願いします
242 :
NAME IS NULL :2012/11/25(日) 11:22:26.95 ID:K/RPn+Bg
select * from hogehoge where type = '動物'; 配列の一番最後にして抜き出すってのは何ぞや こういうこと? select * from hogehoge where name = 'その他' limit 1 order by id desc;
243 :
241 :2012/11/25(日) 11:45:36.01 ID:dmB9wUBe
>>242 ありがとうございます、わかりにくくてスミマセン
idに対して昇順ならid=8が最後になって、降順ならid=1が最後になるじゃないですか
この昇順降順に関係なく、「その他」の列を一番最後に来るように一発でselectしたいんです
(もちろん、「その他」のidがいくつだろうと、です)
できないんでしょうか…
なにを言ってるかさっぱりわからん 希望する抽出結果を241の表みたいに書いてみなよ
意味わかんねー(笑
あーわかった気がする。 ORDER BY name = 'その他' DESC とかで
あ、最後にするならDESCいらんかったな。 idのオーダーとも組み合わせられるよ。
248 :
241 :2012/11/25(日) 12:26:54.41 ID:???
普通に select * from t where type='動物' だと以下だけど id|type|name| 1|動物|犬| 3|動物|猫| 4|動物|その他| 5|動物|牛| 8|動物|羊| これを id|type|name| 1|動物|犬| 3|動物|猫| 5|動物|牛| 8|動物|羊| 4|動物|その他| こうしたいってことです。すみません、わかりづらすぎて…
249 :
241 :2012/11/25(日) 12:33:01.49 ID:???
>>246 できました!
order by name="その他", id
ですね。ありがとうございました!
>>249 応用できるようにorder by句でのfield関数の使い方を覚えた方がいいよ
251 :
NAME IS NULL :2012/11/27(火) 05:58:06.89 ID:vOacobr+
検索条件が変動した場合も効率的に使えるselect文の書き方がわかりません たとえば $_POST['sex'] ="male" という検索条件が渡された場合 SELECT * FROM t WHERE sex = $_POST['sex'] という検索文が実行できるテーブルがあるとして 上記条件に加えて $_POST['name'] ="taro" という検索条件も渡されてきたとき、 sqlを実行するプログラムでこのようにクエリ文を逐一書き換えるしかないのでしょうか? if(isset($_POST['name'])){ SELECT * FROM t WHERE sex = $_POST['sex'] AND name = $_POST['name'] を実行 }else{ SELECT * FROM t WHERE sex = $_POST['sex'] を実行 } クエリ文(select文)の中で条件を動的に書き換えるということは無理なんでしょうか 良いやり方があれば教えてください 条件の入力フィールドが山ほどある検索フォームが全パターンのクエリ文を用意してるとは思えず、疑問です
無理
253 :
NAME IS NULL :2012/11/27(火) 08:25:22.90 ID:WetC0yYX
どうでもいいがsexは違和感がある
いつもこんな感じでやってるけどな // SQL文生成 sql = "select 〜 from 〜 where 〜"; if(param_zip != null){ sql += " and ZIP='" + param.zip + "'"; } if(param_address != null){ sql += " and ADDRESS='" + param_address + "'"; } if(param_phone != null){ sql += " and PHONE='" + param_phone + "'"; } sql += ";"; // SQL実行 ・・・
AND条件限定ならハッシュで渡して全部つなげるとかがいいんじゃないかと。 PREPAREにも持って行けるぜ。
ORM最強ですねわかります
257 :
251 :2012/11/28(水) 12:10:14.38 ID:???
なるほど。ありがとうございました
258 :
NAME IS NULL :2012/11/29(木) 12:05:44.05 ID:lgPGOn65
データベースの移植をしてるんですが 移植前のデータベースのカラムにgroupというカラムがあります。 これ予約語になっていると思うんですが、データベースが複雑になっており 変更することが出来ません。 groupをカラム名として使う方法があれば教えていただけないでしょうか。
"" でくくる
260 :
NAME IS NULL :2012/11/29(木) 12:21:33.81 ID:lgPGOn65
261 :
NAME IS NULL :2012/12/03(月) 21:35:53.04 ID:i9DkdODF
FEDERATED ってなんの役に立つの? あれ直接ほかのサーバにアクセスするのと違いないよね?
262 :
NAME IS NULL :2012/12/03(月) 21:47:31.87 ID:Oto98x8O
サブクエリというか、既存データの複製insertについて質問させてください id:int(10) not null primary key auto_increment msg:text not null (いろんなカラム中略) userID:int(10) not null …というような構造のデータに既存データがいくつかあるんですが、 そのうち一つを選んで別のuserIDを割り当ててinsertしたいと思います この場合、以下のようにカラム一つ一つにサブクエリを割り当てないと無理でしょうか insert into test (id, aaa, bbb, ccc, …中略…, userID) values (0, select msg from t where id=5, select aaa from t where id=5, select bbb from t where id=5, select ccc from t where id=5, 中略, 123) idおよび最後の登録者のuserID以外を効率的にコピーする方法はないんでしょうか。 もう1レス続きます
263 :
262 :2012/12/03(月) 22:00:37.61 ID:Oto98x8O
続きです 前レスのように既存データをコピーして同じテーブルにinsertするという要件で、 既存データに付随する情報が別テーブルにあって、それも同じようにコピーしたい場合も知りたいです 例えば、ブログの日記本編に対するタグのような情報です 日記のテーブルt_diaryが以下の構造で id:int(10) not null primary key auto_increment title:varchar(20) msg:text タグのテーブルt_tagが以下の構造だとします diaryID:int(10) not null tag:varchar(20) この構造で、ある日記1件に対してタグが30個ついてて、 その日記とタグをコピーしてinsertしたいというケースでは 素直にt_tagに対してコピー元の日記のタグを全部selectしてプログラムのforeachなりで insertし直すしかないのでしょうか 新しいdiaryIDさえ与えればまとめてinsertし直すなんてできないのかなと どうなんでしょうか 力技しか思いつかないので、関数を使ったすごい方法があれば教えてもらえると嬉しいです
>>262 insert into test
select 0, msg, aaa, bbb, ccc, ..., 123 from t where id=5;
>>263 よくわからん
t_diary に id=1 が1件あって、t_tag に diaryID=1 が30件あるってこと?
望む結果はどういう状態?
265 :
NAME IS NULL :2012/12/04(火) 01:29:29.22 ID:8Iz0UZc5
質問させてください レプリケーションのテストをしているのですが マスター側でCREATE DATABASE testdbを実行するとスレーブ側にもtestdbができました。 しかし マスター側でDROP DATABASE testdbを実行するとスレーブ側のtestdbはなくなるのですが その後スレーブの動作を確認するとSlave_SQL_Running:Noになってしまいます。 エラーは下記のようになっています。 Last_Error: Query caused different errors on master and slave. Error on master: message (format)='Cannot load from mysql.%s. The table is probably corrupted' error code=1548 ; Error on slave: actual message='no error', error code=0. Default database: 'testdb'. Query: 'DROP DATABASE testdb' 何度やってもエラーが出てSLAVEが止まってしまいます。 何が原因でしょうか?よろしくお願いします。
ぐぐったらバージョンの違いがどうたら出てきたよ 最近バージョンうpしたりした?
267 :
NAME IS NULL :2012/12/04(火) 10:04:04.26 ID:8Iz0UZc5
>>266 ありがとうございます。
今両方のバージョンを調べて見ましたが同じでした
MASTER# mysql --version
mysql Ver 14.14 Distrib 5.5.28, for Linux (x86_64) using readline 5.1
SLAVE# mysql --version
mysql Ver 14.14 Distrib 5.5.28, for Linux (x86_64) using readline 5.1
さくらのmysqlで utf8のphpからINSERTしたら日本語が文字化けしてしまいました さくらのコントロールパネルからデータベースを作る時もutf-8を指定しましたし phpMyAdminにも「MySQL の文字セット: UTF-8 Unicode (utf8)」と表示されています mysql_query("SET NAMES utf8");とすれば正常に書き込みできたんですけど 何故php側もデータベース側もutf8で統一しているのに文字化けするのでしょうか? mysqlは5.5.28 です。
どの文字がどう化けたかがわかれば予想もできるのだけど
windows8にXAMPPを導入し、ie10でMySQLをphpMyAdminから管理しようとしているのですが、 いつからかIEだと画面遷移がうまくできなくなってしまいました。 chromeなどだとちゃんとできるのですが、IEだと例えばデータベースを選択したりすると 白い画面が表示されてしまいます。再読み込みすると表示されるのですが、ユーザの追加 などはできなくなってしまいました。 キャッシュやcookieなどをクリアしてみたのですが、変化なしです。PCも再起動したのですが ダメでした。 プロキシなどは切っています。 何か原因など思い当たりませんでしょうか。
ソースの表示で何か入ってる? 入ってるなら文字コードだろうな。
IE10はそういう事が多いみたい。ゲーム開発言語チームもIEは地雷って言ってたな。
IE10が原因なんでしょうかねぇ。マニュアル作りのためにIE使いたかったんだけど困ったなぁ。
だからソースの表示で何か出ないのかい?
275 :
270 :2012/12/04(火) 19:44:43.16 ID:???
>>271 >>268 宛だと思ってました。失礼しました。
その後、テンポラリフィアルの削除で、一時的ファイル、cookie、履歴以外にフォームデータも
削除したら復活しました。理由はよくわかりませんが…
>>267 バージョンうpの後に、うp前のバージョンのダンプファイルから復旧すると
そうなることがあるようだ
その場合は mysql_upgrade を実行しれ、ってことらしいけど
心当たりある?
277 :
262 :2012/12/04(火) 21:25:38.56 ID:IaXWtcVn
>>264 ありがとうございます
263についてですが、t_tabテーブルの中に
diaryID | tag
=========
1 | 散歩
-------------
1 | 食べ歩き
-------------
1 | 東京
みたいにタグが30個入っていて、diaryID=1の日記データ本体を複製した時に
上記のタグの方も新しい日記データのdiaryID割り当ててt_tabにinsertしたいんです
$rs = select from t_tab where t_tab.diaryID = 1
foreach($rs as $item){
//ループして、新しいdiaryIDを割り当てつつinsert
}
自分では上のようなプログラムを利用したやり方しか思いつかないのですが、
何かmysql関数を使ったクエリだけで実現する方法はないでしょうか
>>276 ありがとうございます
mysql_upgradeを実行したところエラーがなくなりました。感謝
>>277 こういうのじゃだめなのか?
insert into t_tag (diaryID,tag) select 2, tag from t_tag where diaryID=1;
280 :
NAME IS NULL :2012/12/05(水) 08:09:41.63 ID:rmdEDUmh
SET型について質問です。 'りんご', 'みかん', 'ばなな', 'めろん' のようなfruitという名のフィールドがあった時、 'りんご' と 'ばなな' 両方が含まれているデータを取得したいのですが、どのようにしたら良いでしょうか? WHERE `fruit` & 5 このようにしたら、 'りんご' または 'ばなな' のいずれかを持つデータが取得されてしまいます。 どなたかご教授お願いしますm(_ _)m
281 :
NAME IS NULL :2012/12/05(水) 10:08:29.19 ID:9WNhVZ6X
282 :
NAME IS NULL :2012/12/05(水) 10:23:11.96 ID:rmdEDUmh
>>281 失礼しました。
そちらの方で再度質問させて頂きますm(_ _)m
mysqlから読み込んだデータをまた格納する場合って、 またmysql_real_escape_stringとかでエスケープする必要あるんでしょうか?
>>283 は全て解決しました
ありがとうございました。
285 :
262 :2012/12/05(水) 14:04:14.01 ID:???
>>279 こういう書き方ができるんですか、知りませんでした
ありがとうございました
286 :
NAME IS NULL :2012/12/05(水) 22:49:56.98 ID:5pUg0QhL
>>265 mysqlデータベースが壊れてるって話じゃないのかな。
いっぺんmysqlを再インストールするか、mysqlデータベースの
中身をマスターとスレーブで揃えるとか。
csvファイルのインポートで、そのcsvファイルの更新日付を同時にインポートすることは、出来るのでしょうか?
>>283 じゃないけど
エスケープする必要あるの?
どこで展開したかによるだろう
290 :
NAME IS NULL :2012/12/10(月) 22:22:06.91 ID:puwYgT/P
MySQL初心者です、下記の3つの方式でどれが良いのでしょうか 1. 一年間で10万件のデータをまとめて一つのテーブルにすべきか 2. 一月ごと1万件弱のテーブルに分けて最新月のアクセスを軽くする 3. 最新の一月(アクセス多い)を別にして、残りは全てまとめてしまう(アクセス少な目) 今後も毎月1万件データは増えるとする
2. 一月ごと1万件弱のテーブルに分けて最新月のアクセスを軽くする DBもプログラムも初心者の俺は2一択! どれが一番効率的か俺も気になるわぁ〜
4. 一つのテーブルにして月ごとにパーティションで分ける
100年で1000万件のデータをまとめて一つのテーブルにすべき
4. データの変更がない最新月以外のクエリは、プログラム側でキャッシュを用いるようにする
何をしたいか、どういうアクセスがあるのかで変わるだろうに
テーブル分けても、また合体したくなる罠
因幡社長「100年使っても大丈夫!」
300 :
290 :2012/12/12(水) 01:15:43.34 ID:???
もっと意見が偏るかと思ったんですが、意外と人それぞれで定番は無いのかな。 10万件でアクセスしてもそれなりに動くと思うし、どの程度負荷がかかるか見てみたいけど 後で月ごとにバラするも手間ですよね。 とりあえず月単位でテーブルを分けとく方式で作ります。 検索とかテーブルごと回さなきゃならない辺りが面倒になりそうではありますが。
必要なときにUNIONすればいい 必要になるケースはほとんど無いと思う
月ごとでテーブル名は同じにして差し替えるの? 名前替えて前もって作っておくの? どっちにしても面倒なだけな気がするがw
304 :
NAME IS NULL :2012/12/12(水) 17:09:03.86 ID:fy1dw86O
kongetu_tbl と ruikei_tbl 月が変わったらkongetu_tblの中身をruikei_tblにいれてkongtu_tblはクリア とか
使い方にもよるけど、年間=累計でいいの? 年間も単純に期が決まってるか、過去12ヶ月なのか、なんかで設計は変わると思うけど。
306 :
290 :2012/12/13(木) 03:46:05.15 ID:???
データ落としてみたら25万件超えたw 試しのつもりだったけど、XAMPP上でinsertして足してるだけで ちょっとしたエンコードなみの負荷がかかってる。 DBのサイズも100MB超えたし何かとヤバイな。 というかDL始めて24時間でも終わらない…
そうか、頑張れよ。 10GBこえるとバックアップが面倒だな、くらいだけどなー
ディスクの肥やしでDB成長を見守るスレ
バックアップって難しいんだな・・・・
310 :
NAME IS NULL :2012/12/13(木) 21:44:58.91 ID:A3X0EwJ0
外部ホストから接続、操作について質問です
www.example.comとwww2.example.comがあります
www2.example.comに
GRANT INSERT,SELECT ON test.* TO
[email protected] IDENTIFIED BY 'password';
でユーザーを作り、www.example.comから接続はできたのですが、INSERTやSELECTができません
なぜでしょうか?
311 :
310 :2012/12/13(木) 22:06:07.88 ID:???
半分自己解決しました ホスト名をIPアドレスに変えてGRANTしたところうまくできました GRANT INSERT,SELECT ON test.* TO foo@"111.111.111.111"IDENTIFIED BY 'password'; しかしホスト名はちゃんと正引きできるのになぜだろう・・・
だまれや、ゴキブリども( ´Д`)y━・~~ Excelの有用性も説明でけへんゴミが何偉そうにしとんねん!
314 :
NAME IS NULL :2012/12/17(月) 10:04:52.79 ID:o0eyqba6
くそはらいたし
ゴキブリども( ´Д`)y━・~~
字余り
BigDumpというツールで他のDBからCSVでコピーしている方はいますか? 普通のCSV形式だとMySQL側の文字項目に " が入ったり、 パラメータ替えたら項目の区切りが認識されなかったり、全然うまくいきません。 あきらめてODBC接続で転送しているんですが100倍ぐらい時間がかかりそうです。
>>317 下請奴隷なんやからそれくらい待ったらええやん( ´Д`)y━・~~
残業代もらえへんのか?(爆笑)
あーせやからゴキ光線行くなゆーたのに
( ´Д`)y━・~~
そろそろこの誤記光線板に張り付いて一年になるんかのぉ( ´Д`)y━・~~ ホンマ気骨のあるにーやんおらへんのやな〜(爆笑) ま、誤記光線卒業してそのまま大手SE会社の奴隷派遣として働く人間なんざこんなもんやろな(爆笑) ワシの研究もうまくいくメドたったことやし、年末にかけて久々に誤記弄り再開させてもらいますわ( ´Д`)y━・~~
MySQL5 で Float(10,7)で 小数点7桁のカラムを作ったのですが INSERTでは7桁入れて正しく入っていますが UPDATE で小数点7桁を入れても 4桁以降くらいの数字が反映されません。 10.1111111 -> UPDATE(10.1111155)としても 10.1111111のまま UPDATE(10.21111111)とかだと反映されます。 この制限についてどこかにいい解説はないでしょうか
>>320 小学校の算数からやりなおしやぁ〜( ´Д`)y━・~~
誤記光線は算数やらへんのん?( ´Д`)y━・~~
>>320 float型 誤差
あたりで検索すると、計算機のしくみと浮動小数点型の扱いを解説してるところが沢山見つかる。
一つじゃわからんかもしれないので、いっぱい見てみるといいよ。
323 :
NAME IS NULL :2012/12/18(火) 20:18:59.30 ID:2043yRUV
MyISAMのクソばかでっかいテーブルをレプリケートしてて、そこにインデックス 張りたいんだけど、マスターでインデックス張るとテーブルロック食らって困る、 って状況で、スレーブだけインデックス張るのってアリだと思う?
325 :
NAME IS NULL :2012/12/21(金) 13:25:25.47 ID:e+a/sWqD
>324 なんで 5.5 の次が 10.0 なん?
ステルスマーケティング・コンプレックス
MySqlで作成した日記のデーターベース(utf8で作成)をエクスポートしようとしたんですが、 出力されたファイルの中の一部の文字が文字化けしてしまっています。 文字化けする文字は「(*?ω?*)」などの特殊な顔文字をつかっている文字です。 phpmyadmin上で見ると文字化けせずに表示されています。 --default-char-set=binaryをしても効果はありませんでした。 どうすれば文字化けせずに出力できるのでしょうか?
上のやつは--default-character-setの間違いでした。 実際にこれを指定しても文字化けしてしまいます
>>328-329 は忘れてください
何か作成されたファイルをメモ帳で開いたら文字化けしなくなりました。
サクラエディタで開いてからインポートすると文字化けするんですよねー
サクラエディタではUTF8で開かれますけど、文字コード変換なんかしてないのに。
メモ帳で開くと時間がかかりますが、メモ帳で開いてからインポートすると文字化けせずにDBに登録できました。
開くときに時間がかかってるのは何か変換でも行われてるからでしょうか?
まぁ解決したんでよしとします。
誰か何か知ってたらレスください
>>330 サクラタンノエロガゾウキボンヌ と。
unicode版使ってる?
単に文字化けで済ますから、、、、 元の文字コードは何で、どういう経緯で化けてるのか突き止めればいい。 バイナリでダンプしてみるとか
>>331 unicode版つかってませんでした。。
で、インストールしてみたら文字化けせずにすみました
ありがとうございました!
>>332 なるほど
もうちょっと詳しく調べて見ます
ありがとうございました
( ´Д`)y━・~~
検索してみると漢字の名前のorderではアイウエオ順では並ばないとの事 別カラムにひらがなで読みを入れてorder指定すれば並ぶらしい もっと便利な方法ってありますか
もっと便利って? 同じ漢字で複数読み方があるけど、予測してくれる機能は無いかってこと?
337 :
335 :2012/12/26(水) 20:25:44.60 ID:???
>>336 MySQL初心者だけど、名前入力されたデータをアイウエオ順に表示って
もっと簡単に出来ると思ってた。
今思えばユーザー入力時に読み仮名入れるのはソートのためもあるのね。
予測というか漢字ソートで一発だったら良かったな。
>>337 語気光線卒やったら無理やろ( ´Д`)y━・~~
もう誰にも
PHPでMySQLのDBにinsert しようとしてるんですが、 ファイルに直接、 mysql_query("insert into data(name) values('test')"); ってやればそのまま登録されるんですが、 mysql_query("insert into data(name) values('{$data}')"); って変数を使うと値が空のままレコードが登録されてしまいます。 事前にこの変数はecho して値が入ってることを確認しています。 何が原因なのでしょうか? 前まではこれでいけてたのに突然値が空っぽになってしまいました。
>>337 30年くらい前の情報処理ではそれをやってた。
漢字と読みを一意にして、実際の読み方は無視する方法。
例えば山田太郎ならヤマタタロウ。武井咲ならフイサク(濁点は使わない)みたいな感じ。
年金DBでもそれをやっていたので、何が何だかわからなくなったものが出たことも
年金問題の一因になっている。
って、学校ででも教えてるんじゃないの?
じゃあ年金破綻はオマエのせいじゃんw
身近なとこだと運転免許証もその方式だったねぇ。
( ´Д`)y━・~~
346 :
NAME IS NULL :2012/12/27(木) 21:23:16.24 ID:cHUwgurl
しかしMySQLと全然関係ない話ばっかだな。
正直、SQLの話はOracleのスレかなんかでやればいいのに と思うことはあるな。
明けオメ M-皆大好きMySQLのスレで、 y-ワイワイ楽しく S-システム談義 Q-クエスチョンがある人も L-愛情を持って返事してくれる人も、 今年も平和でハッピーでありますように!
>>348 あ?( ´Д`)y━・~~
光線卒ってこうゆー馴れ合いが好きなん?
死にたえろや、語気鰤ども
毎日テーブルを一つ作成していくのと テーブルはひとつで、日付カラムを作って、毎日そのテーブルにデータを追加していくのと どちらが良いのでしょうか? 一日のデータ量は日によって変わるのですが300~1500くらいです
データによるとしか まあ多く見積もって50万レコード/年くらいだろうから、 単純に入れるだけなら1年1テーブルくらいでよいのでは?
352 :
NAME IS NULL :2013/01/04(金) 23:42:42.27 ID:Sqpm8/Gi
犯罪者個人に対して告訴状を違法派遣・偽装請負・偽装出向・多重派遣の被害者が作成(刑事告訴は無料) or 司法書士が代筆(料金は5万円ぐらい)※コピペ歓迎 ↓ 告訴状を【検察の直告班】に郵便局の内容証明付で送付(疎明資料・証拠にはICレコーダー、スマホによる録音が適しています) ↓ 審査 → 不受理 → 告訴状再提出または刑法 第193条で訴えを起こす ↓ 受理 → 告訴事実を認め示談交渉(↓) →示談成立 → 法廷相場50〜100万円の示談金 ※示談拒否が良い ↓ ↓ 事案化← 前科あり ←示談不成立(↓)→ 示談外交渉→ 犯罪者の年収半額×最大懲役年数の和解金支払い※推奨 ↓ ↓ ↓ 起訴 →公判 → 罰金刑=前科(起訴事実を認めてるため)→追討ち民事訴訟 ↓ 審査 → 起訴(強制捜査・留置場)→ 公判 → 懲役刑などの厳罰(反省が認められないため)→追討ち民事訴訟 ↓ 不起訴、起訴猶予 ↓ 検察審査会法第30条(検察審査会へ申し立て)→ 起訴 → 起訴後は同上 刑法 第193条(公務員職権濫用)で検察事務官を刑事告訴 → 同上 ◎告訴→告訴受理→示談交渉→厳罰を求め示談不成立→示談外交渉→和解金支払い・和解契約(公正証書・即決和解で秘密保持契約) ◎偽装請負・出向・違法派遣事件では派遣・出向先両方の代表者、役員、現場責任者に告訴できます。 前科がついた犯罪者が法人の代表であれば公的な入札からの排除、取引先や顧客との契約解除など社会的制裁・批判に晒されることから辞職または解任が妥当、役員・社員であれば懲戒を想定。 ◎事業者内部の加害関係者による刑事告発(刑事訴訟法239条1項)も可能です。 加害者本人、管理間接部門の社員が刑事告発に踏み切る場合も和解金による解決が妥当です。 注意:告訴が受理されない理由 ●3年間(※)の時効が過ぎたもの ※違法派遣 ●同一事実について過去に告訴取消しがあったもの ●関連する民事訴訟を有利に導く目的の場合 ●証拠が希薄なもの ※被害者が契約時に違法派遣・偽装請負・多重派遣と知っていても刑事告訴は有効です。
>>351 なるほど、1年毎に1テーブル作る感じですね。それでいこうと思います。
ありがとうございます
>毎日テーブルを一つ作成していくのと 少し考えただけで、テーブルの管理がすっげー面倒になると思わんけ?
質問です。 DATETIME型をWHERE句に入れる場合、 LIKEを使うとINDEXが使われずにとても遅いので、BETWEENを使いましょう というのは有名な話だと思いますが、これはDATE型でも言えることですか? DATE型でもBETWEENを使った方がINDEXが使われて早い検索ができますか?
>>354 テーブルの管理をするためのテーブルを(ry
DATETIMEにLIKEを使うというのがすごい違和感あるんだが
テーブル構成にもよるけどMySQLなら1000万行ぐらいでも快適に動作するよ
>>358 テーブル構成にもよるって言うと?
カラム数が多いかどうか?
カラムの数とか可変長のカラムが多い少ないとか 100カラムとかあったらたいへんでは 実際に管理しているデータベースで1600万行、データサイズ2.7GBのテーブルあるけど快適動作
なるほどー 参考になった!ありがとう
1000query/secオーバーでMyISAMのテーブルに1000万行入ってると…
ioDrive ってOS側にもミドルウェアを入れてそれでパフォーマンス上げるらしい 100万円のデバイスで数千万円のストレージの性能に匹敵
365 :
NAME IS NULL :2013/01/09(水) 08:18:45.02 ID:4HXcyysT
※コピペ歓迎です。 違法派遣(偽装請負・多重派遣・偽装出向・事前面接等)についての刑事罰 【告訴権者=業務委託、準委任、共同受注、業務請負契約および特定派遣(契約・正規)、一般派遣、正規社員】 @職業安定法第44条の労働者供給事業の禁止規定に違反(1年以下の懲役または20万円以下の罰金) ■偽装請負・多重派遣・偽装出向・多重出向 ■事前面接(顔合わせ・面談・職場見学等)と履歴書・職務経歴書・スキルシート等提出による労働者の特定(※) (音声録音で立証可能) A労働基準法第6条(中間搾取の禁止) (1年以下の懲役又は50万円以下の罰金) ■多重派遣・多重出向 ※違法派遣(派遣労働者の特定)→派遣法で認められた派遣労働者ではない→労働者供給事業→職業安定法44条違反というの が前提となる法解釈となります。派遣法における罰則が軽微なのは法律の不備や労働者軽視などが原因ではありません。 違法派遣は全て職業安定法44条で裁くことが可能なため、刑罰の重複を避けるために派遣法には軽微な罰則(主に裁量行政による)しかないのです。 使用者に有利な民事訴訟や労働関係諸局への通報等の対極にあるのが書面(告訴状)による刑事告訴(※告訴先は検察の直告班)です。 労働関係諸局への通報・斡旋による軽微な「適正化」や監督・指導に対して、法律に定められた刑事罰を問うことになり、 違法派遣業者にとって有罪は考えられる限り最大の処罰となります。同時に刑事罰を受けた 担当者が取引先に与える悪印象を考慮すれば、通常会社側は告訴が受理された時点で告訴取り下げに 動くのが妥当でしょう。懲役、前科がつく刑罰が下される可能性から、告訴取り下げの和解金は高額となることが多いのです。 告訴の流れとしては、 刑事告訴⇒告訴受理⇒告訴取下げ要請⇒取下げ和解金入金⇒告訴取下げ となります。告訴の懲役刑適応は犯罪者個人に対してのみですので、告訴する対象は 派遣先・派遣元 社長 派遣先・派遣元 責任者・管理役員・取締役 派遣先・派遣元 人事管理担当者・人事管理役員・取締役 が妥当です。刑事告訴取り下げの和解金額は犯罪者個人と交渉するとよいでしょう。(告訴状は人数分提出する必要あり)
366 :
_ :2013/01/09(水) 12:59:33.75 ID:???
5.6っていつ出んの? リリースサイクル、全然守られてねえし、 バージョン上がってもマイナーチェンジくらいだし。 Oracleはやる気あんの?
mysqlを業務で使ってる所ってバックアップは何か専用のツールを使ってるんですか? それともやっぱりmysqldumpで?
どのタイミングのバックアップ? うちは日次はファイルシステムのスナップショットとるだけ
369 :
367 :2013/01/11(金) 22:28:00.35 ID:???
あ、フルバックアップなんかはどうしてるんですか?
毎日スレーブからダンプ
372 :
NAME IS NULL :2013/01/17(木) 19:56:48.45 ID:EwS78HY0
パワハラ犯罪にたいする刑事罰(※本投稿のコピペ歓迎です) 人事原則 1 現行法では、社員が仕事を怠けたり、能力不足、就業規則違反、目標を達成できなくても解雇をしたり叱責することは違法です。どんな駄目社員、嘘つき社員、怠け者も定年まで解雇が違法なのが現行の正社員制度です。 2 パワハラは社風にあわない社員、成績の振るわない社員を自主退職に追い込む言わば人事的措置として用いられることが多い。 ※違法な解雇の和解金相場は、労働審判で3ヶ月、通常裁判で1年以上の報酬、さらに社員が和解を拒めば復職が可能です。弁護士への着手金は12〜15万円、和解拒否なら20〜50万円程度。 人事部・ホットライン・御用組合へ直訴 メリット: 一時的緩和や人事異動 デメリット: 役員へ情報筒抜け、危険分子の烙印(情報漏洩がホットライン直訴者に多いのは人事部の常識)、パワハラ放置で自主退職に追い込まれる 民事訴訟・調停・労働審判 メリット: 損害賠償 デメリット: 裁判費用、解雇措置、民事不介入で刑事事案化を阻止、長期係争、パワハラ上司の継続雇用 刑事告訴 メリット: 1パワハラ上司の解雇・懲戒、または2多額の和解金、1と2どちらでも被害者の雇用は維持 デメリット: 人事異動(出世コースから外れる) ◎録音は一方の当事者が取る限り合法です。※加害者に録音の同意を求める必要はありません。 ◎告訴受理後の和解金は加害者の資産・収入に応じて変えてください。犯罪者の昨年の年収の半額程度×最大懲役年数が妥当です。 ◎パワハラの被害についての告訴は1侮辱罪2脅迫罪3強要罪4威力業務妨害罪5傷害罪の順序で行ってください。警察・検察の協力(犯罪者の自宅・職場の強制捜査、留置所勾留)により罪の立証が楽になります。 ◎刑事告訴した社員を解雇したり処遇面で著しい差別を行うことはないでしょうが、出世や管理職以上の昇進の可能性はあきらめるべきでしょう。 ◎刑事告訴は民事訴訟と違って裁判による被害者への2次被害にありません。検察庁が被害者に代わって訴えをおこすので、無料で、時間と手間も告訴状をかくことと音声録音を残すだけです。 ◎和解契約(公正証書・即決和解)では告訴した事実は秘匿事項となります。犯罪者が秘密保持契約を違反した場合の損害賠償金は、最低5000万円〜にしましょう。
パーティショニング便利なのに プライマリキー必須ってのがなぁ・・
>>373 俺的には外部制約がサポートされてないことが痛い
SELECT ( CASE dayofweek(now()) WHEN 1 THEN '日曜日' WHEN 2 THEN '月曜日' WHEN 3 THEN '火曜日' WHEN 4 THEN '水曜日' WHEN 5 THEN '木曜日' WHEN 6 THEN '金曜日' WHEN 7 THEN '土曜日' END ) AS week ; +------+ | week | +------+ | 月曜日 | +------+ 1 row in set select DATE_FORMAT(now(),'%w'); +-------------------------+ | DATE_FORMAT(now(),'%w') | +-------------------------+ | 1 | +-------------------------+ 1 row in set それぞれに戻り値が違う??
何言ってるのかよくわからんけど、%wは0から始まるぞ
378 :
NAME IS NULL :2013/01/21(月) 13:52:10.97 ID:Wo0l5a5y
ものすごく基本的なことで申し訳ないのですが・・・ grant all privilegesで、ユーザに権限を与える際に 既にあるユーザでパスワードも既に設定されているのですが、 identified by hoge部分を抜いても動くのですが、問題がありますでしょうか それとも権限を与えるときは、必ずidentified byを明記する必要があるのでしょうか
どうだ?!
select * from mysql.user とかしてみると面白いかも
素朴な疑問ですけど、1テーブルにいくらレコードがあっても インデックスさえ適切に張っていれば、 SELECTしても瞬時にデータを取り出せるのでしょうか?
そうだったらいいのにね
インデックスを張ったカラムのデータが全部同じで、そのデータをWHERE指定 して検索すれば全件検索あら不思議 てゆうか、このレベルの話は他でやろうよ…。MySQLであろうがなかろうが 変わらんじゃん…
1000万件を適切にインデックス張ってWHEREでLIMIT 1だとしても 俺の環境では参照するのに1分は余裕でかかる。 実務レベルで使うならレプリケーションとかパーティショニングとか 他の方法を考えないとな
完璧なカーディナリティのインデックスを張っているにも関わらず、 秒速5000更新でデータベースエンジンがMyISAMwwww
教えてください 5.5系同士でレプリケーションを行っていますが、マスター側の バイナリログが新しいファイルに切り替わるとスレーブ側のバイナリログの 位置情報が勝手にマスター側の古いファイルに変わってしまいます そのため、スレーブ側がデータの重複エラーでレプリケーションが止まってしまう状態に陥ってます 上記の現象が起こってしまう原因に心当たりのある方はいませんでしょうか・・・。
win + mysql5.5.19なんですが、.errファイルの中身を見るにはどうしたら良いんですか?
メモ帳でもテキストエディタでもWordでも お好きなソフトでどうぞ
バイナリデータかと思ったらテキストなんですね。thxです
win7 + mysql 5.5 mysqlで、select into outfile で出力した時に 文字化けが起きています 日本語で登録していたstk_nameは大丈夫なんですが、case文で分けて表示させようと しているところなんですが。 select stock_code ,stk_name, case shkbn when 1 then '株式' when 2 then 'ETF' when 4 then 'ETN' when 8 then 'REIT' end as sh into outfile "c:/no_data.csv" fields terminated by ',' enclosed by '' lines terminated by '\r\n' from stock_master で株式が 譬ェ蠑・ になってしまっているんですが、これどうしたら直るでしょうか
MySQL 5.0.77 ODBC Driver 5.1.11 Windows 7 Pro x86 SP1 Access 2013 Access の [外部データ]-[ODBC データソース] からインポートする時、やや長めの テーブル名を指定すると Access が死にます。 テーブル名 a23456789012345678 ⇒ OK テーブル名 a234567890123456789 ⇒ クラッシュ 何がいけないかお分かりでしたらお教えください。
395 :
393 :2013/02/02(土) 22:47:34.70 ID:???
ありがとうございます、ODBC Driver 5.2.3 の導入で解決しました。
396 :
393 :2013/02/02(土) 23:23:31.76 ID:???
>>392 UTF-8として開くか、保存時のコード指定かな
>>397 ありがとうございます。
実行前に
set character_set_database=cp932;
として実行したら直りました。
mysqlのコンソールでやったらOKで、navicatってものでやるとこれでも駄目でしたが^^;
399 :
NAME IS NULL :2013/02/03(日) 21:43:52.90 ID:LPzFNHeF
検索での絞り込みの方法を悩んでいます。 検索のイメージとしては、不動産で例えると、詳細条件のような感じです。 例: 物件テーブル 1,物件1,4LDK 2,物件2,1K 3,物件3,2DK 詳細テーブル 1,バストイレ別 2,シャンデリア 3,プール付き リレーション 物件ID,詳細ID 1,1 1,2 1,3 2,2 3,2 3,3 のような設計になっています。 詳細がチェックボックスになっていて、詳細2と詳細3をチェックすると、 詳細2&詳細3の結果で、物件1と物件3が出るようにしたいです。 どのようなクエリにしたら、いいのでしょうか? よろしくお願いします。
select 物件テーブル.* from 物件テーブル, リレーション rel1, リレーション rel2 where 物件テーブル.物件ID=rel1.物件ID and rel1.詳細ID=2 and 物件テーブル.物件ID=rel2.物件ID and rel2.詳細ID=3; てなクエリを入力パターンによって生成する
401 :
NAME IS NULL :2013/02/04(月) 20:16:51.58 ID:7/YQXdRu
例えば、掲示板におけるユーザの投稿数が大きくなってきた場合 1つのテーブル内でそれらを全て格納すると、 行数が多くなってきた場合には、その値を取得する場合に 時間を多く要する様になると思われます。 そこで、テーブルを1つのDBの中で別名(連番)で定義して それぞれ分割してアクセスすれば速度が速いのかと思っていますが如何でしょうか? 結局1つのDBに負荷が集中する事は変わらないので 速度的には変わらないものなのでしょうか? T_1 T_2 T_3
素人が最初に考えるチューニングw まあ実験した?
別ディスクに置けばパフォーマンスが良くなるかも 並列処理の効率が良くなって改善する可能性もある 物理的にテーブルをわけなくてもパーティショニングを使う方法もある
どういうアクセスが多いのかわからないと 同時アクセスユーザーが多いのか、とか、 テーブル全体にアクセスするか、局所的なのか
405 :
NAME IS NULL :2013/02/05(火) 17:05:05.50 ID:992P9e4u
>>402 100万件程度だとあまりパフォーマンスに差がでないんです。
mysql 5.5.19 トリガーのことなんですが、 deleteを2行書いたら This version of MySQL doues't yest support 'multiple triggers with the same action and event for one table' って出てきたんですが、 こういう時1行ずつ別のトリガーとして登録しないと駄目なんですか?
406は、、忘れて下さい^^;
はい^^
409 :
NAME IS NULL :2013/02/12(火) 02:21:54.00 ID:3bD2sJZG
MariaDB入れたけどスレがない
アンインストールするしか無いな
あ〜ん……
アンインスコ それは夢 アンインスコ それは楽園 アンインスコ それは神
教えて下さいm(__)m mysql 5.5.11 show create table ccc で テーブルccc の定義を見ることができますが、 foreign keyの名前を変えたいと思ってます。 このforeign keyの名前を変えるのってどうすればできるんでしょう?
すみません質問です。環境→WinVista32bit cmd からsqlコマンドでテーブルを作成して日本語で入力したいのですが文字化けしてしまいます。 character-setはfileSystemがバイナリである以外全てutf8です。 ggったところ、 cmdの初期設定が chcp 932 ということが原因らしく、utf8が見える?形にするため chcp 65001 にしたのですが、今度はAlt+半/全角キーで日本語入力モードになっていたものが、ならなくなりました。 これでは本末転倒です。 どうか教えてください。
あきらめて、クライアントの文字コードをSJISにするようにしておけば DB内部には内部のコードに変換されて入る。
>413 DROPしてADDのほかなし。 コード変換は波ダッシュに苦しめられた嫌な記憶が脳裏をかすめた。あれはいまだに起こるの?
>>416 うわっそうなんですか。ありがとうございました
波ダッシュってのが何かは知りませんが^^;
>>415 そうなのですか。。。
日本語入力はあきらめて全てutf8で統一する道を選びます。ありがとうございました。
420 :
NAME IS NULL :2013/02/13(水) 21:22:08.60 ID:ID7uBA4p
レプリケーションのエラーの復旧について質問です
マスタの現状のデータをスレーブに入れて(スレーブの既存データは破棄)復旧しようと
したんですが上手く行きません
マスタ::
mysql> flush tables with read lock;
mysql> show master status;
[root@CentOS6 ~]# mysqldump -u root -p --add-drop-table -A --add-drop-database > mysql.dmp
ftpで.dmpを移動させて
スレーブ::
mysql> stop slave;
[root@CentOS6 ~]# mysql -u root -p < mysql.dmp
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000075', MASTER_LOG_POS=550;
Query OK, 0 rows affected (0.02 sec)
mysql> START SLAVE;
こんな感じでやっていて、マスタのデータの読み込みは上手くいってるんですが、
START SLAVEした時に以下のエラーがでます
130213 20:07:15 [ERROR] Slave I/O: error connecting to master '
[email protected] :3306' - retry-time: 60 retries: 86400, Error_code: 1045
何が問題なんでしょうか?
自分ではどこをチェックしたら良いのかわからず参っています
何かご意見よろしくお願いします
>>420 error 1045 を調べたら、原因が分かると思います。
mysql付属の perror コマンドでも調べることが出来ます。
比較的よく見るメッセージを表示してくれるでしょう。
deleteコマンドでテーブルの最後の行から消して生きたい場合どうかきますか?
設計を変える
すみません。パッケージエクスポローラの設定が Top Level Elements > Projects ではなく Working sets になっていたのが原因でした。 Eclipse様すみませんでした。
>>420 $ mysql --user=root --host=192.168.0.11 --port=3306
で入れる?入れなければ select * from mysql.userしながらユーザーの設定を
ちゃんとしてあげること。
>>421 ,425
ありがとうございました。いろいろ試してみたんですが
CHANGE MASTER文に不備があったようです
MYSQL5.5なので、CHANGE MASTER文に MASTER_NAME, MASTER_PASSWORD, MASTER_PORT...などなど
全部の情報を書かなきゃいけないようでした。
(/etc/my.cnfに書いても意味ない)
1045は認証に関するエラーなので、認証情報が不十分だった、と。
また質問させてください、ありがとうございました
427 :
NAME IS NULL :2013/02/15(金) 20:27:00.15 ID:iJ83VyLr
多分俺の勘違いなんだけど仕様変わった? IDをプライマリにしてAUTO_INCREMENTに設定して 1,2,4,5って埋まってたんだけど IDをNULLで投げたら 従来はIDが6になってたのに 今投げたら3になってた
5.5.19 create table testtest( id int(4) auto_increment primary key, hogehoge varchar(1) ); で5件データ入れてIDの3,4を消し、 insert into testtest(id,hogehoge) values(null,'z'); で idを見ると6になってたけど
>>426 MASTER_NAMEなんてあったっけ?あとMASTER_PORTも3306使ってる場合は
不要。少なくとも俺が預かってるDBサーバー10数台ではMASTER_HOST,
MASTER_USER,MASTER_PASSWORD,MASTER_LOG_POS,MASTER_LOG_FILE
以外指定してない。
>>428 ありがとう
なんでAUTO_INCREMENT指定したのに使用済みの番号に入ったんだろう
>>429 書き間違えてました、master_hostです
5.1->5.5でもDATETIMEのキャストでひでー目にあったし。 なんでああいう性能に大きく影響する互換性のない変更平然とやるんだろ? あと、ちょっと一生懸命使ってるとOracleが「おまえんとこライセンス違反して ねーだろうな?」って電話がかかってきて死ぬほど鬱陶しい。
まさにmysqlのダメなとこ
>>433 >ちょっと一生懸命使ってると
これどういう意味?
「アンケートにご協力ください」とか言って業務使用かとかソース触ってないかとか グチグチ聞いてくるアレか。 お前らんとこ来た?
ワロタw どうやってmysql使ってるってわかるんだ? 外部ポート開けてるとか?
>>438 よくありそうなインジェクションチェック
>>437 来たことないけどどうしてるの?
無視したらマズいのかね
>>441 うちにも来てないけど、親会社に来たって。
「今忙しいんで」「じゃぁ明日に」のループが1週間続いて根負けしたそうな。
なんかそれ専門のバイト雇って絨毯爆撃してるってさ。
MySqlのTEXT型って文字列をテーブルの外から外部参照してると思うんですが、 例えば、 USERテーブル USER_ID VARCHAR 8 PASSWORD VARCHAR 8 USER_NAME TEXT という定義だった場合、 select USER_ID, PASSWORD from USER とすれば、 USER_NAMEの外部文字列って参照されません? ちょっとわかりにくいですが、 USER_NAMEを使わないクエリが大量に発行される場合でも、 TEXTとVARCHARの違いによる性能劣化がしないような作りにできるかなと思って質問しました。 MySqlをあまり触ったことがないのでこの質問自体がずれているかもしれませんが。
mysqlとdjangoの連携のタイミングを知りたいです。何か良い方法は無いでしょうか? djangoがmysqlにアクセスするタイミングや回数が分かりずらいので、実際にどれぐらいmysqlにアクセスしているのか測りたいと思っています。 mysqlに接続された時間やクエリの内容がわかれば、djangoからmysqlをどれぐらい参照しているかが分かると思ったのですが、 どの程度アクセスされているかを見る方法が分かりません。 ログの場所か便利な監視ツール等を教えていただけないでしょうか?
>>444 クエリの内容をみる場合
* MySQL で set general_log = 1
=> 設定次第だが general_log_file 指定のファイルか mysql.general_log に吐かれる
* MySQL で set slow_query_log =1 と long_query_time = 0
=> 設定次第だが slow_query_log_file か mysql.slow_log に吐かれる
ファイルにはくと mysqldumpslow で解析ができる
* 間に Proxy を挟む
=> 本家 MySQL Proxy (使ったことないのでログ取れるかしらない
=> GREE の g2Proxy (使ったことないのでログが取れるかしらない
=> 自分で作る(うちでは WEB サーバの port3306 を透過Proxy してログ取りしてます
* アプリで頑張る
=> アプリでのクエリ発行にラッパをかませるなど
* その他ツール
=> MySQL Enterprise Monitor とか?
接続タイミング含めて取る場合
* 間にProxyを挟む
=> 略...
* アプリで頑張る
=> 略
* strace でアプリにアタッチしてログ取り
=> strace -f -p PID -s 10000 -o logfile -Tttt -e open,write,read
Windows だとおそらく無理、シングルプロセスでないと解析が大変...
>>443 正直何言ってるのかよくわからんけど、インデックスをきちんと張ればいいだけ
と違う?その条件下でTEXT型を使う意味も不明だし。
>>444 アクセス頻度が見たいだけなら
>>445 がいうようにクエリーログ取ればいいだけだけど、
環境によってはログ取るとパフォーマンスが数千倍とかいうレベルで落ちたり、ログの
容量があっというまにアレレになったりして全然参考にならんかも。
あとはお気楽極楽にSHOW FULL PROCESSLISTかましてポーリングしながら地道に
拾いまくるとか。
>>446 ディスクI/Oの話だとおもうよ。
スキーマに関しては例だろうし本質じゃないよね。
くわしくないから様子見
449 :
NAME IS NULL :2013/02/27(水) 12:29:44.81 ID:57q22fum
同じサーバ内でmysql-develとmysqlサーバのバージョンが違うと悪いことが起きますか? develはyumでmysql-devel-5.1.67-1.el6_3.i686を入れて、 サーバは5.6.10を入れようとしています
mysql使ってるだけならなにも起きないが、 あとからmysqlのライブラリやら利用するソフト入れようとするとコンパイルできなかったり、動きがおかしかったりとか不具合でるぞ っていうか何でそんな変なことするんだ?
451 :
NAME IS NULL :2013/02/27(水) 13:02:58.35 ID:57q22fum
変なんですね… 元々develだけ入ってたサーバに新規にmysqlサーバインストールしようとしてて バージョン違うとまずいのかしらと思って質問しました バージョン合わせて入れます
>>451 >元々develだけ入ってたサーバに
ここがまずスゴイと思った
開始時刻、終了時刻、経過時間を記録するプログラムを作る場合経過時間のデータ型は何が適切ですか?
秒ならINTEGERとかでいいんじゃ? 終 - 始でいつでも計算できるなら保存いらないしな
経過時間でUNIXTIMEが必要なのかいな 日付計算ならINTERVAL使えばよかろう
UNIXTIMEはどの環境でも2038年で打ち止めだからな やばいことやで
ありがとうございます。
初めにTIME型を見つけたのですが838時間で打ち止めとあって足りない場合も出てきそうで質問しました。
>>454 秒までの精度で記録しようと考えてます。
今はExcel VBAで表示されているもの=データなのでわかりやすいように経過時間を記録してますが
終-始で都度計算した方がいろいろいいような気がしてきました・・・
同じ結果に行き着くものを分散させるとたとえば時刻を書き換えたときに不整合起こしそうですし。
勤怠管理とかが同様のデータを記録してそうですがその手の定石とかあるんですかね・・・?
>>458 基本は都度計算だよ。整合性の確保の点や、データベースの肥大化を防ぐという観点から見ても。
例外は都度計算では計算コストが莫大になってしまう場合。今回のように単純な引き算ではなく、ハッシュ値の計算とか時間がかかる処理の場合ね。
あとデータ型は桁が足りなくなる心配があるのなら多少大きめの型を使っておくこと。
460 :
444 :2013/02/28(木) 00:17:54.69 ID:???
>>445 >>447 返信が遅くなり申し訳ありません。
無事、ログがとれました。
ありがとうございました。
preg_match("/a|b|c|d/", $a, $b) というのをMySQL文でしたいのですがよくわかりません select * from table where sample='a' だとaのみしかできません。 複数の値を一致検索させる場合はどのようにかえればよいでしょうか?
>>461 SELECT * FROM table WHERE sample REGEXP('a|b|c|d');
これはできるけど、preg_matchの$bのところ、
マッチした箇所を取り出すことはできないみたい。
463 :
461 :2013/02/28(木) 20:12:15.54 ID:???
>>462 ありがとうございます。
クエリーに正規表現使えるんですね。
とても勉強になります。
どの部分が一致したかはわからないっぽいですね。
SQLクエリーだけでいえればシンプルだったんですが
一旦データを取り出してからpreg_matchするなどして迂回したほうがよさそうですね。
ありがとうございました。
てゆうか、SQLで正規表現使うと遅くね? 俺なら躊躇なくパターンマッチはPHPにやらせるけど。
全部取り出してからPHPで処理するの・・?
>>465 3000万件とかいうテーブルならどっちにしようか考えてパフォーマンステストするけど、
1000件とかその程度のテーブルならSQLで正規表現使わないかな。
467 :
NAME IS NULL :2013/03/01(金) 10:40:07.08 ID:63Y1Haa7
mysqlでdumpしたsqlファイルのCREATE構文のENGINEをNDBCLUSTERに修正して mysql clusterでインポートしようとしたらCREATE TABLEのところで708エラーが出ました。 MaxNoOfAttributesというのが足りないようらしいのでconfig.iniの[NDBD default]で MaxNoOfAttributesに24576を設定してmysql clusterを再起動した後、 「ndb_config -q MaxNoOfAttributes」で確認してみたところ1000のまま変わりなし。 MaxNoOfAttributesってどこで設定するんでしょうか? この場合ってそもそもMaxNoOfAttributesが問題ってことですかね?
468 :
NAME IS NULL :2013/03/01(金) 22:08:18.58 ID:SQ9Ro87M
perconaって使ってる人いますか? 普通のmysqlと比べてみてどんなメリット感じましたか? 経験者いたら教えてください レプリケーションとか、mysqlの標準的な機能は違和感なく使えるもんでしょうか
>>468 Percona ToolkitとPercona Xtrabackupは使ってるけど、あれをMySQLと比べて何がしたいんだ?
>>468 試験した限りでは特にどうこういう差はなかったけど、10秒止まると500万円儲け損なう
システムに持ち込むには枯れ具合が足りないと判断して導入やめた。
すみません、質問スレ、初心者スレ?がほかにあったら誘導してください 伺いたいのは テーブルに日付けの項目があるとき最新の日付けを抽出したい です、 2013-01-23 21:43:23 2013-01-23 21:43:56 2013-01-31 20:34:12 2013-01-31 22:11:59 このうちの 2013-01-31 22:11:59 を吐き出すということです ご教示ください
select max(日付け)じゃだめですか?
474 :
NAME IS NULL :2013/03/11(月) 12:01:09.04 ID:eYy94oAR
質問はこちらで良いでしょうか…。鯖に触り始めたばかりの素人なので初歩的な質問かもしれません。 CentOS6.3にmysql5.6.10をインストールしたのですが、phpMyAdminを導入できずに詰まっています。 phpinfoを見るとmysqlもmysqliも表示されて無いので、ブログなどを頼りにphp-mysqlをインストールしようとしたのですが 「libmysqlclient.so.18(libmysqlclient_16)(64bit) is needed 」というエラーが出てインストールができませんでした。 インストールにyumやrpmしか使ってないのが問題でしょうか…。 なんとか解決したいので、よろしければご教授よろしくお願いいたします。 OSはCentOS6.3。phpは5.4.12です。
MySQL 5.6は出たばかりなので ブログなどを頼りにしても構築できないよ。 勉強だったらCentOS 6.3付属のPHP 5.3、MySQL 5.1を そのまま使ったほうがいいです。
476 :
NAME IS NULL :2013/03/11(月) 13:44:46.58 ID:eYy94oAR
まだ勉強段階ではありますが、性能が良い方を使えたら良いと思っていますのでもう少し頑張ってみます(無理そうなら5.5にします・・・) 自分なりに調べた感じでは、5.5→5.6で問題なかった人がいたので、一旦5.5で各種パッケージを入れた後 mysql-libsのみ削除して5.6を入れてみます…。
消すのはmysql5.5関連全てですね…馬鹿ですね。php-mysqlをlibsと一緒に消さないようにという感じでやってみたいと…。 php-mysqlのみ強制インストールしたらmysql.soなどは出来ていましたが、phpinfoには出てませんでしたのでダメっぽいですが。 こんな私ですがベータ版までには使えるようになりたいです…
日記でやって
どっちみち、本格的に使うんだったら、phpMyAdminなんか使わないから、別のツール探すか、 コマンドラインオンリーでやるかの方がいいのでは?
できるとこから進めりゃいいのに なんだったらソースからビルドを一通りやると 最新のバージョンがいつでも使えるようになるよ。
>>476 ・標準のapache をとりあえず apache テストページが出る状態にしておく
・標準のMySQLを削除(yum)
・公式RPM(RHEL用)で、MySQL5.6をインストール
・phpMyAdmin パッケージをインストール(yum)
・MySQLを起動、apacheを再起動
これだけで mysql5.6 と phpmyadmin 動いたよ。
さくらのレンタルサーバー構成の CentOS5.6 の初期状態からのお話
>>479 逆に本格的な管理コンソールってなにがある?
>>481 ありがとうございます。
phpMyAdminをyumでインストールしたら動きました…。(phpinfoにもmysqlなどが追加されました…)
なんとも素人的な馬鹿をやっていたようでお騒がせしました。
本当になんとも申し訳ない気持ちです。
>>474 同じの出たけど、うちではlibmysqlclient.so が存在しないのが原因だった。
# cd `find /usr -name "libmysqlclient.so*' -print`
# ln -s ./libmysqlclient.so.* libmysqlclient.so
みたいなんで治った。
>>482 結局んとこGUIってmysqlコマンドを見やすくしてるだけなんで、mysqlコマンドが
究極の管理コンソール。
んだな ダンプ、リストアとか鑑みると、結局通信を許可されたホストのターミナルが最強
>>482 mysqlコマンドが最強なんだけど、GUIがいいならnavicatが良い。ただし有償。
フリーなら、A5:SQL Mk-2ってのがある。
じゃあコンソールとphpmyadminと両方を使い分けるのが 攻守とも最強 でFAか
A5は5000万件とか1億件とか抱えたテーブルにまるでポーリングでもしてるかのように頻繁にSELECT * かけまくるんで、おれんとこでは使用厳禁してる。
A5って何?
A列車で行こう5か 懐かしいな
おれもA5だとそれが出てくるw
3つ上も見れんのか。
>>493 A5でそれが出てくる人はマイナーだろ・・・
495 :
NAME IS NULL :2013/03/13(水) 17:05:33.61 ID:DWDg2AuJ
データベースを削除するときさー DROP DATABASE hoge; って打つじゃん? でもこれだけだとログインできるユーザの情報が db に残ったままじゃん? これも手で消さなきゃダメ?
ストアドファンクションを教えて下さいm(__)m 日付テーブル daily_tbl t_date 西暦日付 t_holiday 'a'の時休日(祝日) 日数を指定して営業日付の過去の日付を知るファンクションを作ろうとしているのですが どのようにreturnすればいいのでしょうか? create function ReturnNdate(in num int,in dt date ) returns date begin select t_date from ( select t_date from days.daily_tbl where t_date < dt and t_holiday != 'a' order by t_date desc limit num ) t order by t_date asc limit 1 ; end;
mysqlのコンソールで作業していて、画面をクリアするコマンドってない? いちいち接続し直すのも面倒だし
Ctrl-Lとか効かない?
499 :
497 :2013/03/14(木) 10:27:58.04 ID:???
mysql> ^L となるだけ orz
もしかしてWindows? \! clear とかw
おっと、Winは cls だったかな
497です 情報後出しになってしまい申し訳ない win mysqlのバージョンは5.5.16です う〜んん効かないっすorz \hで見てもそれらしきものがみあたらないし clsは、、、コマンドプロンプトでならそれでいいんですがねぇw
\! がシェル呼びだしだから、 \! cls って書いたんだけど、、、うまくいかない? シェル呼びだしそのものをやりたくないってことか
もしかしてWindowsのmysqlは \! も効かないのか、、そうすると、、 何度もごめんね
505 :
497 :2013/03/14(木) 10:53:20.24 ID:???
いや、レスしてくれてありがとです。 これから出かけますんで、何か手段があればよろしくですm(__)m
506 :
496 :2013/03/14(木) 16:22:56.16 ID:???
自己解決 delimiter // create function ReturnNdate(num int,dt date ) returns date begin declare td date; select t_date into td from ( select t_date from days.daily_tbl where t_date < dt and t_holiday != 'a' order by t_date desc limit num ) t order by t_date asc limit 1; return td; end // delimiter ; select ReturnNdate(25,'2013-03-13'); 実際に使うにはまだ問題点はあるけど、取り敢えずは出来たということで
DBに登録済みのユーザーが99人いたとして、ユーザーIDが001,002.....099のとき、 sqlコマンドで001,002,003以外を全削除するにはどう記述したらよいのでしょうか?
NOT IN (001,002,003)
ありがとうございます Delete * from 'cstm_users' where not in (001,002,003); あってますでしょうか?
ユーザーID NOT IN 〜 だろうがw
あとSELECT して DELETE になおすのは安全のためにも やったほうがいいけど、 * いらんぞ
すみませんでした、直しました ユーザーIDがuser_idの場合ですと Delete from 'cstm_users' where user_id not in(001,002,003); あっていますでしょうか?
自分でテスト用のテーブル作ってそこで確認してみろよ 他人から言われてそのまんま実際のデータで痛い目にあうのはお前だよ?
この場合って文字列にキャストされるよね。なのできっと思い通りにいかないんじゃないかなぁ
ホェア
またMySQLスレでドヤ顔しながらSQLの話をし出すアホが(´・ω・`)
DB板だったころにくらべりゃまだいいほうよ
小学校の宿題を教える的勢いだと どや顔にならざるを得ない サーバー用意して一発投げれば判るだろうに
すんませんunix系mysql-5.5.30の文字化けの件ですが、検索しまくっても分かりません。 sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf して/etcのmy.cnfを開き, [client]箇所にdefault-character-set=utf8 [mysqld]箇所にcharacter-set-server=utf8 skip-character-set-client-handshake そしてsudo chmod 600 my.cnfをしてshow variables like 'char%';をしても +--------------------------+--------------------------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | sjis | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql-5.5.30-osx10.6-x86_64/share/charsets/ | +--------------------------+--------------------------------------------------------+ 8 rows in set (0.00 sec) 手な具合で全然utf8になってくれないんですが、外に何かやる事あったら教えてください。
適当に言うけど、owner誰になってんの?
アホェア
523 :
NAME IS NULL :2013/03/20(水) 07:45:38.92 ID:vIKc7Kkm
※本投稿の拡散歓迎です。 違法派遣(偽装請負・多重派遣・偽装出向・事前面接等)についての刑事罰 【告訴権者=業務委託、準委任、共同受注、業務請負契約および特定派遣(契約・正規)、一般派遣、正規社員】 @職業安定法第44条の労働者供給事業の禁止規定に違反(1年以下の懲役または20万円以下の罰金) ■偽装請負・多重派遣・偽装出向・多重出向 ■事前面接(顔合わせ・面談・職場見学等)と履歴書・職務経歴書・スキルシート等提出による労働者の特定(※) (音声録音で立証可能) A労働基準法第6条(中間搾取の禁止) (1年以下の懲役又は50万円以下の罰金) ■多重派遣・多重出向 ※違法派遣(派遣労働者の特定)→派遣法で認められた派遣労働者ではない→労働者供給事業→職業安定法44条違反というの が前提となる法解釈となります。派遣法における罰則が軽微なのは法律の不備や労働者軽視などが原因ではありません。 違法派遣は全て職業安定法44条で裁くことが可能なため、刑罰の重複を避けるために派遣法には軽微な罰則(主に裁量行政による)しかないのです。 使用者に有利な民事訴訟や労働関係諸局への通報等の対極にあるのが書面(告訴状)による刑事告訴(※告訴先は検察の直告班)です。 労働関係諸局への通報・斡旋による軽微な「適正化」や監督・指導に対して、法律に定められた刑事罰を問うことになり、 違法派遣業者にとって有罪は考えられる限り最大の処罰となります。同時に刑事罰を受けた 担当者が取引先に与える悪印象を考慮すれば、通常会社側は告訴が受理された時点で告訴取り下げに 動くのが妥当でしょう。懲役、前科がつく刑罰が下される可能性から、告訴取り下げの和解金は高額となることが多いのです。 告訴の流れとしては、 刑事告訴⇒告訴受理⇒告訴取下げ要請⇒取下げ和解金入金⇒告訴取下げ となります。告訴の懲役刑適応は犯罪者個人に対してのみですので、告訴する対象は 派遣先・派遣元 社長 派遣先・派遣元 担当者・責任者・管理役員・取締役 派遣先・派遣元 人事管理担当者・人事管理役員・取締役 が妥当です。刑事告訴取り下げの和解金額は犯罪者個人と交渉するとよいでしょう。(告訴状は人数分提出する必要あり)
WHEREで数値比較するとき、等号と不等号って 速度差とかあんの?
コマンドプロンプトで試せばいいじゃん
試せばいいって、誰が?
回答者が
分かったよ、俺が試しま、、、、すん。
529 :
520 :2013/03/20(水) 21:15:48.52 ID:???
>>521 僕に対してですか?
オーナー?rootでやってますがそういう事じゃなくて?
>>529 プロセスの実行ユーザとその設定ファイルのownerが一致してなければ、600は読めないよっていいたかっただけで
正直mysqlのことは知らないのでスルーしてもらってもよかです。
531 :
520 :2013/03/21(木) 02:27:31.19 ID:???
ごめんなさい。今びっくりしてます。マックを再起動したら全部utf8になりました。ありがとうございました。
nice後だし
デーモンの再起動または設定の再読み込み的な行動(SIGHUPかなぁ)をしていなかったってことなんだろうか
534 :
NAME IS NULL :2013/03/22(金) 09:03:49.09 ID:t1ECzSS0
グーグルでSQL WHERE 複数等で調べているのですが答えがなかなか見つからなくて MYSQLの質問スレが見つからないのでここで質問させて頂いてもよろしいでしょうか ソフトウェアバージョン: 5.5.27 - MySQL Community Server (GPL) ID(INT),TIME(DATETIME型),CHECK(VARCHAR(50) 1,2013-03-21 20:37:37,B0GTYEH 2,2013-03-21 22:10:13,'' 3,2013-03-21 22:10:15,'' 4,2013-03-21 22:10:19,'' 5,2013-03-21 22:10:23,'' CHECKのB0GTYEHは商品番号 その他''は空文字になっております mysql> select * from NAME where TIME in (select min(TIME) from yoyaku) and CHECK = 'B0GTYEH'; だとID1を持ってくるので CHECKを''にするとID2を拾ってきてくれるかなと思い mysql> select * from NAME where TIME in (select min(TIME) from yoyaku) and CHECK = ''; としてみると Empty set (0.00 sec)といわれてしまいます IDの2を持ってくるようにしたい時 どのような分を書いていいのか教えて頂けないでしょうか?よろしくお願いいたします
そのまま例を使うと select * from NAME where TIME in (select min(TIME) from yoyaku where CHECK = ''); とか? yoyakuとNAMEがどこから出たのかわからんけど。
536 :
NAME IS NULL :2013/03/22(金) 10:11:57.71 ID:t1ECzSS0
>>535 おお!できました!ありがとうございます
ANDでやるのではなくfrom yoyaku where CHECK = ''で条件をしぼっていくのですね
勉強になりました
ダンプして圧縮するのとダンプしながら圧縮するのと どっちが速いと思う?
myisampackで圧縮済みかどうか調べるにはどうしたらいい?
540 :
520 :2013/03/22(金) 13:50:15.00 ID:???
>>533 スタートストップは何回かやったと思うんだけど、、。
で日本語を含むデータベース作ってターミナルでshow tables from データベース名やると、
その作ったデータベースのテーブルだけが表示されなかったり、
データベース名だけ表示されたりとか、おかしいです。
ターミナルにはutf-8で表示するように設定してあるんだけどなぁ。
これはmysqlの問題ですかね。
「やってみりゃわかる」 ってのは、典型的なアホだよね。 やるまでわからない、やっても理屈はわからない、そういう人が 決まっていう台詞だ。
?
pgr
mysqlコマンドでファイルからクエリ実行するとき mysql -uhoge -ppiyo unko < chinko.sql ってやるけど、このときの chinko.sql を リダイレクトじゃなくて引数に取りたい
546 :
NAME IS NULL :2013/03/22(金) 20:57:07.84 ID:XejvcMJq
mysqldumpのオプションの --lock-all-tables と --lock-tables の使い分けがよくわからない マニュアルを読むと、結局どちらも全テーブルまるごとロックするんだが 使い分ける理由はあるのか?
>>547 その前に「ダンプする前に全てのテーブルをロックします。」
ってあるから意味がわからなかった。
すぐ後ろに「テーブルはREAD LOCALでロックされ、」ってあるのを
見落としてたわ
サブクエリなしにどう書こうとしてるかがわからないけど、必要じゃないかな
555 :
NAME IS NULL :2013/03/24(日) 11:59:17.47 ID:EFgh/klN
※本投稿の拡散歓迎です。 派遣労働者のパワハラ・セクハラ対応策について 下請け労働者、業務委託、派遣労働者は契約期間が短期という制約があり、契約更新拒否をちらつかせた不当な労働強要の実態があります。 雇用形態における壁・差別は法律に直接的規程はなくとも認められているわけではありません。 「正社員の有期雇用労働者に対する優先的地位乱用」による「侮辱罪」、「脅迫罪」、「強要罪」、「傷害罪」、条例違反で刑事告訴できるが、 本稿では刑法ではなく労基法関連の対策に焦点をあてます。 労働基準法第5条(強制労働の禁止)(1年以上10年以下の懲役又は20万円以上300万円以下の罰金) ■精神の自由を不当に拘束する手段によつて、労働者の意思に反して労働を強制してはならない。 例:正規労働者(同僚)による残業の強制。仕事の期限が遅滞した際に「繰り返し」残業を示唆する。 例:派遣の仕事の回し方の裁量を正社員が決めるなどと示唆する。 例:飲み会、昼食、たばこの同伴を強要する。 労働基準法3条 (六箇月以下の懲役又は三十万円以下の罰金) ■社会的身分を理由として労働条件について差別的取扱をしてはならない。 例:社内制度に明示されていない指揮命令系統が正社員と派遣社員に存在する。 派遣社員も正社員と同様に社内制度に準じるという契約上、業務で平等に取り扱う必要がある。 例:社内制度上の上司でもない正社員が命令をしたり、仕事上の指導権・裁量・許可権限をもつこと 派遣契約の内容にそうした区別を制度化するような客観的な証拠がなければ派遣社員側に有利といえる。 例:派遣社員に業務上における裁量を一切与えず、非管理職の正社員が許可を与える 労基法3、5条については、経営責任も問えますので、刑事告訴できる相手は以下のとおり。 派遣先 当該正社員 派遣先 指揮命令者 派遣元・派遣先 代表取締役 刑事告訴(告発)の行い方ですが、内容証明郵便で告訴状(告発状)を地方検察の直告班に郵送してください。
PHPからmysqlに接続してgetmethodの値に応じてデータベースの内容を表示するプログラムを作っているのですが、ユーザーからDELETEやDROP、UPDATEを実行されないようにしたいのですが、どのようにするべきなのでしょうか? SELECT以外実行出来ないようにしたいのです。
grant
>>558 あと出してでもうわけございません。現在レンタルサーバーを借りている状態でして、root権限はありません。
phpmyadminからの操作ではDELETE等の操作を行いたいのですが、PHPからは行えないようにしたいというのが今回の要望です。
後出し、ここに極まる!
レンタルサーバーの制限がどんなんか知らんけど メンテ用とアクセス用でユーザを分ければいいのでは
>>561 1ユーザーに対して、データベースが一つ与えられております。
他ユーザーのデータベースにはアクセス出来ないようになっており、ユーザー分けというのはできません。
mysqli_query($connect,"SELECT * FROM table WHERE".$_GET['where'];
まで入力してあり、GETによってwhereの部分を変化させるというものなのですが、;で区切ることによって、複数のsqlが実行される可能性があると聞いて質問している次第です。
>>560 でも分からな過ぎると出すべき情報と出さざるべき情報の区別も付きかねない場合がある。
そうかもしれんけど、答えるたびにそれを覆す情報が1つだけ出てくるのを 繰り返すのは勘弁してほしいなw
ゴミですわw
確かに脅威的にも思える、、、
ソート後の順番を取得したいのですがどのようにすれば取得出来るのでしょうか? num 98 33 5 1 というソートされたデータがあった時に、where num=5が上から何番目かが知りたいのです
レスがついたらアラームが鳴るようにしてある
>>570 ソート結果を仮テーブルにつっこんで殴りぬける
>>572 それでもいいのですが、レコード数もかなりの数ですのでPHPでその処理を行うとなると処理時間の問題が出てくるような気がするのです。
なんとかデータベース内で完結出来ると高速でいいなと思いまして…。
>>573 自分より前に何個あるか数えればいいさ と考えるんだ
>>574 select count(num) from table where num > 5;
こんな感じですかね?出来そうな気がします。ありがとうございます。
578 :
NAME IS NULL :2013/03/28(木) 01:41:48.30 ID:h9HvxJF0
Windows7にMySQLをいれて使ってるのですが、MySQL WorkbenchからINSERTで日本語を入力した場合はShift-JISになるのでしょうか? テーブルやDBの文字コードはutf8にしています。
アクティベートキーと言うのでしょうか、 名前やメルアドなどをユニークな文字列に加工してメール送信し、 そのメール受信というかリンクURLでdbに書き込みするフローありますが あれはレンタルサーバーでも自作設置できますか? どのあたりを重点的に学べはよいですか?
>>580 WEBプログラミングのセッション管理を学べばいい
DBなんぞいらんので板違いであろう
セッション管理とはあまり関係ないけど、たしかに板違いだね。
そうなんですね。 DBに書き込むのは最後の行程というだけで暗号化と直接関係ないと理解しました それで、セッション管理とも違うということは この暗号化、メールによう有効化フローは俗になんという括りなのでしょうか あとPHP総合質問スレがないのですがご存じのかた誘導ください
>ID出して書き込みやがれ スレタイわろたwww
あの粘着野郎いなくなったのか
枯れ木も山の賑わい・・・じゃねーよ そんなこと言うと出てくるからやめれ
検索のとき、今でもインデックスはいっこしか使わないの?
多分、荒らしてたヤツは死んだんだよwww
インデックスされてないint型のカラム1億行をソートするとどのくらい時間が掛かるのでしょうか?
595 :
NAME IS NULL :2013/04/06(土) 20:55:08.18 ID:yj2IRnpx
mysqlに誤って半角カンマを文字列として投入してしまいました。 そこでその半角カンマを / 半角スラッシュに変えたいと思いますが どうすれば良いでしょうか? replace ( name , '\,' , '/' ); ↑ これは間違いなのでしょうか?
キーボードショートカットのみで動く、オートアンカーで、外部プログラムを使用しないものってないですか?
↑すんません誤爆
>>595 なんでカンマをエスケープしてんの?
あと、もしかしてその関数でだけ発射しようとしてるわけじゃないよね??
599 :
NAME IS NULL :2013/04/07(日) 20:33:19.76 ID:BFIJGW87
>>598 カンマはSQLの一部なので
エスケープしないと正常に動かないと思ったからです。
半角カンマは、mysqlではどういう風にエスケープするのが常套手段なのでしょうか?
要らんと思うが
601 :
NAME IS NULL :2013/04/07(日) 23:52:34.30 ID:MQ348hCc
date型のカラム作ってcsv形式からインサートしようと load data infile '~csv' into table jkfdjkhf; こんな感じでcsvファイルには2008-11-3って記入してやってみたけど入らない。 何で? ERROR 1292 (22007): incorrect date value:'2008-11-3' for columnとかなんとか表示される
602 :
NAME IS NULL :2013/04/07(日) 23:54:19.16 ID:MQ348hCc
ちなみに普通に手動でインサートするとちゃんと入る。 CSVで読み込んで入れようとすると入らん…
603 :
NAME IS NULL :2013/04/07(日) 23:57:59.42 ID:MQ348hCc
もしかして文字コードとか関係あるのだろうか? う〜んようわからん…
SELECT ... INTO OUTFILE ... で反対に出力してみたらどうかな。
マジレスするとそんなマシンのスペック依存な質問に 環境の条件なしに答えられるはずがない。
606 :
605 :2013/04/08(月) 00:29:22.96 ID:???
あ、すまんだいぶ前の質問に答えてた・・・ 無視してください。
607 :
NAME IS NULL :2013/04/08(月) 02:02:35.37 ID:VLO7nAcV
http://www.rupan.net/uploader/download/1365479037.png 上の画像のようなテーブル構成で、
出力結果弐の結果を得たいのですが、
join onのキーを複数指定するにはどのようにSQL文を書けばよいでしょうか。
出力結果壱のSQL文を二つ書けば済みそうですが、出来れば一つのSQL文にまとめたいです。
以下がエラーが出たSQL文です。
*******
select
学科試験.教科,
学科試験.タイプ,
学科試験.備考
from 選択教科
join 学科試験
on 選択教科.教科1= 学科試験.教科
on 選択教科.教科2= 学科試験.教科
where 選択教科.名前 = "高橋"
select a.name, b.name from ... join exam a on ... join exam b on ...
>>609 先ほど試してみました。
違う方へのレスと勘違いしてしまいました、申し訳ありません。。
うまくSQL文を作れず、examで調べてみたのですが情報が見当たらず、
examという構文は省略形か何かでしょうか。もしよければヒントを教えて頂けるとうれしいです。
バージョンはMySQL5.5.16です。
>>608 画像が見れないんだけど。
examというのは学科試験テーブルじゃないかと思う。要するに、同じテーブルを二回別名でjoinしろってことだと思う。
画像見れないからわからないけど、ひょっとしたらunionを使うケース何じゃないかと思ったり。
select 学科試験.教科, 学科試験.タイプ, 学科試験.備考 from 選択教科 join 学科試験 on (選択教科.教科1=学科試験.教科 or 選択教科.教科2=学科試験.教科) where 選択教科.名前='高橋';
解決したみたいだけど、2回joinっていうのは join 学科試験 a on 選択教科.教科1= a.教科 join 学科試験 b on 選択教科.教科2= b.教科 ってやるんだよ
join の on を書くのが面倒くさいんだけど ON無かったら自動で同じ名前くっつけてくれないのかね
618 :
NAME IS NULL :2013/04/10(水) 13:19:34.76 ID:y3YmvSXB
not in を下記のような羅列でなく ルールでまとめ書きしたいとき どう書けばよいでしょうか? DELETE FROM user_table WHERE user_list not in ('0000','0001','0002','0003','1000','1001','1002','1003');
>>618 ルールって?
中にはSELECT文も入れられるよ
>>620 ありがとうございます
ユーザーが0000から9999までとびとびに登録されていまして
そのうち上記のように除外した処理をしたいのですが
例えば0000から1003までは除く
としたいときはどう記述しますか?
not in (SELECT user_list FROM user_table WHERE CAST(user_list AS INT) BETWEEN 0 AND 1003) とか? でも、その条件ならNOT IN 使わなくても CAST(user_list AS INT) NOT BETWEEN 0 AND 1003 だけでいいような
なんでこのスレでやんの
なんでいまごろいってんの
mysqlってCAST使えるの?
4.0.2以降はね
そうか・・・ いつのまにかそういう時代になったか・・・
>>616 返事遅れましたがありがとうございます。
とても参考になりました。
629 :
NAME IS NULL :2013/04/10(水) 22:59:59.00 ID:y3YmvSXB
>>622 どうもです!
>例えば0000から1003までは除く
というのは
CAST(user_list AS INT) BETWEEN 0 AND 1003
でできました。そして質問の本題
not in ('0000','0001','0002','0003','1000','1001','1002','1003');
に応用しようとしたのですが
(CAST(user_list AS INT) BETWEEN 0 AND 0003) AND (CAST(user_list AS INT) BETWEEN 1000 AND 1003)
うまくいきません。どこをミスッていますか?
ちょっと笑った
でもINTでうまくいったっていってるよ 4なんてずいぶん古いしできるようになってるんでない
>>630 どこが可笑しかったですか?煽っているわけではなく、純粋に知りたいです
教えてください(^o^)
>>633 もう一息で出来るところまで来て、惜しいなと思いました。
昔の自分を見てるようで思わず笑ってしまいました。
悪意はありません。あしからず
そんなふうには読めないよ笑
>>634 なるほど!ていうことは、スキルアップされた現在のあなたは正解をご存知だったのですね?
いいえ、知りません
わからないのに惜しいなと思ったのですか?
あ!ちなみにわたしは質問者ではありまへん
なんとなく惜しいと思いました。 ごめんなさい
PHPからforループで大量(300件ぐらい)にSELECTやUPDATEするプログラムを実行すると CPU使用率が100%で張り付いてしまうのですが、これで正常でしょうか?
100%食ってるプロセスは?
>>641 ループの内側にusleep(1)を入れるといいよ
一回のselectで300件ならそんなになるのはおかしいけど 1件取り出すselectを300回やってるのならそっちのがおかしいw
皆さんバックアップツールは何を使ってますか? sxdをCronで1日一回回そうとしてるんだけど、上手く行かず半泣きです。
一旦DB落としてファイルを丸ごとzipで固めてる
レプリカ停止してHDDのスワップイメージをコピーしてる
ほうれん草はアクを抜かずに食べています
他は知らんが、ダンプは早くて良いと思う。
mysqldumpなら稼働中でも躊躇なくバックアップできていいぞ
654 :
NAME IS NULL :2013/04/14(日) 22:41:03.42 ID:xMnVOxrx
コマツナとリンゴのジュースが最強
()
>>654 リンゴとみかんいれときゃだいたい味まとまる
db毎にロックだと、最初と最後で状態にズレが起きるんすよ そのままリストアしても動かねーっすよ
インデックスつけておけば全体のデータが何億行ってなっても平気?
なんかこの前も似たようなのみた気がするが そんなのDBの構成やマシンスペックとか環境次第。
なんでうちのジュースが小松菜入りって知ってるの?
普通は小松菜100%
フルーツジュースに小松菜入れるのは常道だよ
フジテレビは高額の税金(1000億円以上)を納税していて、社会に貢献しているテレビ局です。
スレチ
日本で商売する上での最低限の義務だ 勘違いするな
>>668 社会貢献はキー局ならあたりまえ
わざわざ書くから余計嫌われる
672 :
NAME IS NULL :2013/04/21(日) 18:52:14.84 ID:epAqGqBw
改正労働契約法が平成25年4月1日(一部は昨年)より施行されました 対象者:一般・特定派遣、契約、パート等の期間の定めのある労働者 1 同一労働条件(通勤手当て、社食、社員寮、有休) ■福利厚生(社食、社員寮、厚生施設、社内託児所、検診、社員旅行) ■通勤、専門研修(通勤手当て、社費留学、研修・資格手当て) 2 雇用止め(合理的な理由のない更新拒否の違法化) ■雇用止め禁止(実質的に条文は正規社員に準じる扱い) 適用例: ・2〜3回以上の契約更新のある場合 ・数年に渡り雇用するなどの長期雇用を面談時に示唆された場合(※1) ・更新拒否の内容に雇用整理の要件(合理的かつ社会通念上相当な事由)を満たしていないとき ※1 一般・特定派遣で事前面接、職場見学などの面談があった場合は、更新止め訴訟と 並行した刑事告訴による職安法44条の違反となり、派遣先・派遣元の責任者・代表者は別途刑罰を受けます。 違反企業・個人に対する対策 労働条件(通勤手当て、社員寮等) 1 労働基準法3条 (六箇月以下の懲役又は三十万円以下の罰金)による刑事告訴 (※2) ※2 派遣先・派遣元の指揮命令者(課長〜本部長まで)、苦情管理者、人事担当役員、社長に刑事告訴できます。 同一労働条件の判定 派遣契約書に明記される職務内容が例えば「業務書類作成」であった場合、 正社員が業務の一部として業務書類作成の職務をして、交通費等が派遣社員だけに支払われないのは労働条件 の差別にあたると見ることができます。派遣元がどうしても交通費を支払いたく ない場合は、正社員がやる仕事を派遣社員に任せず、当該派遣社員の受け持つ職務を明確に分離する必要があります。
ひとつのテーブルから、 ・条件を満たすデータは全部 ・条件を満たすデータが20個以下の場合は満たさないものも含めて20個 という風にselectするにはどうすればいいですか?
>>673 美しくないけど後者だけなら
SELECT * FROM (
SELECT .. FROM .. WHERE 条件を満たす
UNION ALL
SELECT .. FROM .. WHERE 条件を満たさない
) AS dummy LIMIT 20;
SELECT,UPDATE,DELET,DROP,INSERT等の基本的な操作については理解したのですが、SQLの高速化や効率化のために読むべきサイトや書籍などはありませんか?
>>675 データベースパフォーマンスアップの教科書。
MySQLの元開発者がマリアの会社に移籍ってニュースやってた
日本人の払った貴重な血税から ゴキブリ在日朝鮮人に生活保護が支払われている ゴキブリ在日朝鮮人の一家族で年間600万円である ゴキブリ在日朝鮮人の2人に1人は生活保護だ これより安い給料で働いている日本人が 少ない給料から支払った税金が ゴキブリ在日朝鮮人の生活保護になっている ゴキブリ在日朝鮮人は生活保護をもらって 毎日パチンコをして遊んで暮らしてる ゴキブリ在日朝鮮人の犯罪者も非常に多い ヤクザの2人に1人はゴキブリ在日朝鮮人だ 日本社会の寄生虫 ゴキブリ在日朝鮮人 日本から出て行け! ゴキブリ在日朝鮮人
ユーザーIDの0番から500番までを一括削除したいです 下記だと結果が0件なのですがどう書き直したらいいでしょうか? DELETE FROM {$mydb->users} WHERE (CAST(userID AS UNSIGNED) not BETWEEN 0 AND 500);
まずSELECTで確認した方が。 not入ってるけどそれはいいの?
ありがとうございます 下記でCAST文に誤記はないでしょうか? SELECT userID FROM {$mydb->users} WHERE (CAST(userID AS UNSIGNED) BETWEEN 0 AND 500);
問題ないと思うよ、{$mydb->users} にはちゃんとテーブル名入ってんのかな? ってそもそもどこから呼んでるのか知らないけどさ。
ありがとうございます CASTうまくいかないです 試しにnot in (0,1)みたいにすると削除されるのでテーブルは見つけてるはずなんですが
元はどんなデータなのさ。 とりあえずテストデータ作ってやる限りにはうまくいってるけどね
mysqlって3つぐらいデータベースをjoinするとインデックス使われなかったりで処理遅かったけど最近のバージョンは改善してきてる? 普段ポスグレなんだけど客がmysqlがいいなーとか言うからその点が改善されてるなら使おうと思うんだけど。
MySQL: 爆速 PostgreSQL: 鈍足 世間では、こんなイメージだと思うんだがどうだろう。
急に変なの沸いてきたな
なんでデータベースjoinすんの?同じdb内でテーブルわければいいのに
すんません、テーブルのjoinでした。 変なのって俺の事か。
Webサービス作ると高確率でmysqlの文字コード関係にはまってしまう。
692 :
NAME IS NULL :2013/05/23(木) 00:44:34.04 ID:NOkY2eoz
もう全部utf8mb4でいいよ utf8だと絵文字の検索がうまくいかないのな
安定のutf8_general_ci
phpmyadminからのエクスポートとかmysqldumpってあるじゃないですか? あれって外部キーの関連性とか無視で書き出すので、そのままインポートしてもdrop tableのところで最初に親テーブルから削除しようとして エラーになるんですよね だから毎回親テーブルの削除部分を切り取って、末尾のほうにコピペしてるんですが、 そういった関連性を気にしてエクスポートする方法ってないんですか?
データベース単位でやるんじゃなくてテーブル単位でdump
それつまりファイルが複数できてしまうってことですよね? 一発でできないんでしょうか?
mysql使ったことないから実際のところは知らないけどさ、 リストアできないdumpを作るって事はさすがにないと思うんだ。 風評被害与えたいのかね
699 :
NAME IS NULL :2013/05/23(木) 13:44:10.90 ID:PMAw0a84
dump中にエラーが出るわけではないのでforceは関係ないと思います。 dumpはうまくいくんですが、インポートする際にa foreign key constraint failsでエラーがでます。 あるテーブルに外部キーを設定していて、その親テーブルを先に削除しようとするので、このエラーが出ています。 ちゃんと関連性を気にして、親テーブルのdrop&insertを最後にもってきてくれるようにしてくれればいいんですけどねぇ。
テーブル毎にdupmして子テーブルから順番にinsertしていきゃいいんじゃないの? SET FOREIGN_KEY_CHECKS=0;で外部キー無視してinsertする方法あるけど、これは整合性が怪しくなるからおすすめしない。
リストアできないダンプ作ったこと無いわ
phpMyAdminがおかしいだけなんじゃねーの? プログラマならコマンド操作覚えた方がいいと思うぞ。
皆さん回答ありがとうございます
ということは通常はmysqldumpやphpmyadimnからのエクスポートすれば、テーブルの関連性を気にして書き出してくれるってことですよねぇ
何で俺のだけおかしいんだろ?
>>701 そういう手間がかかる方法じゃなくて一発でやりたいんです
そこまでするなら今まで通りの方法のほうが早いです
705 :
NAME IS NULL :2013/05/23(木) 19:28:16.84 ID:w7XFZRb5
id|name|date 1|aaa|2013-05-20 2|bbb|2013-05-21 3|aaa|2013-05-22 こういうテーブルがあったとして条件が 「nameの重複なく、最新のdateに並び替え」したいと思っています。 結果は、idが3と2だけ抽出されるようにしたいのですが、 サブクエリを調べてもよく分からず、混乱しています・・。 どういうSQLを書けば良いか教えてください。
俺は普段データベース空の作ってるけど、この場合は既にあるデータベースに対してやってんのか。 dumpしたファイルのDROP TABLE文にはCASCADE入ってないの?
>>705 SELECT * FROM test where (name,date) in (SELECT name,max(date) FROM test group by name)
>>705 select distinct on(name) id, name, date from test order by name,date desc;
709 :
705 :2013/05/23(木) 21:20:50.60 ID:w7XFZRb5
>>707 708はエラーになりますが、707の方法で出来ました!
ありがとうございました
>>707 mysqlってこんな書き方できるんだね
existsで記述するよりスッキリしてていいな
>>704 mysqldumpに--tab(-T)使ってない限りは、先頭に
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
って書いてあるはずなんだけどな。。
入ってなければ自分でSET FOREIGN_KEY_CHECKS=0書けば多分ok。
>>711 うわっ
なぜかその部分がコメントアウトされてましたorz
これでmysqldumpではいけそうですが、
これってphpmyadminからのエクスポートではこの設定付け加えることできないんですかね?
そういうオプションもなさそうなんですが。。
こっちは手でかくしかないのかな。
715 :
NAME IS NULL :2013/05/24(金) 18:26:56.73 ID:n0sJTDIy
wikipediaのデータをMySQLにインポートした時、 InnoDBだと、数日かかりました MyISAMでやり直したところ、数十分でした InnoDBはなんでこんなに遅いんでしょうか?
>>714 うわーありました
どうも馬鹿ですみませんでした
本当にありがとうございました
create table test like test1; ってやっても外部キーの設定がコピーされないんですが前できたような気がします 私の勘違いでしょうか? もしくは外部キーの設定もコピーする方法があれば教えて欲しいです
日付の単位じゃなくて、曲の時間を表す何分何秒みたいな形式あるじゃないですか? 5:10 だと5分10秒間を表す、みたいな形式のことです。 これってそのカラムはどういう型にすればいいんでしょうか? 当然あとからソートとかしたいです。
timestamp
>>720 でもこの型調べると日付で使われてるかたですよね?
insertするときどうやっていれたらいいんですか?
'05:10'
だけでいいんですか?
何年何月とかいう情報はどうしたらいいんでしょう?
日付は000-00-00でいいじゃん
time型でいいんじゃない?
あ、time型なんていうのあったんですね。 こっちのほうが良さそうだったのでこっち使ってみます。 ありがとうございました
そして、24:00を越えるdurationではまると。
>>725 TIME型は±838:59:59までいける。
ロールフォワード、ロールバックの時に使うジャーナルファイル(ログファイル)ってあるんですが MySQLではどうすれば見れますか? ジャーナルファイル データ更新前後の値を書き出してデータベースの更新記録を取ったもの
id|name|date 1|aaa|2013-05-20 2|bbb|2013-05-21 3|ccc|2013-05-22 <option value="">全て</option> <option value="aaa">aaa</option> <option value="bbb">bbb</option> <option value="ccc">ccc</option> 「全て」を選択した時に、全て出力 他選択された時はそれぞれ出力されるmysql文があればご教授お願いします
>>729 よく意味がわからんが、そういうのはプログラム側の仕事かと。
>>729 valueに直接where節を書けばいい
SELECT * FROM hoge WHERE $value;
としておいて、
全て は value="1=1"
aaa は value="name='aaa'"
といった感じかな。
完成したらURLを教えてくれ。絶対だぞ
>>730-731 最初は
if(isset($POST_['name'])){
mysql_query("select * from table where name = '{$POST_['name']}'");
}else{
mysql_query("select * from table");
}
こんな感じで書いてたんだけど、mysqlに纏める方法あるかな?
と思って聞いてみたんだ。プログラム側了解です
>>731 なるほど、その発想は出てこなかった・・・
POSTの変数名間違ってね?
あとさあ別に良いんだけどmysql_の関数って今は非推奨だからmysqli_使ったほうが良いよ もっと言えばPOSTの値を使うならプリペアドステートメント使ったほうが良いよ
>>732 ネタだろ、インジェクション気にしておけw
その手のクエリはまとめてるけど、
>>732 を読む限り、まだそのやり方してるほうがいいと思う。うえから目線でごめんね
>>732 そのやり方のまま「全て」を検索するときは、具体的には
value="aaa' OR name='bbb' OR name='ccc"
とすればいいんじゃないかな。
完成したらURLを教えてくれ。絶対だぞ
DBにそのテーブルしかおいてなくて尚且つSELECT権限しかないならいいんじゃない?
' が足りてないからな
実際に動かして出力されたエラーメッセージの内容を読み上げたかのようなレスだな
EXPLAIN ><、
足りてないなら足しゃいいだろ・・・
インジェクションネタってあんまり食い付かないもんなのか
EXPLAINについて語ろう!
わかって無いだけだと思う
>>746 インジェクション可能だから問題だねって話には食いつくかと。
食いつきたくなるような書き方かどうかってことだなぁ
インジェクションはMySQLていうかPHPとかの言語スレのほうで話題になるんじゃない?
CentOS上で動くMySQLに読み書きするC言語のプログラムを書きたいです。 サンプルソースコードなどがあるプログラミングの参考となるサイトはないでしょうか。 または書籍など。 MySQL C API、Connector/C、Connector/ODBC当たりを使うのかなと思うのですが、 探し方が悪いのかそれらの導入から使い方までが分かりやすく書いてあるサイトが見つかりません。 ご存知の方がいましたら教えていただけると助かります。 ODBCに関しては、例えばDBをMySQLからPostgreSQL等に変更した場合もソースコードの変更は ほとんどしないで切り替えられるのかと思いました。
質問です 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
754 :
753 :2013/06/09(日) 15:13:03.94 ID:???
ちなみにphpMyAdmin4.0.2でデータベースが5.5.31です
755 :
753 :2013/06/10(月) 06:32:01.03 ID:???
あれからいろいろとやっていて、そもそも自分のやりたいことは 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)) みたいに書いたところ(たぶん)思い通りの感じになりました もっと効率良い方法がありましたらお願いします
757 :
お質問 :2013/06/11(火) 12:51:12.84 ID:???
会社の案件管理にデータベース使いたいとおもてます mySQLとPHPもしくはperlCGIで構築したいです。 けどぜろから作るより既存のフリーテンプレが何かあるんじゃないかと。 定番のなにかオススメありませんけ
758 :
お質問 :2013/06/11(火) 12:55:17.37 ID:???
やりたいことは ・折衝案件登録 ・受注済か折衝中か ・作業の進捗 ・担当者ひもづけ ・受注額と外注費、粗利 これらを月ごとに〆て会議資料にしたい
>>758 最後の一個以外はRedmineとかでいけるが。
RDBの勉強を始めたところなのですが、トランザクションのロック単位が分かりません。 トランザクションの中で異なる複数のテーブルを順番に読み書きしている場合、 START TRANSACTIONを実行した瞬間から、これらの複数テーブルあるいは対象レコードに 一斉にロックがかかるのでしょうか。 そうならないと矛盾が起きると思うのですが。
>>760 「読み取り一貫性」「トランザクションレベル」とかでググれ
誤:トランザクションレベル 正:トランザクション分離レベル
>>760 お前みたいな素人の考える範囲で収まってると思うか?
その道のプロがいるんだから大体進んでいるのだよ、世の中は。
トランザクションは難しいよねぇ。 ISAMをイサムと読んでる俺には無理だったよwww
>>760 START TRANSACTION を送信した瞬間にDBMSが
「お、このアプリはテーブルAとテーブルBを使いそうな予感がしたのでロックしておこう」
という処理をするのは矛盾以前に不可能と存じます。
いやあ^^; 俺もさっき、ド下手なコード書いたらロックが掛かって困ったw 頑張って競合しないようにコード修正しよ。
768 :
NAME IS NULL :2013/06/13(木) 07:02:48.95 ID:sO0an5Z/
mysqld refused connect from localhostとでるのですがどうしたらいいですか?
やっとロックを回避するコードにでけたw疲れたぁ〜
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って結局なんのか?
>>771 > Causes InnoDB to automatically recalculate persistent statistics after the data in a table is changed
> substantially. The threshold value is currently 10% of the rows in the table. This setting applies to
> tables created when the innodb_stats_persistent option is enabled, or where the clause STATS_PERSISTENT=1
> is enabled by a CREATE TABLE or ALTER TABLE statement. The amount of data sampled to produce
> the statistics is controlled by the innodb_stats_persistent_sample_pages configuration option.
http://docs.oracle.com/cd/E17952_01/refman-5.6-en/innodb-parameters.html
>772 迅速なレス、サンクス。 URL先見ると5.6.6から自動で入る設定値か。 今回の場合は、5.0への移植だからエラーが出たってことやな。
774 :
NAME IS NULL :2013/06/14(金) 23:22:43.47 ID:7XeoKqBC
相談があります。
ゲーム情報サイトを作っていまして
ページの右上に、次のように登録情報数を表示させたいです。
登録ゲーム数(国内):XXXXX本
登録ゲーム数(海外):XXXXX本
このとき、データ件数を高速で取得するため
トリガを使う方法を考えました。
参考:
ttp://developer.cybozu.co.jp/archives/kazuho/2009/06/mysql-innodb-se.html ですが、これだと「国内」と「国外」でテーブルを分けないといけません。
英語版サイトも作る予定ですので、
日本のゲームと世界各国のゲーム情報は等価で扱いたい、
つまり同じテーブルで管理したいです。
データ総数は10万件ほどになる見込みで、
トリガを使わないインデックス全スキャンも避けたいのですが、
上記の件数表示を高速で行う何か良い方法はありませんでしょうか?
DBに持たせない
10万件なら全スキャンしても大して時間かからんろ
777 :
774 :2013/06/15(土) 01:06:19.65 ID:o0n+i+Qz
全ページ共通のヘッダで右上に表示しようとしているので アクセス数が多いのです
毎回スキャンっていうのがどうもな INSERTした時にどっかに数保存しとけばいいやん
779 :
778 :2013/06/15(土) 01:20:25.79 ID:o0n+i+Qz
そうですね。 削除や発売国を更新した時も数を更新して。 ただ荒らし対策で(Wikiのように誰でもデータを更新できる) 特定ユーザーが登録したデータの一括削除機能もあるのです。 ちゃんと何件削除したかを制御して数を更新しないと・・・ バグの素ですね・・・。 そして2行目に書いた「削除や発売国を更新した時も数を更新して」についても 複数ユーザーがほぼ同時に同じゲームデータの発売国を更新したときとかに きちんと制御しきれるか・・・頭が痛い・・・。
>>779 微妙な処理をするときは、あらためて件数を数えたらどうだろう。
+1するとか-1するとかじゃなくてinsertとかしたときに数えなおせばいいじゃん 10万件なんてそんな負荷掛からんのだから
782 :
781 :2013/06/15(土) 01:49:23.70 ID:o0n+i+Qz
正確な数字を取ろうとすると
テーブルの全レコードをロックして数えることになるので
正確な数字は諦めるか・・・。
正確な数字は諦めて
>>780 さん案になりそうです。
トリガ案も大量INSERTとDELETの負荷が恐いし。
皆さんありがとうございました。
なんでお前は名前欄に他人の番号入れるんだよ?
>>779 だからDBにもたせなきゃいいってのに。常に厳密な数字が必要とは思えんし
あ、リロードできてなかった。 いい方向に倒れてよかったよかった。
寝ぼけてんのか
どのくらいのアクセス数を見込んでるのかわからんが、 この程度の話を聞いてるような奴が作ってるページは毎回count(*)やっても DBに負荷かからないから安心していいよw
w
MySQLでチェックポイントファイルを作るにはどうすればいいんでしょうか? 教えてください。
>>789 チェックポイントファイルは作れません。
普通に全バックアップしてください。
mysqlって複数のテーブルで共有して使えるauto_incrementとかないの?
>>791 ほかのDBにはあるの? 便利そうだなそれ
MySQLにそんなものがあったら 一つのテーブルを操作するときに全部のテーブルとの操作を制御しなきゃならなくなり 構造上作れないと思え ・・・・・・と思ったが『数える用』のテーブルでも作って→そこにINSERTして→帰ってきたauto_incrementの数値を取得 すりゃ解決するな
>>792 postgresqlはシーケンスオブジェクトっていう、selectするたびに数字が増えるものが別途存在するので
複数のテーブルから利用することもできる
auto incrementに相当する serial は デフォルト値にシーケンスオブジェクトが設定されたintカラム
>>794 ほほー
そろそろMySQL卒業しよっかな
オラクルだからいつかは卒業しなきゃと思ってたんだけど
mariaはどうなのよ
ポスグレに移籍することはあってもマリアちゃんだけは無いわ
そんなこと言ってもこれから先はマリアが主流になってくるよ
>>800 正直そればっかりは無いと思ってるけど、それどこ情報?
もしマリアちゃんが主流になるなら考え改めないとなー・・・
高速にしたいから情報を数値化してBIGINTで保存してるけど 他のDBって30桁ぐらい数値保存できるの?
BIGINTは64bit幅 他もintならそんなもんだけど、numeric型が10万桁超えられるとかあるよ
これでマリアちゃんに興味持ってドキドキしながらマリアちゃんについて調べ そしてとうとう使ってみたらあまりに気持ちよくて 『もう私マリアちゃんじゃないとダメなの』 なんて言われたら完全に寝取られ展開なんだが
805 :
お質問 :2013/06/20(木) 16:18:03.57 ID:???
XAMPPてのをインスコしたけど htdocs内に置いたphpをIEで呼び出すと強制的にXAMPPのTOPページが出てしまうのですけんど どうしたらよいでしょうけ
板違いだろ
twitterってまだmysql使ってんの?
>>810 へー
マリアちゃんってマイちゃんの完全上位互換なの?
まぁもうちょい様子見かな そんな技術競争してるわけじゃないから勝ち馬に乗るだけでいいや俺
>>808 (追記@17:20)MySQLのバグリポートによると、これは「バグ」だったそうで、
ビルドシステムが間違って間違ったコピーライト文字列を埋め込んでしまったのが原因だったとのこと。
これを修正するためリビルド作業を進めているという。
>>798 へぇぇ。
その機能postgresqlのgenerate_seriesに似てる
ま、スレ違いだけど
mysqlの質問スレが無いのでスレ違いだったらスミマセンが 複数の行をそれぞれ違う値でUPDATEする場合、みなさんはどのように行なっていますか? 行の数だけsql文を実行するのはスッキリしないような気がするのですが
そんなん値の内容によるだろ
ここはmysqlのスレでは無いのか? case when で値に応じてupdateするのだって出来るでしょ?
>>819 本スレと質問スレがわかれてるようなスレもあるからな
>>819 case when って使ったことないんだけど
どうやって使うのか ちょっと教えてみそ
MySQLにはCASEなんてなかった。
あるあるよ
caseが無いとか考えられんw
827 :
NAME IS NULL :2013/06/22(土) 02:22:22.69 ID:rX4J05Bq
Mariaさまがみてる
828 :
NAME IS NULL :2013/06/23(日) 00:51:49.31 ID:L7p1eLxV
MariaとMySQLだとどっちが使いやすいんだろ?
完全互換らしいじゃん phpMyAdminとかもそのまま使えるらしいよ
MariaDBって、MySQLの所有者がOracleになって オープンソース的にMySQLがきな臭い感じになったから 元々の開発者達がOracleを出て独自にMySQLと 互換性のあるRDBMSの開発を目指したのもなんじゃなかったっけ? で、先に書いたのきな臭さのせいでfedoraやSUSEとかの LinuxのディストリビューションがMySQLをMariaDBに パッケージを変えたりしてるって聞いたことがあるよ。
完全互換って、今まではいいけど これからの進化にも追従し続けられるの?
832 :
NAME IS NULL :2013/06/23(日) 06:55:49.12 ID:8zWJ1wek
insertしたところ、 オートインクリメントで割り振られるプライマリキーがduplicateだという変なエラーが出ました 確認したところ、既にあるとmysqlが言う値を持った行はありませんでした alter tableでオートインクリメントの値を一つ増やしたら、エラーは出なくなりました これにより一つの数字が使われないことになりました なんでこんなことが起きるのでしょうか?
MySQLがフリーでも使えるから使っていたというものが追従してくれるっしょw
>>832 いろんな理由があるだろうけど、、
トランザクションで使ってアボートしたとかじゃね
トランザクションで思い出した MySQLって複数のDBをトランザクションする方法ないの?
>>812 けど、FC19は、がっちりmariadbに置き換わっているよ。
ライブラリ依存も要所要所mariadb使うようなってる。
単純にRHEL7は、FC17/18ベースだから決定してないってことなのかねぇ。
mariaちゃんについて知ってる人に聞きたい commitできるからnnnodbしか使ってないんだけど、テーブルロックできなくて困ってます mariaちゃんはcommitとテーブルロック同時にできたりするの? それともmysqlでも出来る?
InnoDBはインデックスが無けりゃテーブルロックになるど
つまりテーブルロックしたいときは いったんインデックスを削除すればいいのね
842 :
NAME IS NULL :2013/06/25(火) 15:10:17.34 ID:x01cWXy8
844 :
NAME IS NULL :2013/06/26(水) 21:12:46.41 ID:bICJLEIN
root 削除しちゃいました。。。 OS Windows7 MySQL 5.5.25a for Win32 pm x86 ユーザーはいくつか作成していますが、GRANT できるユーザーはありません。 (作っていたと思っていたのが勘違いしていた。。。迂闊でした。) Linux では mysqld_safe --skip-grant-tables から新規に root を作成する手順があるのを知ったんですが、Windows ではできないようです。 一応同じコマンドを打ってみましたがプロンプトが固まってしまうだけでした。 この状況から新たに root (ではなくてもGRANT権限のあるユーザーなら良いですが)を作成することは出来ないのでしょうか? 途方に暮れています。 よろしくお願いします。
845 :
NAME IS NULL :2013/06/26(水) 21:14:26.35 ID:bICJLEIN
追記。MySQL は xampp でセッティングしたものです。
my.cnfの[mysqld]セクションにskip-grant-tables書いたら? それか、 mysqld.exe --defaults-file=my.iniのパス --skip-grant-tables --console
ごめんmy.cnfじゃなくてmy.ini
848 :
NAME IS NULL :2013/06/27(木) 01:13:08.84 ID:lBn0AKBM
>>846 ありがとうございます!!!!!!!!!!
めっちゃ助かりました!!!!!!!!!!!!!!!
849 :
NAME IS NULL :2013/06/27(木) 11:04:25.94 ID:qS/rFdSB
MariaDBをソースからビルドしてRaspberry Piに導入した。でもMySQLも消せない。パッケージで入れたから消すと依存関係で問題おこしそうで。
>>849 マリアちゃんの源氏名をマイちゃんにすればおk
851 :
NAME IS NULL :2013/07/02(火) 13:12:00.57 ID:4wZm1A1L
質問です。よろしくお願いします。 「投稿」、「タグ」、「投稿-タグ関係」の以下のような3つのテーブルを作って、 複数のタグを指定してそれらのAND条件で投稿を検索したいのですがどのようなクエリを書けばよいのかわかりません。 テーブルスキーマ CREATE TABLE posts ( id int NOT NULL AUTO_INCREMENT, title VARCHAR(255), PRIMARY KEY (id) ); CREATE TABLE tags ( id int NOT NULL AUTO_INCREMENT, name VARCHAR(255), PRIMARY KEY (id) ); CREATE TABLE posts_tags ( post_id int NOT NULL, tag_id int NOT NULL, PRIMARY KEY (post_id, tag_id) ); レコード INSERT INTO posts (id, title) VALUES (1, "富士山"), (2, "赤城山"), (3, "熊野古道"); INSERT INTO tags (id, name) VALUES (1, "山"), (2, "世界遺産"); INSERT INTO posts_tags (post_id, tag_id) VALUES (1, 1), (1, 2), (2, 1), (3, 2); やりたいこと 「山」「世界遺産」の二つの引数を与えて post の 「富士山」一つのみを一度に取得。 ※ 現在、クエリを引数の数だけ発行して徐々に候補を減らす方法を行なっています。 この場合は「山」で検索して「富士山」と「赤城山」を取得。 次に「富士山」と「赤城山」に対象を絞って(posts.id のIN条件で指定)「世界遺産」で検索、というやり方です。
投稿-タグ関係TBLから「山」又は「世界遺産」のものを、post_id ごとに集計して 二件存在するレコードを抽出して投稿TBLとjoin
853 :
NAME IS NULL :2013/07/02(火) 13:54:08.55 ID:4wZm1A1L
ありがとうございます。 > post_id ごとに集計 これは、 GROUP BY という構文を使うのでしょうか。 重ねての質問で申し訳ありません。
>>853 GROUP BY (post_idで集計) と HAVING (二件以上あるもの) を使う
855 :
NAME IS NULL :2013/07/02(火) 14:22:47.76 ID:4wZm1A1L
ありがとうございます。 向かうべき方向が分かりました。 これから勉強します。
http://toro.2ch.net/test/read.cgi/db/1371476534/62,84 ↑のスレで質問してこちらで聞いた方がいいというので来ました
MYSQL5.5
key a b
--------------------
1 3 2
2 1 1
3 5 2
4 2 3
こういう構成のテーブルで
UPDATE テーブル SET a = a + 1 WHERE key = 1
を1文実行すると(クエリの実行時間 0.0474 秒)となります
これは標準的な時間なのでしょうか
最終的には
UPDATE テーブル SET a = a + 1 WHERE key = 1
のような文を同一のコネクションから100~300回程投げたいのですが
時間がかかり過ぎて困っています
同様の結果(DBが更新できれば)が得られればなんでもいいのですが
何か速くする方法ってないでしょうか
0.0474 秒が標準的な時間かどうかは分からん SQLの数を減らす方向は無理? SET a=a+1 WHERE key in (k1, k2, k3, k4, ...) とか
情報不足でなんとも言えないけど、もしストレージエンジンが InnoDB だったら 設定によっては1つのトランザクション内で実行することで早くなる。 START TRANSACTION; UPDATE テーブル SET a = a + 1 WHERE key = 1; UPDATE テーブル SET a = a + 1 WHERE key = 2; UPDATE テーブル SET a = a + 1 WHERE key = 3; ・・・ COMMIT;
ストレージエンジンはInnoDBです
>>857 実際はこんな感じでカラムも足し引きする数値も違うので難しいと思います
UPDATE テーブル SET a = a + 1 WHERE key = 5749
UPDATE テーブル SET b = b + 1 WHERE key = 18312
UPDATE テーブル SET a = a + 2 WHERE key = 991127
〜
START TRANSACTION;
試してみましたが変化ないようです
でも教えていただいてありがとうございます
> 最適化方法の選択に影響を及ぼすキーの、カーディナリティなどのテーブル統計を更新するために、ANALYZE TABLE を定期的に実行する必要があります。 postgresqlぐらいしか使ったことないけど、MySQLのマニュアルにこう書いてた。やってる?
EXPLAINしてみた?
innodb_buffer_pool_sizeは? datadirがNFSとかってことないよね。
>>856 100万件のテーブル作って試してみた。
300件をaだけだが更新してみた。
0.036sしかかからなかった。
500万件でもそれほど変わらないんじゃないかな。
300件というのはsqlのupdate行数、 更新件数はkeyの重複がありますね。
どうやっても同じようにならないんだけど、 こっちで再現できるだけの情報全部出せる?
866 :
856 :2013/07/09(火) 17:39:22.54 ID:???
NFSではないです
EXPLAINやってみましが難しくてどこを改善したらいいのか良く分かりませんでした
知り合いにちょっと聞いてみたのですが
UPDATE1文だけでも(クエリの実行時間 0.0474 秒)というのは別にそれほど遅くない
ただ100回投げて4秒は遅いというかやり方を変えた方が良いと言われました
自分は↓のようなストアドプロシージャを登録して
CREATE PROCEDURE test( IN x1 INT, IN x2 INT, IN x3 INT 〜〜 )
BEGIN
UPDATE テーブル SET a = a + 1 WHERE key = x1
UPDATE テーブル SET b = b + 1 WHERE key = x2
UPDATE テーブル SET a = a + 1 WHERE key = x3
〜〜
×100行
100回連続でUPDATE文を実行していたのですが
>>863 さんは別の方法で0.036sという時間なのでしょうか
何度もすいません
↓が自分がテスト用に作って実際に↑の文を試してるDBとテーブルです
MySQL: 5.5.15
プロトコルバージョン: 10
サーバの文字セット: UTF-8 Unicode (utf8)
Apache/2.2.21 (Win32) PHP/5.3.5
実行はphpMyAdmin: 4.0.1から
テーブル構成
key(int11) AUTO_INCREMENT
a(int11)
b(int11)
c(int11)
d(int11)
インデックス
key(PRIMARY BTREE)
10万行程でa〜dは1〜20のランダムな値
>>866 そんなシンプルなUPDATE分のEXPLAIN結果が、どう改善していいのかわからないほど複雑なことになってるなら、
何か致命的な問題を抱えているか、何か重要な情報を隠されてるかのどっちかだな。
あとANALYZEの件はどうなりましたか…?
>>866 phpMyAdminを使わずシェルから直接実行しました。
CREATE TABLE `t` (
`key` int(11) NOT NULL AUTO_INCREMENT,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
`d` int(11) DEFAULT NULL,
PRIMARY KEY (`key`)
) ENGINE=InnoDB;
mysql> select count(*) from t;
+----------+
| count(*) |
+----------+
| 1000000 |
+----------+
upd.sqlの内容
start transaction;
update t set a = a+1 where `key` = 100;
update t set b = b+1 where `key` = 102;
update t set a = a+1 where `key` = 103;
〜(300行のupdate行)
update t set b = b+1 where `key` = 546;
update t set a = a+1 where `key` = 547;
update t set b = b+1 where `key` = 549;
commit;
[db]$time mysql db -uusername -ppassword < upd.sql
real 0m0.066s ←実行時間
user 0m0.006s
sys 0m0.009s
Server version: 5.5.32 MySQL Community Server (GPL)
870 :
856 :2013/07/09(火) 21:59:43.13 ID:???
>>869 ありがとうございます
出来ました
>>858 さんの指摘でSTART TRANSACTIONを試してみたつもりでしたが出来てなかったようです
>>869 さんのようにストアドプロシージャの中に書いたらキッチリ速くなりました
初歩的な事でお騒がせしてすみませんでした
>>868 ANALYZE TABLEというのを調べてみたのですMyISAM用のコマンドだと出てきたので
試していませんでした
でもありがとうございます
>>870 関係ないANALYZEの話出してごめんなさい。
解決してよかった
トランザクションの件は移動前のスレで最初に聞いたんだけどな 無視されたか
念のためいっとくけど、ストアドの中でトランザクションを開始したり終了したりするのは 基本的には駄目だからな。どんな文脈で呼ばれても大丈夫なようにしとくのが基本。
どういう理屈かわからんが、ストアドの外で開始してもうまくいかなかったって書いてるよ。
>>875 trx0purge.cc読む限り、UNDOログ消す以外はしてない気がする。
DELETEするとバッファプールから取り除いてUNDOログに逃がすから、それを最終的に消すのは確かにPurge threadなんだろうけどその書き方気になるな。
877 :
NAME IS NULL :2013/07/17(水) 16:45:13.68 ID:GlWHzsdh
質問させて下さい。 mysqlのSpiderストレージエンジンのバージョン 3.0から oracleリンクが可能になったようですが、以下のエラーが発生して 上手くいきません。 ERROR 1477 (HY000): The foreign server name you are trying to reference does not exist. Data source error: oracle また、mysqlでCREATE TABLE発行時のCOMMENTで以下にしています。 COMMENT 'database "オラクルのスキーマ名", table "オラクルのテーブル名", host "オラクルサービス名", server "oracle", port "1521", user "オラクルのユーザ名", password "オラクルのパスワード"'; 何が問題なのかご教示お願い致します。
879 :
NAME IS NULL :2013/07/18(木) 09:35:44.17 ID:H2CIjhmx
>>878 レスありがとうございます。
環境変数に「ORACLE_HOME」が無かったので
設定して再挑戦してみます。
ありがとうございました。
880 :
NAME IS NULL :2013/07/18(木) 22:51:36.62 ID:1AZJoj2g
>>876 ソースコード!
読めないから尊敬!
UNDOログならDELETEだけでなくUPDATEもINSERTも書くよね。
私、勘違いしてる?
>>880 ありがとん。
INSERTもUPDATEもUNDOログに書くので合ってる。
で、ro0undo.cc, row0purge.ccの方読んだら確かにDELETEでマーキングしてそれを最終的に取り除いてるのはpurge処理っぽい。
Glossaryの原文が、
.. The purge includes these actions ..
だから、
UNDOログのクリアが基本機能で、インデックスだのDELETEマークされた行の削除も`含まれる'よ!
って感じになるんだと思う。
882 :
NAME IS NULL :2013/07/19(金) 12:53:16.16 ID:NakFnCeb
>>881 うーん
相変わらずのMySQL品質 orz
purgeの説明文にpurge自体の説明なしで
なんで追加の部分だけ書くんだろ?
>>882 * removing obsolete values from indexes
* physically removing rows that were marked for deletion by previous DELETE statements
が、purge自体の説明でしょ?
UNDOログのクリアは、実装詳細なイメージ。
まあ、不要なインデックスが残ったり、削除マークがついたデータが削除後も残るのも、実装詳細と言えなくもない
レコードはCheckpointで、インデックスはibufのマージで消えるもんだと思ってた。
>>877 正直、SpiderはS氏に多額のお布施を払わないとお仕事レベルで使うのは困難。
MySQLそのものの広範なチューン無しでは肝心な所でパフォーマンスが出ない。
評論家気取った奴がちょろっと使うだけなら結構よく見えるんだけどな。
MySQL5.5 key a b c -------------------- 1 3 3 2 1 4 1 1 1 5 2 2 1 2 3 2 2 1 0 5 2 5 0 2 2 2 3 2 2 1 0 0 3 1 2 2 3 2 3 0 2000万行程あるテーブルで上のような構成なのですが このテーブルに↓のようなSELECT文を投げる大体20秒くらいの時間が掛かってしまいます SELECT abs(a + b - c) AS abs_hoge, key FROM table WHERE key = 2 ORDER BY abs_hoge ASC LIMIT 1; インデックスはkeyにのみ張っています 一つのkeyの値につき2000レコード程あるので まず2000行フェッチされた後、a+b-cの絶対値でfile_sortされてるみたいなのですが 2000行程度のソートに非常に長い時間が掛かってしまうのは回避のしようがないのでしょうか どうにかして処理を速くしたいのですが よろしくお願いします
まずはselect文の前にexplainをつけて実行した結果をはるんだ
というか、テーブルやインデックスの構成もわからん
890 :
887 :2013/07/22(月) 05:09:41.77 ID:???
テーブル構成は 1 id : int(11) 2 key : smallint(6) 3 a : smallint(6) 4 b : smallint(6) 5 c : smallint(6) ... 66 cp : smallint(6) 67 cq : smallint(6) インデックスは idカラムに「PRIMARY」 PRIMARY BTREE keyカラムに「key_index」 INDEX BTREE EXPLAIN結果は id : 1 table : SIMPLE table : table type : ref possible_keys : key_index key : key_index key_len : 2 ref : const rows : 2199 Extra : Using where Using filesort レコード数は19,520,590 keyカラムは一つの値につき2200レコードあります
先にソートされてるっぽいなあ SELECT abs(a + b - c) AS abs_hoge, key FROM (select * from table WHERE key = 2) as T ORDER BY abs_hoge ASC LIMIT 1; だとどうですか
>>890 同じテーブル作って再現したけど、0.003秒くらいで実行できちゃうなぁ。
ゴミカラムつけてテーブルを2GBくらいに肥やしてみたけど変わらず。
数千行で20秒というのはいくらなんでも遅い気がするので、サーバ環境を見直した方がいいかも。
ところで、最小値が知りたいのなら
SELECT MIN(ABS(a+b-c)) AS abs_hoge, `key` FROM table WHERE `key`=2;
とすれば少なくともソートの処理時間は省けると思う。と素人考え。
あと頻繁に使う値なら計算済みのカラムなりテーブルを別に用意した方がいいと思う。
893 :
NAME IS NULL :2013/07/22(月) 16:43:52.50 ID:Lts1kFmO
リモートのデータベースのデータをローカルにコピーしたいのですが、 自分がやりたいことがパッケージングされたような 既存のツールみたいなものがないのかお聞きしたいです。 やりたいこと * リモートにあるMySQLデータベースのデータをローカルにコピーする * コピーするテーブル、カラム、レコードを指定できる 環境 (特に縛られていませんが、現在の環境です) リモート OS: CentOS 5.6 MySQL: 5.5 ローカル OS: Windows8 MySQL: 5.6 とりあえず現状ではリモートでは mysqldump を実行させるCRONを稼働させておいて、 Windows のバッチ処理でそのファイルをダウンロードして mysql をアップデートしています。 もっと良いツールがあると思って探しているのですが、見当たらないので質問させて頂きました。
ない。 自作しろ。
895 :
893 :2013/07/22(月) 16:57:26.17 ID:???
そうですか、ありがとうございます。
>>895 mysql syncでググるといくつかヒットするけど、この中で試したある?
誤:試したある? 正:試したものある?
898 :
NAME IS NULL :2013/07/22(月) 17:33:22.20 ID:mngkA270
>>877 で質問させていただいた者ですが、
やはり、上手くいきませんでした…
>Oracleクライアントライブラリインストール環境(環境変数に「ORACLE_HOME」が必要になります)での、MySQLのリビルドが必要
これの具体的が分かりません。
以下の方法は間違っているのでしょうか?
1.oracle client のインストール(ランタイム)
2.oracleのローカル・ネット・サービス名構成
3.システム環境変数に値をセット
SETX ORACLE_BASE /M "C:\app\Administrator\product"
SETX ORACLE_HOME /M "C:\app\Administrator\product\11.2.0\client_1"
4.MYSQLのインストール
mysql-5.5.14-spider-3.0-vp-0.18-win32をc:\mysqlに展開
5.サービスの開始、DB作成 etc.
6.Spiderストレージエンジンのインストール
c:\mysql\bin>mysql -u root -prootpass < C:\mysql\share\install_spider.sql
7.テーブル作成で同じエラー
何方か、ご教示お願い致します。
>>898 > MySQLのリビルドが必要
リビルドしてるように見えないけれど、、、
ひょっとして「ビルド」が何かわかってないとかか?
ひょっとしてというか、それ以外にないかと
まあビルドっていってもレンジに入れてチンする程度のもんだしな
904 :
893 :2013/07/22(月) 20:22:59.53 ID:???
>>896 ありがとうございます。
どれも試したことありませんでした。
こういうキーワードを知らない時点で全然ダメですね orz...
とりあえずこれから記事を一つづつ見ていきます。
何かおすすめはありますか?
>>898 てゆうか斯波さんの連絡先はちょっと調べればすぐわかるだろうに…
>>905 そんなしょうもないことで時間を取らせるなよ
↓のような文をEXPLAINしたら EXPLAIN SELECT `id` FROM `table` WHERE `key` = 100 ORDER BY `id` ASC LIMIT 1 「Using where; Using index; Using filesor」 と出るんですけど Using index はインデックスを使ってクエリを解決してるって意味だと思ってたんですけど Using filesort も一緒に出るってどういうことなんでしょう この二つは一緒には出ないものだと思ってました これって結局インデックスが上手く使えてないって意味なんでしょうか
その記事は読みました 同じブログのEXPLAINの解説記事も読みました その記事内にUsing indexとはクエリがインデックスのみで解決できていることを示しているとあり 更にUsing filesortの説明ではインデックス順でフェッチ出来てないクエリに表示されると説明されていたので 同時には出ないと思っていたのですが 今回同時に出てきて この場合インデックスのみで解決できているのかが分からなかったので質問しました
>>909 > クエリにORDER BYが含まれる場合、MySQLはある程度の大きさまでは全てメモリ内でクイックソートを
> 処理する。ある程度の大きさとはsort_buffer_sizeであり、これはセッションごとに変更可能である。ソートに
> 必要なメモリがsort_buffer_sizeより大きくなると、テンポラリファイル(テンポラリテーブルではない)が作成され、
> メモリとファイルを併用してクイックソートが実行される。
これがfilesortの説明。
どこをどう読んだら、
> この場合インデックスのみで解決できているのかが分からなかったので
という疑問になるのかわからない。
あ、何かコメントしようとするなら、上記URLを再度熟読してからにしてくれよ。
>>909 いろいろ理解が足りなさすぎ。
> この二つは一緒には出ないものだと思ってました
というのがそもそも間違い。
普通に考えたら、インデックスが使われて、ソートが必要になり、オンメモリじゃ無理なのでファイル使ってソートしたよってことじゃないの?
>>907 MySQL使ったことない俺でもわかったというのに。
ちなみにインデックスはどんなの作ってるの?
>>909 もう礼とかはいらんから、10万円払ってOracleの中の人に教えてもらえ。
何も教えてないのに礼がもらえると思ってるとか謝罪と賠償かよ 質問系は質問スレ行ってやってくれ
しかしこのスレの99%は意味不明な質問と的外れな解答で構成されております
920 :
NAME IS NULL :2013/07/24(水) 11:10:05.42 ID:ggwZ6wKa
>>898 で質問をさせていただいたのですが、
皆さんがご指摘の通り、ビルドの方法がわかりません。
色々調べてみたのですが、理解が追いつきません。
・bisonのインストールとシステム環境変数への登録
・cmakeのインストールとシステム環境変数への登録
・Visual C++ Express 2010のインストール
・MYSQLのファイルをビルド作業用フォルダに解凍して配置
この後、Visual Studio コマンドプロンプト(2010)起動して
具体的にどのようにすれば良いのでしょうか
お手数ですが、ご教示をお願い致します。
923 :
NAME IS NULL :2013/07/24(水) 14:49:15.40 ID:ggwZ6wKa
>>921 >>922 ご教示ありがとう御座います。
「2.9.6.1. CMake および Visual Studio を使用したソースからの MySQL のビルド」や、
「spider-doc-3.0-for-5.5.14」は読みました。
で、以下のコマンドを
Visual Studio コマンドプロンプト(2010)から
実行しました。
cmake . -G "Visual Studio 10" -DCMAKE_INSTALL_PREFIX="C:\work"
すると以下のエラーになりました。
CMake Error: The source directory "c:\work" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
CMakeLists.txtが無いエラーみたいなのですが、
これはmysqlのファイルを展開したフォルダ(c:\work)に
新規で作成するものなのでしょうか?
引続きご教示をお願い致します。
>>923 なんとなくだけど、mysqlのソースコードは入手してあるの?
925 :
NAME IS NULL :2013/07/24(水) 15:11:45.85 ID:ggwZ6wKa
>>925 それはspiderというやつのソースコードで、mysqlをビルドするのだから、mysqlのソースコードも必要だよ。
見てみたけど、それバイナリじゃないか。 ソースからビルドしたいなら mysql-5.5.14-spider-3.0-vp-0.18-hs-1.2-q4m-0.95.tgz こっちでしょ
>>925 頼むからドキュメント通りやってくれよ。初心者なんだから。
03-2-2_install_spider_storage_engine_with_MySQL_5.5_on_windows.txtより抜粋。
> 2.ビルドの準備
> -MySQLソースの展開
>
> -Linux用ファイルの削除
> pluginディレクトリ配下のhandlersocketディレクトリをディレクトリごと削除する。
> storageディレクトリ配下のq4mディレクトリをディレクトリごと削除する。
>
> -一部ソースコードの文字コードの変更
> sql\sql_locale.ccにアラビア文字が含まれているため、BOM付きのUTF-8に文字コードを変更する
> (コントロールパネル→地域と言語のオプション→詳細設定→Unicode対応でないプログラムの言語 を「英語(米国)」にすれば文字コードの変更は不要)
929 :
926 :2013/07/24(水) 15:37:21.58 ID:???
>>927 あ、ごめん。
mysqlのソース入ってないんじゃないかってのが念頭にありすぎたから見落としてた。ありがと。
あ、「ソース」がなんだかわからないとかか orz
こっちで試した限りじゃこれでいけるようだけど、むちゃくちゃコンパイルに時間かかるなw 今ビルド中なんかな、、、tgzでひっかかってたりして。
>>931 並列コンパイル数増やしてもダメかな
試してないけど。
あ、VSでコンパイルするわけじゃないっぽいから、それができるかどうかわかんないや、ごめん聞き流して
934 :
NAME IS NULL :2013/07/24(水) 16:33:31.27 ID:ggwZ6wKa
>>926 >>927 >>928 >>929 >>930 お手数をお掛けしています。
ご教示頂いた内容までは作業出来ましたが、
ビルド時に下記エラーとなりました。
Warning: Bison executable not found in PATH
-- Cannot find wix 3, installer project will not be generated
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
ORACLE_INCLUDE_DIR
used as include directory in directory C:/mysql55/storage/spider
Bisonの実行環境のパスは以下の様に設定したのですが、
間違っているのでしょうか。
SETX /M PATH "%PATH%;C:\Program Files\GnuWin32\bin"
何度も申し訳ございませんが、
ご教示お願い致します。
説明とか一切読んでないけど、cmakeでMySQL.slnができるから それをVSで開いてコンパイルしてるよ、今使ってるのはかなり前の Core2だからちょっとね・・・
bison無くても警告だけで進んだけどね、、 C:\Program Files\GnuWin32\bin ここにbison.exeあるの? Program Files (x86) だったりしない?
>>935 あ、そうなるんだ。よく知らないのにへんなレスをちょこちょこしてスマンカッタ
>>935 03-2-2_install_spider_storage_engine_with_MySQL_5.5_on_windows.txtには、その辺のこともちゃんと書かれてる。
> 3.MySQLのビルド
> cmake . -G "Visual Studio 9 2008" -DCMAKE_INSTALL_PREFIX="C:\Program Files\MySQL\MySQL Server 5.5"
> devenv MySQL.sln /clean
> del CMakeCache.txt
> devenv MySQL.sln /build RelWithDebInfo
> devenv MySQL.sln /build RelWithDebInfo /project initial_database
> devenv MySQL.sln /build RelWithDebInfo /project package
まあ、一切試そうとしない俺が言うのもあれだが、このドキュメント通りにやって、問題があればフィードバック
するのがいいんじゃないかと思う。
まず、このドキュメント通りにやってできるのかできないのかを切り分けて欲しい。
ビルド済みバイナリくらい配布しろボケって感じですか。
元をたどるとGPLじゃないライブラリが混ざる関係でバイナリ配布できないみたいだぞw
あんまり甘やかすとどんどん増長して、しまいに「僕のちんちんから白い液が出るんです… どうにかなりませんか?」とか聞き出すぞwwww
スレ違いっていいたいのかな? 例がひどいのはさておき、MySQLのビルドに関して話すのは問題ないと思うんだが
ちんちんの話題でレスが流れまくって追えなくなるんならまだしも、もともと過疎なんだからそんなに気にすることもないと思うけど
Spiderってそんな必死になってまで使うもんなのかな? お遊びで試すならいいけど、永久開発版ってイメージが。
>>943 ビルドの話になるとちんぷんかんぷんなので
ちんちんの話と区別がつかないんじゃないかな
946 :
NAME IS NULL :2013/07/26(金) 14:24:48.10 ID:+B9xyxW0
一般論として、int(11)とchar(2)だと、どちらがパフォーマンス(メモリとか検索速度とか)がいいと思いますか? 具体的には、国コードの値を数値で保存するか2文字のアルファベットにするか考えてます。 例えば日本だと、392かJPになります。
差があったとしても誤差程度。空間効率はCHAR(2)の方が良い。
intだとなぜ11桁に膨れ上がるか不思議
tinyint,smallint
国コードはSMALLINT
>>944 悪くないんだけど、JOINとかのパフォーマンスが致命的。
業務で1テーブル1000万件とかを扱うのは無理。
spiderって何に使うの?
954 :
NAME IS NULL :2013/07/29(月) 17:58:35.81 ID:BusOCDW5
MySQL Connector/C 6.1でプログラムを書いているのですが mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8"); とやっても????になって文字化けしているようです。 件数はあっているようなので接続やSQLの実行はできていそうなんですが 文字化けが治りません。どこらへんがあやしいでしょうか
データベースはutf8なのにmysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "sjis");にしてやらないと 文字化けするみたい、謎
956 :
NAME IS NULL :2013/07/29(月) 19:15:36.82 ID:BusOCDW5
utf8で結果を取得したいのですが、どなたか教えていただけませんか
utf8で取得できていないと判断した根拠が見えないなぁ。 utf8で取得できてるんじゃないの?
958 :
NAME IS NULL :2013/07/30(火) 06:32:01.32 ID:23oI6gWg
>>957 ちょっと調べてみます。sjisの取得するソースを参考にしたので
配列がsjisの型になってるかもしれません。
959 :
NAME IS NULL :2013/07/30(火) 08:53:36.63 ID:0xJ0btsb
??utf8ベースでプログラム作ってるはずなのに、sjisでmysqlから取得すると文字化けしませんでした。 ??納得できないデータベースもutf8でプログラムもutf8なのになんでMySQL Connector/Cだけsjis??
SJISで取得できてるってことは、その確認してる環境がSJISなんじゃないの?
Unicode 文字セットを使用するになってますね。ただしソースはsjisになってます。 ソースのせい?
>>958 utf8のカラムにsjisのバイト列が入ってるか、
sjisのカラムにutf8のバイト列が入ってるかのどっちかと予想。
963 :
NAME IS NULL :2013/07/30(火) 12:37:32.05 ID:0xJ0btsb
>>962 ダンプして確認してもUTF8の形式のテキストにUTF8の指定がされてて日本語は化けてないので
データベースのほうはいいと思います。
うまくいかないorz MySQL Connector/C使ってる人はutf8使えているんですか? そもそも引数がconst charなのに戻り値がutf8とか変じゃないんですか もうあきらめてMySQL Connector/C++を試してみようかな
なんかいろいろ勘違いしてるだけな気がする レスのあちこちにおかしいところがあるので・・・ こっちで試すだけの材料出せる?
一応言っておくけど、 WindowsのUNICODEはUTF16で、UTF8とは別だからね その辺わかってる?
_tprintf(L"%s\n", CW2T(CA2W(record[1], CP_UTF8))); で取れました。お騒がせしました。
>>968 Windowsのことさっぱりわからないからそれが謎の文字列に見えるが、それで最終解決なの?
>>969 はい、こんな感じでうまく出ました。
while (record = mysql_fetch_row(results)) {
_tprintf(L"%s\n", CW2T(CA2W(record[1], CP_UTF8)));
}
めんどくさかったのでマクロを使ってUTF8→UTF16→TCHARにしてます。
これから逆に命令を作りますが次はこんな感じになるのかな
CT2A(_T("SQL"), CP_UTF8)
ATLのマクロか、、、やってみてうまくいかないならそれなりのスレで聞くのがいいかも
長年疑問だったことを質問させてくれ innoDBのibdataは巨大1ファイルと2Gくらいのファイル沢山とだったら、 どっちがパフォーマンス良くなるんだ? 前提はSSDとして、教えてくだされ
974 :
NAME IS NULL :2013/08/02(金) 13:09:43.81 ID:0Gsm/tnE
CA2T(record[1], CP_UTF8)でもいけたのでいちょうご報告
>>974 >>968 でなんでA->W->Tって二段階に変換する必要があるんだろうと思ったんだけど、
やっぱり直接いけますか。
多分Windows+MySQLの仕事はしないと思うけど、すっきりしたよ。
976 :
NAME IS NULL :2013/08/09(金) 16:32:10.33 ID:MjVUqmJh
SHOW CREAT TABLE で、AUTO_INCREMENT を 出力しないようにするにはどうすれば良いですか?
仕様が気にくわないならビルドすればいいじゃない
979 :
976 :2013/08/10(土) 01:15:59.80 ID:MBKbovHP
>>977 ありがとうございます。
MySQLに限らないですが、何かが出来ないという知識を得ることは
何かが出来る場合の知識を得ることに比べて難しく感じているので
とても有難いです。
もうひとつ教えていただきたいのですが、どこでその知識を得ましたか?
どこかに明示されているのでしょうか。
あるいは既知の情報から導き出されたものなのでしょうか。
基本的には公式のマニュアルを読むようにしているのですが、
深く理解するには色々とむずかしいことが多いです。
980 :
NAME IS NULL :2013/08/10(土) 09:24:26.00 ID:MBKbovHP
ビープ音を鳴らすだけのコマンドってないでしょうか? 長時間のタスクが終了したときに音で教えてくれると助かるので、 いつも時間のかかるコマンドに続けてエラーが出るコマンドを打つことで ビープを発生させています。 ただ、このやり方はあまり気持ちいいものじゃないので、 もしかして音だけを発生させるような仕組みがあるのかな と思い質問させて頂きました。
>>980 >beep
それ、MySQLの仕事か?
やるならshなりbatなりでラップしてやることだと思うが
982 :
NAME IS NULL :2013/08/10(土) 11:23:23.78 ID:MBKbovHP
>>981 コマンドラインで mysql に入っての作業なんですが、そんなことって出来ます?
>>982 beepを消すのしか見つけられなかった
というか、エラーが出コマンドを実行すればいいのではなかろうか
986 :
982 :2013/08/10(土) 21:33:50.00 ID:MBKbovHP
じゃあふつうに mysql> \! echo -e '\a'
>>986 select '^G';
^Gは制御文字
Windowsなら、Ctrlキー+Gで入力
Linuxなら、Ctrlキー+Vに続き、Ctrlキー+Gと入力
面白いこととか失礼なやっちゃなw
質問自体が一番面白いこと言ってるのにねw
>>979 基本は英語のリファレンスマニュアル。
「できること」を書いてないケースはほとんどない。
裏取りはソースコード。
できる限り最良の回答だというのになんてことをw