MySQL 総合 Part24
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL
2013/08/14(水) NY:AN:NY.ANID:???MySQL 総合 Part23
http://toro.2ch.net/test/read.cgi/db/1343294198/
MySQL Developer Zone http://dev.mysql.com/
MySQL 5.5 マニュアル (E) http://dev.mysql.com/doc/refman/5.5/en/index.html
MySQL 5.1 マニュアル (J) http://dev.mysql.com/doc/refman/5.1/ja/index.html
日本MySQLユーザ会(MyNA) http://www.mysql.gr.jp/
ML過去ログ http://www.mysql.gr.jp/mysqlml/mysql/
ここで質問をする前に、MyNAでのFAQと心得の条を最初に確認しましょう。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0
0002NAME IS NULL
2013/08/19(月) NY:AN:NY.ANID:???0003NAME IS NULL
2013/08/19(月) NY:AN:NY.ANID:???0004NAME IS NULL
2013/08/23(金) NY:AN:NY.ANID:???探すと32bit版のMSIインストーラーのみで64bit版が見つからないんだけど
こういうもんですか?
日本語Wikiとかダウンロードページへの直リンで飛べば64bit版のダウンロードページ
いけるから問題ないといえばないんだけど。
0005NAME IS NULL
2013/08/23(金) NY:AN:NY.ANID:???0006NAME IS NULL
2013/08/23(金) NY:AN:NY.ANID:lUU+g5Pz0007NAME IS NULL
2013/08/24(土) NY:AN:NY.ANID:???0008NAME IS NULL
2013/08/26(月) NY:AN:NY.ANID:???Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries.
http://dev.mysql.com/downloads/windows/installer/
0009NAME IS NULL
2013/08/26(月) NY:AN:NY.ANID:???purgeってのはUNDOログのクリアって話だったけど
innodb_purge_batch_sizeの解説みるとREDOログがどうしたこうした書いてある。
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_purge_batch_size
purgeにREDOログって関係あるの?混乱してきた。
0010NAME IS NULL
2013/08/26(月) NY:AN:NY.ANID:???俺には「REDOログにx回書き込むたびに」と読めた。
0011NAME IS NULL
2013/08/26(月) NY:AN:NY.ANID:???そうそう。
だからなんでUNDOログのpurgeにREDOログが関係あるんだろうって。
UNDOログにx回書き込む度にpurgeするならすっきりするんだけど。
なんでREDOログ?
誰か分かる人居ます?
0012NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:???0013NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:???そうか、UNDOログにバンバン書き込むだけでCOMMITしなかったら
purgeしようとしても消すデータがないってか
0014NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:???purge関連の設定は特にUNDOログに特化した設定ではないのに、なぜREDOログが絡むとおかしいと思うの?
purgeする必要があるもの全てが対象でしょう。
0015NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:???前スレ
http://webcache.googleusercontent.com/search?q=cache:PV7dtoCMYHsJ:toro.2ch.net/test/read.cgi/db/1343294198/881+&cd=1&hl=ja&ct=clnk&gl=jp&client=firefox-a
0016NAME IS NULL
2013/08/27(火) NY:AN:NY.ANID:???0017NAME IS NULL
2013/08/30(金) NY:AN:NY.ANID:???比較して、両方のカラムに同じデータが入ってる奴だけ抽出して表示する方法教えてください。
0018NAME IS NULL
2013/08/30(金) NY:AN:NY.ANID:???INNER JOINでググる。
0019NAME IS NULL
2013/08/30(金) NY:AN:NY.ANID:???出来た!感動、ありがとうございます!
0020NAME IS NULL
2013/08/30(金) NY:AN:NY.ANID:???ここから、データを吸い出すにはどうすればいいのですか?
mysqldumpでは、サーバーが動作するのが前提になっているようなので
データの吸出しが出来なくて困っています。
0021NAME IS NULL
2013/08/30(金) NY:AN:NY.ANID:???まずは環境紹介から
起動しなくなったマシン
Windows7 32Bit mysql 5.6.10
新しいマシン
Windows8 64Bit mysql 5.6.13
やってみたこと
起動しなくなったマシンの、dataフォルダ以下をUSBメモリーなどにコピーする
新しいマシンに mysql server 5.6.13をインストールし
d:\mysqldata\以下へUSBメモリからコピーする。
my.iniのdata_dir を d:/mysqldata/data と書きかえて上書き保存
Winodwsを再起動
MySQL WorkBenchから、みられるようになっているのか、どうやって
確認すればいいかわからない。
手順が正しかったかもわからない。です。
よろしくお願いします。
0022NAME IS NULL
2013/08/31(土) NY:AN:NY.ANID:???こっちに、登録していた、テーブル名のファイルがあり、正しいようです。
間違って、C:\ProgramFilesの方をコピーしてました。
もすこし試してみます。
0023NAME IS NULL
2013/08/31(土) NY:AN:NY.ANID:???0024NAME IS NULL
2013/09/05(木) 08:02:03.74ID:ChEKZAnNOracleみたく「:name」が使いたいんだけど、ドキュメントには「?」しか書かれてない。
パラメータがたくさんあると「?」は不便なので「:name」を使いたいです。
0025NAME IS NULL
2013/09/05(木) 09:04:46.31ID:???0026NAME IS NULL
2013/09/05(木) 10:31:23.28ID:???間に入るライブラリ次第かな?
0027NAME IS NULL
2013/09/07(土) 08:31:13.24ID:???え、聞いたらまずいの?
もしかしたらドキュメントの探し方がまずいかもしれないし、
最新バージョンや開発バージョンでは実装されてるかもしれないし、
非標準のライブラリで実現できるかもしれないし、
いろんな可能性があるんだから質問してもいいでしょ。
何か問題があるの?
0028NAME IS NULL
2013/09/07(土) 08:35:00.44ID:???ごめんごめん、そこまでは気が回らなかったよ。いちいちこんなことでイライラしないでね。
>>26
そうなんだ。たぶん他のDBと同じ使い方ができるように、C#用のライブラリが独自に実装してるんだろうね。
とりあえず、MySQLの標準ではできないということだね。了解です!
0029NAME IS NULL
2013/09/09(月) 11:57:02.44ID:???まぁあんまそういうこと書かないでやって。
PHPスレみたいな荒れ方してもつまらんからさ。
0030NAME IS NULL
2013/09/09(月) 12:57:50.74ID:???使えるしドキュメントにもちゃんと書いてあるよ
0031NAME IS NULL
2013/09/09(月) 22:59:12.82ID:???http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html
から抜粋。
-------------
SQL syntax for prepared statements does not support multi-statements (that is, multiple statements within a single string separated by “;” characters).
-------------
英語はよく分からんがサポートしてないって書いてね?
0032NAME IS NULL
2013/09/10(火) 01:02:32.18ID:???これは、;で区切られた複数のsqlはプリペアードステートメントではサポートされません、って書いてるのでちょっと違うのでは。
0033NAME IS NULL
2013/09/10(火) 01:31:44.71ID:???しかもよく見たらコロンじゃなくてセミコロンだった。吊ってくる。
0034NAME IS NULL
2013/09/12(木) 21:56:34.59ID:QsWhUfVH150万レコードぐらいあってphpMyAdminで容量見ると300MBぐらい
3カラムぐらいにインデックス張ってあってインデックスが50MBぐらいなんだけど
インデックスが容量食いすぎだろうか?
鯖のメモリーは7.5 GBあるからあまり気にしなくて良いだろうか
0035NAME IS NULL
2013/09/12(木) 22:18:47.55ID:???5GBデータ100MBインデックスの履歴系テーブルもあれば、50GBデータ50GBインデックスのテーブルもあって、使い方次第だなぁと思うけど。
個人的には更新主体ならそんなもんじゃ? と思う。
0036NAME IS NULL
2013/09/15(日) 11:31:06.07ID:oLL5r9pKインデックスで50G超えたとかいう話ならいろいろ面倒だが。
0037NAME IS NULL
2013/09/16(月) 00:00:18.72ID:bEbAGFozデータベースで有料のやつと無料のやつの違いは?
データベースの一番性能がいいのはoracleでしょうか?
データベースってサーバー側におかれていることが多いからどちらかといえば
windowsよりlinuxの上で使われていることがおおいでしょうか?
0038NAME IS NULL
2013/09/16(月) 09:12:35.92ID:????
?
?
0039NAME IS NULL
2013/09/16(月) 10:37:26.99ID:???という言葉があるようにそういう組み合わせが多いのではなかろうか?
俺は知らんけどw
0040NAME IS NULL
2013/09/16(月) 10:39:50.27ID:???というか、ぐぐればそういうのはすぐ判るよ
0041NAME IS NULL
2013/09/16(月) 12:59:59.21ID:???mysql3.23のデータベースをmysql5.169に移します。
移転元のmysqldumpは8.23
移転先のmysqldumpは10.13
移転先にuser DBつくって
mysqldump -a --user=hoge --password --default-character-set=latin1 hogedb > backup_hoge.mysql
でdumpバックアップ
mysql --user=hoge -p hogedb < backup_hoge.mysql
で移転先にいれようとすると
ERROR 1064 (42000) at line 4: You have an error in your SQL syntax;
compatibleオプションが必要そうです。
--compatible=ansi をdump作成時にいれようとしたら、このオプションは8.23には存在しないようです
何か楽な方法ありませんでしょうか。
0042NAME IS NULL
2013/09/16(月) 19:59:41.61ID:???SQLの構文エラーが出てるみたいだから、なにが悪いのかを原因特定するのが先。
0043NAME IS NULL
2013/09/19(木) 17:10:04.74ID:09YskEULみたいなことをやりたいんだけど、どうすればいいの
ちなみJK2です☆(ゝω・)vキャピ
0044NAME IS NULL
2013/09/19(木) 20:08:44.06ID:???insert into tbl (id) values (select max(id) from tbl)
0045NAME IS NULL
2013/09/19(木) 20:10:04.25ID:???0046NAME IS NULL
2013/09/19(木) 20:11:27.07ID:???吊ってくる。
0047NAME IS NULL
2013/09/19(木) 22:16:30.83ID:???同じテーブル名でデータ入れようとするとエラーにならなかったっけ?
select max(id) from tbl tmp
みたいな感じで別名にしないといけなかった気が。
0048NAME IS NULL
2013/09/21(土) 07:22:34.84ID:???http://www.youtube.com/watch?v=z2qK2lhk9O0s
みんなで選ぶニコ生重大事件 2012
http://vote1.fc2.com/browse/16615334/2/
2012年 ニコ生MVP
http://blog.with2.net/vote/?m=va&id=103374&bm=
2012年ニコ生事件簿ベスト10
http://niconama.doorblog.jp/archives/21097592.html
生放送の配信者がFME切り忘れプライベートを晒す羽目に 放送後に取った行動とは?
http://getnews.jp/archives/227112
FME切り忘れた生主が放送終了後、驚愕の行動
http://niconama.doorblog.jp/archives/9369466.html
台湾誌
http://www.ettoday.net/news/20120625/64810.htm
0049NAME IS NULL
2013/09/21(土) 21:24:16.10ID:F8J6z22efooでfoobarを検索する場合LIKE前方一致でできますが、foobarでfooを検索する場合どのような方法があるでしょうか。
0050NAME IS NULL
2013/09/21(土) 22:04:01.17ID:???foo1 like concat(foo2, '%') or foo2 like concat(foo1, '%')
みたいに逆も比較してみるのは?
0051NAME IS NULL
2013/09/21(土) 22:33:35.93ID:F8J6z22eあー、LIKEってそんな風にも使えるんですね
ありがとうございます
0052NAME IS NULL
2013/09/22(日) 19:53:03.57ID:HJJsliiPなんでこの分野は、oracleが牛耳っているんでしょうか?
ラリーエリクソンってビル・ゲイツなみの有名人か?
0053NAME IS NULL
2013/09/22(日) 21:01:51.33ID:???0054NAME IS NULL
2013/09/22(日) 21:05:07.16ID:???このスレで聞くことじゃないけど
0055NAME IS NULL
2013/09/23(月) 04:07:15.81ID:q1UsEuFHでバックアップを取ろうとすると
.sqlファイルではなくVHDLドキュメントになってしまう
これって何が原因?
0056NAME IS NULL
2013/09/23(月) 11:43:15.55ID:???0057NAME IS NULL
2013/09/23(月) 21:23:54.29ID:???いまさらの環境ですが、MYSQLの4.0LINUXでMYISAMテーブルのデータベースをWINのサーバ(同ver)
移動したのですが、その結果ODBCを介しVBでtransactionを使用している部分で
[transactions are not enabled]のエラーが出るようになりました。autocommitとして動作して
ほしいのですが…。
よろしくお願い致します。
0058NAME IS NULL
2013/09/23(月) 21:42:16.85ID:???0059NAME IS NULL
2013/09/23(月) 22:33:40.33ID:???0060NAME IS NULL
2013/09/24(火) 03:42:42.03ID:???それは承知の上で暗黙に即時COMMITして欲しいのです。
というかlinuxはそう動いてるので。dbそのままコピーして、cl側変更ないのにそう動いてくれない。
006157
2013/09/24(火) 07:39:32.34ID:???結論をいうとmy.cnfのskip innodbがコメントアウトされていませんでした。
innodbへの変換やinnnodbのテーブル作成もできなくなっていたので気づきました。
innodb自体が有効になっていないと、transaction使用時暗黙のcommitではなく
transactions are not enabled エラーが出て更新できないのですね。
0062NAME IS NULL
2013/09/24(火) 08:02:37.96ID:???0063NAME IS NULL
2013/09/29(日) 03:23:57.96ID:???トランザクションが終了するまで常に同じが値が見えるため、別のトランザクションがコミットされていても変更は感知出来ないのですよね?
0064NAME IS NULL
2013/09/29(日) 07:40:33.74ID:???動作環境内緒にしておきたいんだったら自分で実験しろ
0065NAME IS NULL
2013/09/29(日) 17:47:58.48ID:???0066NAME IS NULL
2013/09/29(日) 20:36:21.97ID:???0067NAME IS NULL
2013/09/29(日) 22:00:13.69ID:???0068NAME IS NULL
2013/09/29(日) 22:03:23.42ID:???これはどうなるんですか? って「どうなるかやってみる」という発想がなんででてこないんだろう?
0069NAME IS NULL
2013/09/29(日) 23:06:41.02ID:???two chは怖いところ
0070NAME IS NULL
2013/09/30(月) 09:21:45.94ID:???fnmp
0071NAME IS NULL
2013/09/30(月) 22:20:35.05ID:???0072NAME IS NULL
2013/10/01(火) 00:01:45.86ID:???つかこんなところで聞いて回答貰ったとしても、それが正しいのかどうかって結局試さないと分からないだろ。
だったら聞くだけ時間のムダ。
0073NAME IS NULL
2013/10/02(水) 17:04:33.79ID:???まだOracleのばかのせいでアップデートが遅れてるとか、新バージョン封印とかされてるの?
ここ2年くらいで何か大きな動きあった?
0074NAME IS NULL
2013/10/02(水) 17:24:44.38ID:???0075NAME IS NULL
2013/10/02(水) 17:24:50.75ID:???なんで検索しないの?
0076NAME IS NULL
2013/10/02(水) 17:41:15.14ID:???5からだいぶ経ってるけど未だに新バージョンはやっぱ期待が出来ないのかなとかは分かるくらい
0077NAME IS NULL
2013/10/02(水) 17:42:12.71ID:???0078NAME IS NULL
2013/10/02(水) 17:47:36.73ID:???アホなの?
ここ二年ぐらいの大きなバージョンアップは5,6だけだというのはすぐにわかるし、
"mysql 5.6"でググれば昔の情報は出てこないだろ。
で、Oracle関連は"mysql oracle"とかで期間を最近1年でググったり、アップデートの動向は
"mysql 5.7"でググったりすればいいだろ。
>>77
2chのこの過疎スレの声より、もっとパワーユーザな有用な情報がすぐ手に入るのに、なんでググらないの?
0079NAME IS NULL
2013/10/02(水) 17:50:53.38ID:???0080NAME IS NULL
2013/10/02(水) 17:52:25.99ID:???0081NAME IS NULL
2013/10/02(水) 18:20:55.11ID:???『Publickey』
http://www.publickey1.jp/
『漢のコンピュータ道』
http://nippondanji.blogspot.jp/
0082NAME IS NULL
2013/10/02(水) 18:30:11.21ID:???同期処理中にマスタがクラッシュしたとき
スレーブだけ更新しちゃう場合ってある?
ACK送った後スレーブは勝手に更新しちゃうんだよね
0083NAME IS NULL
2013/10/02(水) 22:12:07.49ID:???スレーブからACK送った後、データ書き込む寸前にクラッシュしたらありえるんじゃね?
0084NAME IS NULL
2013/10/03(木) 00:41:53.26ID:???0085NAME IS NULL
2013/10/03(木) 00:56:34.90ID:???件数だけでいいならPercona Monitoring Plugins for Cactiで十分。
0086NAME IS NULL
2013/10/03(木) 16:20:01.53ID:???ありがとー試してみるー。
0087NAME IS NULL
2013/10/06(日) 02:36:42.14ID:???なんかサーバが落ちるんだけど…
0088NAME IS NULL
2013/10/06(日) 07:33:09.44ID:???環境も状況もログも書かずに答えられる
エスパーに期待しているなら待ってれば?
0089NAME IS NULL
2013/10/06(日) 16:54:08.00ID:A2OoqmBBDBサーバーのディスク容量が
一杯になったらどうしたらいいの?
0090NAME IS NULL
2013/10/06(日) 17:18:33.00ID:???0091NAME IS NULL
2013/10/06(日) 17:54:46.73ID:???mysql_upgrade -u root -p
したら治ったわw
インストールを解説したページに載ってないし
すっかり忘れてた。
しかしMySQLがダウンするだけじゃなくて、サーバごと逝くこともあるんだね。
VPSの人らには悪いことしたわ
0092NAME IS NULL
2013/10/06(日) 18:09:19.16ID:A2OoqmBBサーバーに繋げる限界までハードディスク積んだあとは
どうしたらいい?
もっと一杯繋げるストレージサーバーみたいなの導入するの?
0093NAME IS NULL
2013/10/06(日) 18:28:13.88ID:???サーバーを分散させるとか、Spiderとか使ってデータの分散するんじゃね?
0094NAME IS NULL
2013/10/06(日) 20:10:25.64ID:???倍の容量のHDを購入しましょう
0095NAME IS NULL
2013/10/06(日) 20:31:31.76ID:A2OoqmBBスパイダーか!検索したらそれ関連の情報が出てきた。
疑問が解消しました。ありがとう。
0096NAME IS NULL
2013/10/07(月) 15:23:46.06ID:???拡張バスも使い切ったん?
それはそれですごいが。
0097NAME IS NULL
2013/10/07(月) 21:57:45.07ID:qe3wFhbqデータが100件以上あるとして101件以降のデータをすべて消すにはどうしたらいいでしょうか
0098NAME IS NULL
2013/10/07(月) 22:30:50.40ID:???SQL文を勉強しましょう
0099NAME IS NULL
2013/10/07(月) 22:38:33.39ID:???http://toro.2ch.net/test/read.cgi/db/1371476534/
0100NAME IS NULL
2013/10/07(月) 23:19:31.03ID:???0101NAME IS NULL
2013/10/08(火) 10:08:47.31ID:???スレチだがヒントとして…
SELECT * FROM tab WHERE col = 'hoge' LIMIT 0 10;
としたとき、 SELECT * を DELETE に置き換えると
SELECTしたときに引けた分が消える。
さぁ、がんばれ。
0102NAME IS NULL
2013/10/08(火) 11:31:41.95ID:???ORDER BYしないと非決定性だぞ。
0103NAME IS NULL
2013/10/08(火) 22:42:10.31ID:???xampp(1.8.2.2)のMysqlのlog_buffer_pool_sizeのメモリの設定を大きくしたいのですが、innodb_log_file_sizeも一緒に大きくするようにとあったので
両方を倍に書き換えた後、立ち上げようとしたらエラーが出て立ち上がりませんでした。ググったらid_logfile0と1を削除とあったのでそうしたのですが立ち上がりません。
これはなにか手順を間違えたのでしょうか?
それかいっそmy.iniメのモリを書き換え以外で大量データを高速に処理できるようになる方法はないでしょうか。教えてください。
0104NAME IS NULL
2013/10/08(火) 23:13:16.27ID:???> エラー
エラーログを見る。
> 高速に処理
どんな基準で高速とするの?
あとその質問だとマシンを買い換えろでも良いよね?
とりあえず設定よりまずはSQLを見直すところから始めればいいんじゃないかな。
0105NAME IS NULL
2013/10/09(水) 07:35:46.72ID:???Windowsだとサービスで起動しようとするとinnodb のログ作成中にタイムアウトすることがあったはずだが、
環境も何のエラーかも書いてないような質問にはエスパーじゃないと�_
0106NAME IS NULL
2013/10/09(水) 08:46:01.58ID:???5.6未満ではinnodb_log_file_size書き換えるとibdata1とiblogfile*を消して再作成させないとダメ。
つまりデータベース初期化が必要。
消せないなら、innodb_log_files_in_groupを増やす。減らすのは再作成が必要だけど、増やすのは再起動だけでいける。
InnoDBログの性能はinnodb_log_file_size * innodb_log_files_in_groupに大体比例する。
0107NAME IS NULL
2013/10/09(水) 15:59:02.88ID:Y9V+5XoJ何回やってもsqlファイルじゃなくVHDLになる
こういう場合どうしたらsqlファイルになる?
0108NAME IS NULL
2013/10/10(木) 03:35:54.36ID:???/etc/my.cnf か ~/.my.cnf あたりの mysqldump セクションに xml って入ってるんじゃないかな
あったら、書き換えるか、--no-defaults オプションで頑張るか
なければ、shell の alias あたりを疑うくらいか
0109NAME IS NULL
2013/10/10(木) 13:56:04.62ID:???お返事ありがとうございました。
>5.6未満ではinnodb_log_file_size書き換えるとibdata1とiblogfile*を消して再作成させないとダメ。つまりデータベース初期化が必要。
クリティカルでした!処理も入力系以外は一気に高速化しました。助かりました!
>とりあえず設定よりまずはSQLを見直すところから始めればいいんじゃないかな。
ググったら入力系はボトルネックになりやすいみたいですね。SQL先月からの初心者だったので知りませんでした。
infileやautocommit=0も試してみます。
0110NAME IS NULL
2013/10/14(月) 19:56:19.24ID:???大体100万件程度のデータを流してサービスで実行しているsqlでテストしてるのですが、基本的に全てのレスポンスがポスグレより遅いです。
若干遅いのは良いのですが、コネクション数によってパフォーマンスが下がりにくい、もしサーバが耐え切れなくなればレプリケーションしてスレーブサーバを足していけばいいという認識ですが合ってますか?
ちなみに一番遅いクエリで0.7秒なので、許容範囲ではあるのですが・・・。
0111NAME IS NULL
2013/10/14(月) 20:03:27.37ID:???まずはクエリとか見直してみれば良いんじゃないかな?
PostgreSQLではそうでもないけど、MySQLで遅いクエリってあるから。
例えばサブクエリで遅くなってるとか、limit句が遅いとか。
0112NAME IS NULL
2013/10/14(月) 20:17:46.37ID:???返信ありがとうございます。
joinで取ってくる件数を減らす、複合indexを張る等の調整はしてみました。
その他join_buffer_sizeやsort_buffer_sizeなどの数値を変えてみたりして速くはなったのですが、それでも0.7秒程度かかってしまいます。
やっぱり0.7秒かかるクエリは許容できるものでは無いですかね・・・?
0113NAME IS NULL
2013/10/14(月) 20:24:00.87ID:???> 許容
要件によるとしか言いようがなくね?
とりあえずクエリならEXPLAIN駆使して最適化を頑張る。
それでもダメっぽいなら違う手段で高速化を試みるってのも考えてみれば?
0114NAME IS NULL
2013/10/14(月) 20:41:34.10ID:???ですよねぇ。。。ちなみに一秒間に10回ぐらい実行されるので個人的には0.0x秒まで持っていきたいです。
explainも試してみてインデックスはすべて使われてるのですが、group byとorder byを同時に使うとどうにもパフォーマンスが落ちてしまいます。
ちょっとmysql以外での最適化方法も含めて試してみたいと思います。ありがとうございました。
0115NAME IS NULL
2013/10/14(月) 21:22:09.67ID:???大体解決できそうです、MySQLは大量データをそのままorder byするとindexが使われなくなるんですね・・。
ある程度絞り込みを行う事で対応できそうです。有難うございました。
0116NAME IS NULL
2013/10/18(金) 19:23:00.28ID:???0117NAME IS NULL
2013/10/18(金) 20:11:05.08ID:???LEFT(str,len)
ストリング str からの左側の len 文字を戻し、引数が NULL である場合は NULL を戻します。
mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
http://dev.mysql.com/doc/refman/5.1/ja/string-functions.html
0118NAME IS NULL
2013/10/18(金) 22:51:43.80ID:???SQLを勉強しましょう
0119NAME IS NULL
2013/10/18(金) 23:48:29.65ID:???0120NAME IS NULL
2013/10/19(土) 10:45:03.00ID:JwXq+6XRメモリーちゃんと使い切れてる?
MyISAMで作ったテーブルなのにinnodb_buffer_poolにメモリーの7割割いてるとか
慣れない管理者はよくやるけど。
0121NAME IS NULL
2013/10/22(火) 03:17:29.60ID:V6xgv5I1コラムの型指定はどのようにすればよいでしょうか?それとも、PHPなどで整形してからでないと登録できないのでしょうか。
今のところ仕方なくtext型で登録しています。
0122NAME IS NULL
2013/10/22(火) 09:28:45.91ID:???0123NAME IS NULL
2013/10/22(火) 13:16:08.37ID:CoaG8hrm(id, @var , ~) SET date = STR_TO_DATE(@var, '%W %M %d %T JST %Y')
これで解決できました。
0124NAME IS NULL
2013/10/23(水) 16:29:35.41ID:/T7nfZcLクエリ帰ってくるのが遅く感じるまで分割意識しなくておけー?
0125NAME IS NULL
2013/10/23(水) 22:04:29.82ID:???後から切るのもつらいぞ
0126NAME IS NULL
2013/10/24(木) 01:19:03.59ID:???悪いとは言ってない
馬鹿にしてるだけ
0127NAME IS NULL
2013/10/26(土) 00:57:47.36ID:???コマンドを実行したら
#1026 - "ra get failed"とか言うエラーが出て
ググってももそれらしいものがヒットしないんだけど
これは何が原因なんでしょうか?
0128NAME IS NULL
2013/10/26(土) 09:23:12.92ID:???ディスクがいっぱいとか
0129NAME IS NULL
2013/10/26(土) 17:57:22.08ID:rPqGsWTxmalloc fail (数字)=(nil) (ii.c:数字) <数字>
と言うエラーに変わりました
メモリー周りが怪しい?
設定で何とかならないもんでしょうか?
0130NAME IS NULL
2013/10/26(土) 17:57:58.89ID:rPqGsWTx0131NAME IS NULL
2013/10/26(土) 18:08:32.38ID:rPqGsWTxでもなんかメモリー関係でエラーが出てるのは間違いなさそうだ
0132NAME IS NULL
2013/10/26(土) 18:41:58.78ID:???エスパーじゃないから色々設定いじったとか言われても分からん。
>>1のサイトを見た上で出直してくると良い。
0133NAME IS NULL
2013/10/26(土) 19:34:49.19ID:???0134NAME IS NULL
2013/10/27(日) 14:36:29.38ID:???考えるな 感じろ
0135NAME IS NULL
2013/10/27(日) 15:31:04.77ID:???0136NAME IS NULL
2013/10/27(日) 18:52:15.94ID:???"色々いじった"のが原因と推測するのが当然と思われるので、
サンプルの設定ファイルに差し替えてどうかをまず見てみる
0137NAME IS NULL
2013/10/28(月) 17:49:21.12ID:???0138NAME IS NULL
2013/10/28(月) 18:03:15.07ID:???0139NAME IS NULL
2013/10/28(月) 22:37:54.60ID:???でも今後はやっぱMySQLよりも、mariaDBが主流になっていくんだろうなぁ
5年かかるかな?
0140NAME IS NULL
2013/10/29(火) 08:00:19.89ID:???もう新規でmy入れる人は少ないよな
0141NAME IS NULL
2013/10/29(火) 08:06:07.90ID:???そんなに主流になりそうなの?>MariaDB
MariaDBも保守サポートがあるみたいだから入れるのは別にいいんだけど
0142NAME IS NULL
2013/10/29(火) 10:18:35.40ID:???日本は基本的に海外勢と比べるとワンテンポ、ツーテンポ遅れるから
0143NAME IS NULL
2013/10/29(火) 23:24:08.39ID:???0144NAME IS NULL
2013/10/30(水) 06:20:25.67ID:???0145NAME IS NULL
2013/10/30(水) 08:41:51.65ID:???パフォーマンス的にはMySQL5.6の方がまだ上なのかね。
0146NAME IS NULL
2013/10/30(水) 09:41:58.98ID:???0147NAME IS NULL
2013/10/30(水) 12:13:48.93ID:???0148NAME IS NULL
2013/10/30(水) 15:55:22.53ID:???Oracleが改良した部分はパクればいいんだし。
0149NAME IS NULL
2013/10/30(水) 18:37:43.60ID:???0150NAME IS NULL
2013/10/30(水) 22:58:12.59ID:Zcjfjy3F0151NAME IS NULL
2013/10/30(水) 23:56:57.27ID:eIx8z178どうしたらいい?
0152NAME IS NULL
2013/10/31(木) 00:08:08.70ID:???0153NAME IS NULL
2013/10/31(木) 00:32:37.83ID:2hfPmUNFREADロックにすると、ロックを取ったスレッドも書き込めなくなる。
WRITEロックにすると、ロックを取ったスレッド以外は参照もできなくなる。
全スレッドから参照はできて、書き込みはロックを取ったスレッドしかできないようなロックの仕方はありませんか?
0154NAME IS NULL
2013/10/31(木) 06:54:39.21ID:???0155NAME IS NULL
2013/10/31(木) 12:51:40.94ID:2hfPmUNF書き込みはロックを取らないとできない、複数スレッドから同時に書き込んでデータがおかしくならないようにしたい
ただし書き込み処理に時間がかかるのでその間も読み込みはストールしないようにしたい、そんな感じです
0156NAME IS NULL
2013/10/31(木) 13:03:05.51ID:???古いバージョンのマニュアルだけど、
http://dev.mysql.com/doc/refman/5.1/ja/innodb-transaction-isolation.html
の内容を理解して、MySQLがサポートしているトランザクション分離レベルでは要件を満たせないなら、
アプリ側で独自ロックをやるしかないね。
ただし、そのアプリの外側ではやり放題になるけど。
0157NAME IS NULL
2013/10/31(木) 14:05:06.56ID:rbtVJ87Z最新の10件を残して残りすべて削除するにはどうしたらよいでしょうか?
よろしくお願いします。
0158NAME IS NULL
2013/10/31(木) 14:48:24.87ID:???まずはその最新の10件をSELECTできるように、そして最新の10件以外を
SELECTできるようなればそれをDELETEに渡すだけだ。
って何の最新?
0159NAME IS NULL
2013/10/31(木) 15:11:00.76ID:rbtVJ87Zレスありがとうございます。
説明不足ですみません。最新とは登録した時間のことです。
最新のレコードをN件残して古いものを削除 したいのです。よろしくお願いします。
0160NAME IS NULL
2013/10/31(木) 15:50:55.08ID:???こんな感じでいいんじゃない?
ユニークなid無かったらそこも登録時間にする手もあるけど。
0161NAME IS NULL
2013/10/31(木) 16:08:21.82ID:rbtVJ87Zありがとうございます。
しかしながらエラーが出てしまいました。
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
mysqlのバージョンは5.5.34です。
0162NAME IS NULL
2013/10/31(木) 19:04:41.81ID:???「時間」という型はない
説明の仕方が分からなければCREATE TABLE文、入ってるデータを表すINSERT文、欲しい結果を書こう
あとSQLの質問はこっちで
http://toro.2ch.net/test/read.cgi/db/1371476534/
0163NAME IS NULL
2013/11/01(金) 15:24:17.87ID:???> 「時間」という型はない
アスペなの?DATETIME使えばいいだろ。
0164NAME IS NULL
2013/11/01(金) 16:08:49.98ID:???0165NAME IS NULL
2013/11/01(金) 16:19:24.54ID:???・・・とか言いたいんだろうか
0166NAME IS NULL
2013/11/01(金) 18:10:47.12ID:???0167NAME IS NULL
2013/11/01(金) 19:09:37.49ID:???あなたがエスパー能力の持ち主か
(ファミチキ下さい)
俺が思っている事を当ててみてくれ
0168NAME IS NULL
2013/11/01(金) 19:37:21.05ID:???ファミチキ無いならケンタ喰えばいい
0169NAME IS NULL
2013/11/03(日) 21:33:26.22ID:WS2i8ToBhttp://wiki.algomon.com/wiki/%E4%BA%8B%E5%89%8D%E9%9D%A2%E6%8E%A5
0170NAME IS NULL
2013/11/04(月) 15:52:39.13ID:???レコードを削除するにあたって、
(1) delete文でレコードを物理削除する
(2) 物理削除はせずにupdateで削除フラグをONにするだけ
(後からまとめてバッチで物理削除)
のどちらを選ぶのが負荷的やパフォーマンス的にベターですか?
DBの用途はBtoC系Webサービスなんですが。
0171NAME IS NULL
2013/11/04(月) 15:54:41.87ID:???外部キーとか入り組んでてカスケードで消える物が多いとか
そう言う状況でも変わってくるだろう。
0172NAME IS NULL
2013/11/04(月) 16:59:19.74ID:???何か問題があった時データが存在していたほうが便利だし。
0173NAME IS NULL
2013/11/04(月) 17:59:35.17ID:ZLFi3YdQ0174NAME IS NULL
2013/11/05(火) 01:26:26.71ID:???slaveを再起動したときも、オプションにskip_slave_start = 1が入ってない限り自動的にレプリケーションが再開される。
slaveはmaster側のDB操作とか記憶されたバイナリログの位置を記憶してるから、masterやslaveが停止したところで記憶したログの位置から処理を初めてくれる。
そういえばskip_slave_start = 1指定するとログのロテートする都度、START SLAVE;実行するハメになるんだけど何かスマートな方法ってあるの?
0175NAME IS NULL
2013/11/05(火) 01:57:50.08ID:???基本的には、174 が書いてる通り。
Master と切断されたら master-connect-retry(default:60sec) で設定された間隔ごとに
再接続を行う。現在の値は show slave status の Connect_Retry で確認できる。
error_log にもその際のメッセージが書かれてると思うし、show slave status でも出たはず
ログ:
[ERROR] Slave I/O: error connecting to master 'user@host:3306' - retry-time: 60 retries: 86400, Error_code: 1130
>>174
うちでは、skip_slave_start 設定してないし、
flush binary logs/ flush logs や reset master は使わないのでわからないのだが
skip_slave_start はトラブル時に勝手に再開しないように設定してる?
もしそうならば、ローテートしないようにするぐらいしかないんじゃないかな..
# slow_log/error_log のためにローテートしてるなら、5.5 以降の個別ローテートを検討で
0176NAME IS NULL
2013/11/05(火) 07:48:45.21ID:???クラッシュした時とか勝手に再開されてデータの不整合起こらないように、、なんだけど特に運用する上での必須という訳じゃなさそうだしオフにしときます。
あざっす!
0177173
2013/11/05(火) 21:42:37.68ID:KR1DJtGuマスター側で show master status した結果の File と Position を使って、
スレーブ側で
change master to master_host='masterhost', master_user='repuser', master_password='reppass', master_log_file='mysql-bin.000001', master_log_pos=100;
とか実行するとレプリケーションが開始するところまで確認できました
その後、マスター側のMySQLをリスタートかけると show master status の File と Positionの値が変わってしまうので
スレーブ側で同期がとれなくなってしまうのです
これはこういうものだと割り切って、マスターがリスタートするたびに show master status と change master to xxx を実行しないといけないということでしょうか
0178NAME IS NULL
2013/11/05(火) 21:48:06.51ID:???マスター側が再起動しても、少し待てばスレーブも同じPositionになるはずだけど。
エラーログ一度確認してみた方がいいんじゃない。
0179NAME IS NULL
2013/11/05(火) 22:09:15.40ID:KR1DJtGu0180NAME IS NULL
2013/11/05(火) 22:13:19.83ID:KR1DJtGu再同期取るまで多少時間がかかるんですね
マスター再起動、Insertですぐにスレーブに反映されると思ってました
みなさん、ありがとうございました
0181NAME IS NULL
2013/11/05(火) 22:18:23.44ID:???0183NAME IS NULL
2013/11/07(木) 00:34:47.05ID:???0184NAME IS NULL
2013/11/07(木) 20:19:39.25ID:???0185NAME IS NULL
2013/11/08(金) 00:15:06.12ID:???0186NAME IS NULL
2013/11/08(金) 07:08:12.01ID:???0187NAME IS NULL
2013/11/08(金) 08:06:27.41ID:???削除日付推奨
0188NAME IS NULL
2013/11/08(金) 08:30:18.49ID:???パーティショニングはしとくことお勧め
0189NAME IS NULL
2013/11/10(日) 02:54:45.51ID:???sqlスクリプトの中で指定することはできますか。
たとえば mysql --slient や mysql --comments と
同じような動作にさせたいとき、sqlスクリプトの
中で何かオプションを設定すれば、--silent や
--comments と同じ動作になる、みたいなことは
できますか。
setコマンドでできるなら、variable名を教えてください。
よろしくお願いします。
0190NAME IS NULL
2013/11/10(日) 08:31:47.95ID:/L0A8Xk+0191NAME IS NULL
2013/11/11(月) 01:24:22.90ID:???Perconaは使ってるの聞いたことが無い。性能いいみたいだけど、使ってる事例とかあんま聞かないから仕事じゃ使えないな・・・。
個人で遊ぶには面白そうだけど。
0192NAME IS NULL
2013/11/13(水) 07:16:20.80ID:???mysqldumpをパイプ付きで実行した時にエラー戻り値を正しく取りたいです
mysqldump -uhoge > backup.dmp でエラー発生
echo $? 2が表示
mysqldump -uhoge | gzip -c > backup.dmp でエラー発生
echo $? 0が表示
mysqldump -uhoge > gzip -c > backup.dmpだとエラー戻り値も
取れるしバックアップも取れているみたいなんですけど
これで大丈夫ですか?
|と>の違いがよく判ってないです
0193NAME IS NULL
2013/11/13(水) 08:01:09.96ID:???0194NAME IS NULL
2013/11/13(水) 08:12:47.97ID:???こんな書き方出来る shell でもあるのかと思った。
0195NAME IS NULL
2013/11/13(水) 09:35:30.97ID:???sample_id int(1025) UNSIGNED
scaler_id int(513) UNSIGNED
特に問題はないのですが+1をすることに何かデータベースを使用する上で良いことがあったりするんでしょうか?
0196NAME IS NULL
2013/11/13(水) 10:15:09.16ID:???0197NAME IS NULL
2013/11/13(水) 10:16:23.62ID:???びっくりしてやってみた(bash)
backup.dbというファイルに未圧縮でダンプされる
gzipというファイル名の空ファイルが出来る
"-c"はmysqldumpへのオプションとして渡る (--complete-insertのalias)
そりゃそうだね
0198NAME IS NULL
2013/11/13(水) 10:35:41.48ID:???元質問 >> bashならPIPESTATUSを調べれ。他は知らん
0199NAME IS NULL
2013/11/14(木) 06:12:16.01ID:???0200NAME IS NULL
2013/11/14(木) 18:09:51.43ID:???場合により符号分とかでキリがよくなるが(MySQLの話でもなくなるが)
そもそもその指定はおかしい。
いや、もしかしてそういう指定とかあるの?って不安になった。
0201NAME IS NULL
2013/11/14(木) 19:23:45.43ID:???それってZEROFILL属性つけた時に何桁で揃えるかで、実際何桁格納できるかには関係なかったかと。
http://dev.mysql.com/doc/refman/5.6/en/numeric-type-attributes.html
0202NAME IS NULL
2013/11/14(木) 21:56:52.94ID:0ShVoWYr例えば
SELECT * FROM a LEFT JOIN b USING (id) LEFT JOIN c on b.no = c.no WHERE c.no IN ( 1,2,3);
の場合、aにb→cの順でjoinし、最後にwhereの条件で絞るのでしょうか?
それとも、a→b joinの後に、where → c joinとなるのでしょうか?
どなたか教えて下さい。
0203NAME IS NULL
2013/11/15(金) 07:17:38.18ID:???http://toro.2ch.net/test/read.cgi/db/1371476534/
0204NAME IS NULL
2013/11/15(金) 09:18:33.63ID:???他のRDBMSは知らないが、都度オプティマイザーがどっちが効率的かを判定して決める。
0205NAME IS NULL
2013/11/15(金) 09:50:39.22ID:???他のRDBMSは知らないが、都度オプティマイザーがどっちが効率的かを判定して決める。
0206NAME IS NULL
2013/11/16(土) 14:48:08.36ID:???select * from hogehoge where a = 1 order by b limit 10;
とかのクエリはaとbのマルチカラムインデックス張らないとaのインデックスしか有効にならないって認識なんですが合ってますかね?
PostgreSQL普段使っててちと勉強中です。
0207NAME IS NULL
2013/11/16(土) 14:59:59.80ID:???explain して比較してみればいいんじゃないの。
0208NAME IS NULL
2013/11/16(土) 15:29:08.58ID:???explainしてインデックスの利用状況確認してるんですが、一回のソートで一つのインデックスしか使われないんですね・・・。
実際にはjoinしてwhere かけているsql文なのですが、マルチカラムインデックスを作成してもuse index句を入れないとマルチカラムインデックスが使われませんでした。
設定とかでマルチカラムインデックスを優先して使ってもらう方法ってありますか? 特定のORM使ってるので、use index入れるのが辛いので・・・。
0209NAME IS NULL
2013/11/16(土) 15:42:34.74ID:???それはデータの中身や量の問題だよ
プランナがインデックスよりスキャンのほうが好ましいと思えばそうなる
設定だとrandam_costいじれば良いが、ここMySQL板だぞ
0210NAME IS NULL
2013/11/16(土) 15:52:38.74ID:???すいません、言葉足らずでした。PostgreSQLを普段使っててMySQLを勉強中という意味です。
案件でMySQLが多いので運用のノウハウとか知りたくて色々弄ってる最中です。
0211NAME IS NULL
2013/11/17(日) 01:55:40.09ID:???select * from A inner join B on A.b_id = B.id where B.colum1 order by A.create_date;
0212NAME IS NULL
2013/11/17(日) 01:56:24.40ID:???select * from A inner join B on A.b_id = B.id where B.colum1 = 'hogehoge' order by A.create_date;
0213NAME IS NULL
2013/11/17(日) 02:08:55.11ID:???DDLも書かずにそう言われても答えようがない
0214NAME IS NULL
2013/11/17(日) 09:41:57.03ID:???use indexはどうなった?利用したらどうなんだ?
0215NAME IS NULL
2013/11/17(日) 09:45:39.79ID:???移行が成功したって思った後に最初につまづくのが大体
order by、group byや複合カラム等へのインデックスの適用がされていなくて
パフォーマンスがた落ちってとこだからな。要注意
0216NAME IS NULL
2013/11/17(日) 11:57:28.11ID:???すいません、DDLはこんな感じです。
create table A (
id integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
create_date datetime
);
create table B (
id integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
column1 varchar(64)
);
>>214
ORM使ってる都合上、あんまりやりたくなかったです。でも使うのが定石なら仕方ないですね。
>>215
まじでそうですね・・・。ノウハウ積めればいいので良い経験にはなりますが、業務でこれはやりたくない・・。
ちなみにPostgreSQLに対してMySQLが優位なのって下記の点だと思ってるのですが他にありますか?
・同時接続数が増えてもパフォーマンスの劣化が起こりにくい
・レプリケーション機能が枯れているので安定性があり、情報がそこらじゅうに転がっている
・パーテショニングが比較的使いやすい
・設定が楽
オプティマイザが改良されてるMariaDBで試してみます。
0217NAME IS NULL
2013/11/17(日) 12:56:26.95ID:???a.create_dateにインデックス作れ。
オプティマイザーの問題以前に、存在しないインデックスは選びようがない。
0218NAME IS NULL
2013/11/17(日) 13:51:53.09ID:???すいません、インデックスのDDL書くの忘れていました。
a.create_dateとb.column1にはインデックス張ってます。
マルチカラムインデックスも作成したのですが、joinとorder byを組み合わせるとuse indexを指定しないとインデックスを使ってくれませんでした。
0219NAME IS NULL
2013/11/17(日) 16:08:59.69ID:???データの問題で使ってくれないだけじゃないかな?
うちではこういう結果になる (A.create_dateとB.column1はランダムで生成)
mysql> SHOW CREATE TABLE A \G SHOW CREATE TABLE B \G
*************************** 1. row ***************************
Table: A
Create Table: CREATE TABLE `A` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`create_date` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `A_create_date_idx` (`create_date`)
) ENGINE=InnoDB AUTO_INCREMENT=65521 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
*************************** 1. row ***************************
Table: B
Create Table: CREATE TABLE `B` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`column1` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=262135 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> EXPLAIN SELECT * FROM A JOIN B ON B.id = A.id WHERE B.column1 = CAST(RAND() AS CHAR) ORDER BY A.create_date \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: A
type: index
possible_keys: PRIMARY
key: A_create_date_idx
key_len: 6
ref: NULL
rows: 33157
Extra: Using index
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: B
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 8
ref: test.A.id
rows: 1
Extra: Using where
2 rows in set (0.00 sec)
0220NAME IS NULL
2013/11/17(日) 17:00:44.41ID:???MySQLのオプティマイザはアホの子なので、ある程度データが入ったテーブルでJOINするとかなり見誤る。
USE INDEXでしのげるなら付けてあげて。。
0221NAME IS NULL
2013/11/17(日) 17:24:19.97ID:???有難うございます、そこまでやって頂いて感謝です。
おっしゃる通り、どうやらデータ量(100万件ぐらい)が若干多いせいみたいでオプティマイザがインデックス使ってくれないみたいです。
色々試してみたのですが、下記の方法でインデックスを使ってくれるようになりました。
改善前 SELECT * FROM A JOIN B ON B.id = A.id WHERE B.column1 = CAST(RAND() AS CHAR) ORDER BY A.create_date;
改善後 SELECT * FROM A JOIN B ON B.id = A.id WHERE A.create_date < now() and B.column1 = CAST(RAND() AS CHAR) ORDER BY A.create_date;
思ったより面倒な対処しなくて済みそうで良かったです、有難うございます!
>>220
そうですね・・・ちとアホの子ですね・・・。小さい規模はPostgreSQLで、大規模はMySQLでってのが少しわかりました。
小さい規模はORMでSQL文気にしないでプログラムしても大抵インデックス使われるけど、MySQLはオプティマイザを考慮したSQL文書かないとダメだからちょっと工数かかる、その代りスケールしやすいって感じなんですかね。
0222NAME IS NULL
2013/11/17(日) 17:55:23.84ID:???まず基本として
USE INDEXをつけてインデックスを使うものは
データやプランナの問題か、根本的に必要がない。
USE INDEXをつけてインデックスを使わないものは
DBの仕様の問題か、インデックスの貼りかたの問題
これPostgreSQLでも常識だろうが
で、USE INDEXをつけたときとつけないときの、応答速度はどうなんだい?
>>221
>小さい規模はPostgreSQLで、大規模はMySQL
それは気のせいだ
0223NAME IS NULL
2013/11/17(日) 18:19:00.46ID:???USE INDEXをつけてインデックスが使われた場合は0.03秒、使われなかった場合は1.2秒といった結果でした。
PostgreSQLは適当にSQL文書いても、割とインデックス使ってくれます・・・。
0224NAME IS NULL
2013/11/17(日) 19:23:22.79ID:???インデックスを使わないシークの数の上限設定ができたはず。
0225NAME IS NULL
2013/11/17(日) 23:19:03.43ID:???有難うございます、調べてみます。
0226NAME IS NULL
2013/11/18(月) 00:03:34.97ID:???昔と違って今だと、シビアにチューニングできなければつらいだけ
ポテンシャルはMySQLのがまだ高いけど、大体はPostgreSQLに負ける
0227NAME IS NULL
2013/11/18(月) 00:48:29.83ID:???0228NAME IS NULL
2013/11/18(月) 01:27:01.33ID:???同じく出来るなら使えばいいんじゃね
ホスティングとか自社サービスじゃない系はPostgreSQLかそれベースのものが増えてるからな
0229NAME IS NULL
2013/11/18(月) 18:23:49.15ID:???0230NAME IS NULL
2013/11/18(月) 19:20:10.35ID:???0231NAME IS NULL
2013/11/18(月) 19:20:33.81ID:???0232NAME IS NULL
2013/11/18(月) 22:11:09.31ID:???標準機能とでも思ってるのでは
0233NAME IS NULL
2013/11/18(月) 23:41:16.44ID:WRQu7dQ3わざわざ会社にまで電話かけてくんなマンカス>日本オラクルの馬鹿女
0234NAME IS NULL
2013/11/19(火) 00:45:22.59ID:???> >>221
> >小さい規模はPostgreSQLで、大規模はMySQL
> それは気のせいだ
元ネタはこれだな。
http://www.slideshare.net/matsunobu/ss-28303485
0235NAME IS NULL
2013/11/19(火) 08:40:09.04ID:???0236NAME IS NULL
2013/11/19(火) 10:16:03.29ID:???大規模ってそういう事じゃないの?
0237NAME IS NULL
2013/11/19(火) 10:45:52.58ID:???枯れきってるって意味ではな
サポート頼るならpostgresのがいい
0238NAME IS NULL
2013/11/19(火) 13:08:48.11ID:???読んできた。結構知識が偏ってるようで
2004年で日本は既にMySQL > PostgreSQLだったような
今は逆に、世界の方がPostgreSQLの比率が多い
0239NAME IS NULL
2013/11/19(火) 13:41:47.64ID:???MySQLはオワコン
かといって素直にみんなMariaいくかと言えば
「まてよ」と一度考察が入るのでそうでもない。
オラクルのMySQLつぶしはほとんど成功だな
0240NAME IS NULL
2013/11/19(火) 14:32:02.61ID:???FaceBookが利用してるやり方やDeNAがやってることとか考えると
MySQLじゃないとだめな用途はちゃんとある
PostgreSQLもビッグデータ系で多々使われるようになってるし
クラウドと実は相性が良いということもあるし
どっちもこれからまだまだいける
0241NAME IS NULL
2013/11/19(火) 15:56:51.82ID:???>FaceBookが利用してるやり方やDeNAがやってることとか考えると
>MySQLじゃないとだめな用途はちゃんとある
例えばどんな? 否定でなく、単純に知りたい。
>>238
> 読んできた。結構知識が偏ってるようで
俺もそう思う。大規模の定義がFBとGoogle。この2社以外はコスト的にAWSに敵わないみたいに読める。
実際はそんな簡単じゃないんだけども。
データを自社に置くか置かないをコストだけで判断しない業種がたくさんあるわけだが、
そういう視点がすっぽり抜けてる。
0242NAME IS NULL
2013/11/19(火) 16:12:06.41ID:???FaceBookの利用は、そのURLに書いてあった内容だよ。
DeNAは
http://www.publickey1.jp/blog/10/nosqlmysqldenamemcached75.html
http://itpro.nikkeibp.co.jp/article/Interview/20110801/363141/
0243NAME IS NULL
2013/11/19(火) 17:28:08.74ID:???いや、2010年ころの話をされても。。。。って思った訳っす。
上のスライドの趣旨としては、2000年−2005年くらいの状況として
大規模はMySQLを選んだみたいに言ってるようにみえるから。
0244NAME IS NULL
2013/11/19(火) 17:38:27.38ID:???ついでにいうとFBやGoogleみたいに中身をぐちゃぐちゃに改造して
大規模対応って言われてもなぁみたいな。
中を改変しちまえば、そりゃなんでもできるじゃないという。
MySQLは大規模に向いているという理由が理解できない。
0245NAME IS NULL
2013/11/19(火) 19:23:08.56ID:???0246NAME IS NULL
2013/11/19(火) 19:24:33.26ID:???どこにもそんな古い話ではかかれてないよ
今の話だよ
0247NAME IS NULL
2013/11/19(火) 19:26:31.32ID:???それは作者に聞いてください
MySQLがPostgreSQLより大規模に向いてるとは僕は思ってない
0248NAME IS NULL
2013/11/19(火) 19:34:05.44ID:???RDBMSのコネクションプーリングとかその辺の話 - wyukawa’s blog
http://d.hatena.ne.jp/wyukawa/20131116/1384621867
0249NAME IS NULL
2013/11/19(火) 19:45:12.17ID:???知識は偏ってるね。
まぁ、元 MySQL のサポートエンジニアでその後は WEB系でしか働いてない人だししゃーないかな。
>> 俺もそう思う。大規模の定義がFBとGoogle。この2社以外はコスト的にAWSに敵わないみたいに読める。
>> 実際はそんな簡単じゃないんだけども。
>> データを自社に置くか置かないをコストだけで判断しない業種がたくさんあるわけだが、
>> そういう視点がすっぽり抜けてる。
俺もそう思うが、そういう人は相手にしてない資料なんじゃないかな。
正直、人事系とか外に出すなんてって思っちゃうけど、
今後 AWS 使うのは普通になる世の中が来るのかね。
昔は業務系、今は WEB系で働いてるが、WEB系に関しては、
よっぽどのことがない限りコストでは AWS の RDS のほうが有利だね。
細かなチューニングとか、トラブル時の調査とかしにくいけど、
チューニング出来る人雇うぐらいならスケールアップしたほうが安いっていう。
0250NAME IS NULL
2013/11/19(火) 20:33:40.90ID:???一通り見た。
コネクションプールを使わない場合は
MySQLのがコネクションを貼るコストがスレッドだから安いから速いってことか
複数台構成の場合コネクションプール使うし
1台の場合貼りっぱなしで問題ないから理解が出来なかった
0251NAME IS NULL
2013/11/19(火) 20:57:41.27ID:???コストの話も極論だよな。つうか、DBAなんてコスト部門でしかないわけでさ。
効率化すればするほど自分たちのクビを締めることになるんだよ。
だからMySQL使ってると、
バージョンアップ毎に膨大な作業が発生してDBAのクビが繋がる、
マッチポンプ ウマーって思うときもある。
>>250
そう。そのレベルでMySQL大規模有利っておかしい。
JAVAならプーリング使えばいいし、LLでもpgpool使えばよかったわけだし。
0252NAME IS NULL
2013/11/19(火) 21:08:15.31ID:???> まぁ、元 MySQL のサポートエンジニアでその後は WEB系でしか働いてない人だししゃーないかな。
キャリア戦略で「ダメな技術は誰もダメといわない。自分で見分けろ。」って書いてるけど、
これってMySQLのことかと思ったw
0253NAME IS NULL
2013/11/19(火) 22:40:00.85ID:???あれはポスグレへの接続コスト削減とロードバランシングか主なメリット。
それとも今のバージョンでは1コネクションで同時にクエリー発行できたりするの?
0254NAME IS NULL
2013/11/19(火) 22:55:21.61ID:???スライドの主張についての話なら。
接続数はMySQLもポスグレも変わらないだろ。カネ払ってスレッドプール入れるなら別だけど。
接続数が多い場合、昔はポスグレもMySQLも遅かったよ。
そんでポスグレのほうが並列実行性能がはやく向上した。
InnoDBはずっと遅いままだった。
0255249
2013/11/20(水) 00:27:28.94ID:???VACUUMのせいで避けるようになってしまってたな。
レプがないのは、Web系では結構つらい印象(参照系がおおいので)
大規模、小規模関係なく、プール(≠永続化)しない場合は
スレッドベースである MySQL のほうが性能は稼げるかな。
プールをはさむと管理、トラブル対応めんどいとかもあるし。
0256NAME IS NULL
2013/11/20(水) 00:36:15.63ID:???レプとVACUUMの問題が解決してから世界で一気に利用者増えたし
そういうことなんだろうな
台数が多いとプールはさんだ方が管理、トラブル対応は楽よ
0257249
2013/11/20(水) 00:41:29.88ID:???> コストの話も極論だよな。つうか、DBAなんてコスト部門でしかないわけでさ。
> 効率化すればするほど自分たちのクビを締めることになるんだよ。
> だからMySQL使ってると、
> バージョンアップ毎に膨大な作業が発生してDBAのクビが繋がる、
> マッチポンプ ウマーって思うときもある
要は、AWS で RDS(マネージドDB)使うのが当たり前になると、
そういう仕事が少なくなるから、フルスタックエンジニアに成るか、
スペシャリストになって AWS では満足しないような大規模なところで
働くかしかなくなってくるよって書いてあるんだよね。
AWS(RDS) なんてって思うっちゃうけど、利便性とか対障害性とか
本当にローコストで使えてしまって、エンジニアとしてあれに対抗するの
きちいって最近いつも思ってる。
0258NAME IS NULL
2013/11/20(水) 00:45:35.01ID:???オラクルに問題があるだけじゃないの?
0259249
2013/11/20(水) 00:51:08.95ID:???> レプとVACUUMの問題が解決してから世界で一気に利用者増えたし
> そういうことなんだろうな
多分最大の問題は Oracle だ。
あのニュースが流れた時、ポスグレに移行するかほんとうに悩んだ。
> 台数が多いとプールはさんだ方が管理、トラブル対応は楽よ
プールがある方が性能は上がると思うんだけど、
管理とかトラブルはどうなんだろ。
接続先を増やすときとか、アプリのコードだけじゃなくて、
プールの設定も追加しないとだめだよね?
別のものを挟むとやっぱり面倒くさくない?
0260NAME IS NULL
2013/11/20(水) 00:58:44.65ID:???基本アプリにはコネクションプールが接続先
なので、DB台数が増えたときはコネクションプールの設定だけ
0261NAME IS NULL
2013/11/20(水) 01:23:35.52ID:???Linuxなら今やスレッド起動もプロセス起動もコストはほとんど変わりないけどね。
2000年頃は確かに違ったけど、2005年頃には(カーネルバージョン忘れたけど)
プロセス起動も軽快になったんだけどね。
レプリケーションは確かにWEB系では必須だわな。
ただし、非同期レプリケーションで参照分散つうのが大規模といわれてもなぁと思うわけだ。
>>257
>要は、AWS で RDS(マネージドDB)使うのが当たり前になると、
>そういう仕事が少なくなるから、フルスタックエンジニアに成るか、
>スペシャリストになって AWS では満足しないような大規模なところで
>働くかしかなくなってくるよって書いてあるんだよね。
それは一理あるんだけど、コスト+利便性でいえば集中型が最もよいけど
世の中、かならず集中と分散を繰り返すじゃない?RDSの先に何がくるか考えてるよ、俺。
スライド書いた人、ソニー、MySQL、DeNA、顔本らしいね。いく先々クラッシュしてるのが面白いと思った。
そういう価値観で会社選んで、キャリア戦略なんつうスライド書いたんだなって。
0262NAME IS NULL
2013/11/20(水) 04:44:14.06ID:???ファイルシステムレベルでオンラインバックアップの取得が可能
レプリカも全く止めずに作成可能
これがいい
0263NAME IS NULL
2013/11/20(水) 09:26:41.73ID:Md8IW4i/nippondanjinippondanji2010/08/06 14:44
MySQLをよく知る者です。少し補足を入れさせてください。少し誤解があるようなので。
初回コピー時ですが、これは特に更新を停止せずに行うことが可能です。(ただしInnoDB利用時に限りますが、InnoDBがほぼ標準なので問題ないと思います。)まず第一の方法は、ZFSやLVMなどのスナップショットを利用する方法です。
nippondanjinippondanji2010/08/09 00:28
こんばんは。
> FLUSH TABLES WITH READ LOCK は一瞬では終わらないでしょうから、問題になるケースもあるのではないでしょうか? PGのオンライン・バックアップは、一瞬たりともロックを必要としません。
そういうニーズがある場合、MySQLではファイルシステムやストレージ側のスナップショットを使うことが多いですね。MySQL Enterprise Backup(旧名InnoDB Hot Backup)などを利用してもロック不要のオンラインバックアップが可能です。
結構、MySQLではオンラインバックアップ出来ないということをおっしゃる方が多いのですが、実際出来ますから、あんまり「出来ない出来ない」とは言わないで欲しいです。
と、自称ギークは言っておりますがw
0264NAME IS NULL
2013/11/20(水) 13:26:25.30ID:???要するに出来ないんだろ。
こいつの突っかかり方キモイな。
0265NAME IS NULL
2013/11/20(水) 13:54:35.08ID:???> PostgreSQLは、OracleがSun Microsystemsを買収してMySQLを手中にして以降、人気が増大している。
> OracleはMySQLのオープンソースな側面に関心を示さなくなったため、メンテ放棄を恐れたユーザはPostgreSQLへの引越しを開始したのだ。
これから日本は>>234に書いてあるような日本市場の特殊性が起きるわけだ
0266NAME IS NULL
2013/11/20(水) 14:23:40.46ID:???>こいつの突っかかり方キモイな
こいつだなんて、自称ギーグの日本男児様をしらないのかw
日本男児様のブログさえ読んでればトランザクションも知らないWEB野郎たちは幸せに暮らせるんだ。
なにせ日本男児様はMySQLを完全無欠にみせてくれるからw
0267NAME IS NULL
2013/11/20(水) 20:29:36.32ID:???0268NAME IS NULL
2013/11/20(水) 20:36:43.67ID:???FDWのエクステンションつくればいいんでね?
0269NAME IS NULL
2013/11/20(水) 21:29:52.99ID:kMGPfKTL0270NAME IS NULL
2013/11/20(水) 21:52:33.24ID:???0271NAME IS NULL
2013/11/20(水) 23:05:59.44ID:???LAMP
俺はWin+MySQL+Excelですけどw
0272NAME IS NULL
2013/11/21(木) 00:35:20.21ID:???> これから日本は>>234に書いてあるような日本市場の特殊性が起きるわけだ
どうだろうねえ。
新規プロダクトはポスグレも増えるだろうけど、
すでにMySQL方言でガチガチにつくりこんだプロダクトはマリア一択だね。
オープンソースのデファクトプロダクトの多くはMySQL依存が強烈だから。
0273NAME IS NULL
2013/11/21(木) 00:40:25.85ID:???0274NAME IS NULL
2013/11/21(木) 00:48:56.07ID:???0275NAME IS NULL
2013/11/21(木) 08:34:09.35ID:???いやいや、世界がポスグレに流れるのかって。
もともとビジネスユースはOracle->ポスグレの流れはあった。ビジネスユースでMySQLなんて使いものにならないじゃない。
まともにジョインもできない、コロコロ仕様がかわるし。
WEB系はMySQLが強くて、オープンソースのプロダクトもMySQL依存が強い。
MySQL独自SQLを使いまくってるプロダクトが多いから、いまさらポスグレに移植できないものも多いのが実情。
どのプロダクトだってのは書かないけど、かなり多いよ。
移植が失敗したプロダクトもいくつか知ってる。どれもその分野のデファクトでポスグレ未対応。
DB詳しくない人たちが開発するから、MySQL独自機能をつかいまくって移植不可能なくらい
複雑なコードになってたり、
「PHPのDBO使ってるから移植できるっしょ」くらい軽いノリの開発者ばかりなんで
移植の問題自体を認識されてないとか。
DB屋とアプリ屋の溝はとても深いよ。
0276NAME IS NULL
2013/11/21(木) 08:39:57.24ID:???> mariaってinnodb使えなくて大丈夫なの?
MariaDBはInnoDBバンドルされてるよ。
InnoDBは一応オープンソースだし、Oracleが改造した機能をMariaDBも独自に取り込んでる。
それとInnoDB互換のXtraDBもバンドルされてるし。
0277NAME IS NULL
2013/11/21(木) 09:07:16.26ID:???0278NAME IS NULL
2013/11/21(木) 09:13:47.33ID:???それでライセンスとかオラクルの存在とか大丈夫なの?
mysqlから世界が逃げ出したのって、INNODBが買収されたとき始まったんよね
0279NAME IS NULL
2013/11/21(木) 09:24:01.84ID:???使ってみたいけどサーバースペックある程度無いとinnodbと性能変わらないんだっけ?
0280NAME IS NULL
2013/11/21(木) 09:42:34.94ID:???性能がどういういう奴にかぎって、ろくでもない馬鹿SQL走らせてるよなあ。
ベンチマークばっかやってる奴とか。
0281NAME IS NULL
2013/11/21(木) 09:44:57.27ID:???だからオープンソースっていってるじゃん。
マリアだってMySQLのフォークなんだし。
自分たちでなんとかするのがオープンソース。
0282NAME IS NULL
2013/11/21(木) 09:47:37.57ID:???ライセンスやオラクルに対する見方が違うのがよくわかった
0283NAME IS NULL
2013/11/21(木) 11:36:23.02ID:???開発元はPercona。 5.5のXtraDBはMySQL 5.5から、5.6のXtraDBは MySQL 5.6からブランチしなおしてるから、
Oracle がMySQL潰したら多分進化は止まる。
進化は止ま るけど既存のフォークはGPLのまま影響を受けない ので、今あるところまでは問題なくXtraDB使える (これはInnoDBも一緒だが)
http://www.percona.com/software/percona-xtradb
XtraDBとInnoDBは共存できない。XtraDBが入って る環境でCREATE TABLE .. Engine= InnoDBってやる とXtraDBが使われる。 例外的に10.0.3〜10.0.5くらいではInnoDBが入って いたけど、MariaDBでは5.3以来ずっとXtraDB。
0284NAME IS NULL
2013/11/22(金) 16:14:50.55ID:???maria5.5.32にstorage/innobaseとstorage/xtradbがあるんだけど、
それでもCREATE TABLE .. Engine=InnoDBってやるとXtraDBになるの?
だとすると、なんでソースがバンドルされてんだろ。
0285NAME IS NULL
2013/11/22(金) 22:05:01.99ID:???なんでか知らないけど昔から両方ある。
Percona ServerのXtraDBはstorage/innobaseの下にしかないんだけどね。
SHOW ENGINESをよく見ると、InnoDBの説明にXtraDBって書いてあって、どっちやねんてかんじだけど。
0286NAME IS NULL
2013/11/23(土) 07:16:12.52ID:qVAyetp/タブレットにインストールすることは
可能?
まったく的外れだったら申し訳ない
0287NAME IS NULL
2013/11/23(土) 07:19:10.96ID:???0288NAME IS NULL
2013/11/23(土) 07:38:07.05ID:???windows8がそのまま入ってるんでしょ?あれ
タブレットに入れる意味はないと思うけどな
0289NAME IS NULL
2013/11/23(土) 08:55:54.32ID:qVAyetp/プラットホームを書き忘れてました
Android4.2.2 Snapdragon
タブです
Windowsタブだったら問題なかったんですが
いかんせんandroidなんで、
外出先での勉強用としてと思ってます
NotePC持ってるんですが
タブレットの軽さに慣れてしまって。
0290NAME IS NULL
2013/11/23(土) 09:06:30.04ID:???どう入れるのか知らんがarmでもmysqlは動くようなので入れようと思えば入れらるんじゃないか
足りないパッケージは多そうだけど
0291NAME IS NULL
2013/11/23(土) 09:47:49.05ID:???android標準dbだし
0292NAME IS NULL
2013/11/23(土) 10:10:20.34ID:???Androidスマホだけど、Bit Web Serverってのを使ってる。200円くらいだったはず。
0293NAME IS NULL
2013/11/26(火) 15:31:50.01ID:???mysql5系の質問です
DBを作る時の「MyISAM」と「InnoDB」の違いがよくわかりません。
ゴミでもわかりやすいように教えて頂けないでしょうか?
0294NAME IS NULL
2013/11/26(火) 15:40:14.37ID:???0295NAME IS NULL
2013/11/27(水) 00:12:05.36ID:???( ゚ Д゚)
( つ旦O
と_)_)
_, ._
( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
゚*・:.。
0296NAME IS NULL
2013/11/27(水) 00:24:56.63ID:???0297NAME IS NULL
2013/11/29(金) 19:14:57.94ID:ld8Q8jASその情報と対となる公開設定列が必要になるのでしょうか?
名前
年齢
住所
プロフィール
出身校
という情報があって個別に全体に公開するか設定できるとき
name
name_is_public
age
age_is_public
address
address_is_public
profile
profile_is_public
graduate
graduate_is_public
みたいな風に列を作らないといけませんか・・・?
0298NAME IS NULL
2013/11/29(金) 20:22:04.33ID:???逆に値の列だけでどうにかしようとすると、先頭に"!!"をつけているものは非公開と判定するとか
ユーザーが入力したものかどうかを確実に判断できるように実装しないとバグるけど
0299NAME IS NULL
2013/11/29(金) 20:31:49.84ID:???何が嫌なんだ?
0300NAME IS NULL
2013/11/29(金) 20:33:23.34ID:???そのカラムの数字が
2の倍数なら名前公開
3の倍数なら年齢公開
5の倍数なら住所公開
7の倍数ならプロフィール公開
11の倍数なら出身校公開
みたいに
いや、普通はやらんが
0301NAME IS NULL
2013/11/29(金) 20:48:03.33ID:ld8Q8jAS普通はこうするんですね
列の数が増えてしまうのが嫌だったのですが正攻法なのであればこれでいきます
0302NAME IS NULL
2013/11/29(金) 23:33:23.20ID:???あんまりお勧めしないけど、どうしても嫌なら公開情報テーブルを別に作る
ユーザーID
該当テーブル名
公表フラグ
あとは公表フラグを元にプログラムで判定させる。
もしくはmemberテーブル自体を、
ユーザーID
該当項目(該当テーブル名)
値
公表フラグ
にしてしまう。これなら横に追加しなくても良い。
0303NAME IS NULL
2013/11/30(土) 20:53:53.22ID:???ドヤ顔で始めるチンカスってなんなの?
0304NAME IS NULL
2013/12/01(日) 14:48:22.43ID:u1FkK0X5これわかる方お願いします><
0305NAME IS NULL
2013/12/01(日) 15:51:04.11ID:???ggrks
0306NAME IS NULL
2013/12/01(日) 20:46:29.75ID:???1:g, 2:g, 3:r, 4:k, 5:s
ですね!ありがとうございます!
0307NAME IS NULL
2013/12/01(日) 21:00:32.43ID:???0308NAME IS NULL
2013/12/01(日) 21:34:18.67ID:???もうちょっと画質が良いのないの?
0309NAME IS NULL
2013/12/01(日) 23:21:39.96ID:???0310NAME IS NULL
2013/12/09(月) 17:10:32.62ID:KDrt2ZmL適当な接頭語をつけるのが一番楽かな
0311NAME IS NULL
2013/12/13(金) 15:44:13.33ID:UakRrOeeMySQL -> MariaDB
http://www.zdnet.com/red-hat-enterprise-linux-7-beta-arrives-with-mariadb-as-its-default-database-7000024194/
MySQL完全に終ったな
0312NAME IS NULL
2013/12/13(金) 16:51:05.75ID:???特にMariaの方はVersionUpも頻繁に行われるだろうし。
0313NAME IS NULL
2013/12/13(金) 17:13:52.04ID:???それにディストリ固有のパッケージ使いたい人たちが多数。
普通はパッケージ管理なんてやりたくないんだよ。
そもそもMySQLのバージョンアップのほうがキツいだろ。
ボロボロの状態でGAリリース、何年たっても不安定。
0314NAME IS NULL
2013/12/13(金) 17:18:31.08ID:???https://twitter.com/RKajiyama/status/387821488759250944
0315NAME IS NULL
2013/12/13(金) 20:39:35.32ID:???出たばっかの頃はいいが、そっから3年くらいはずっとそのままのバージョンで行くんだぜ。。。
そなるといずれは自分で入れることになるんだから。
0316NAME IS NULL
2013/12/13(金) 22:59:32.28ID:???>そなるといずれは自分で入れることになるんだから。
MariaDBをだろ
だからMySQL終了だっつうのw
>出たばっかの頃はいいが、そっから3年くらいはずっとそのままのバージョンで行くんだぜ。。。
まじめな話、Maria10.0なんてまだαだし、5.5で数年行くのは正しいだろ。
Maria5.5とMySQL5.5はほとんど同じだし。
RHELなど主要ディストリビューションがMySQLからMaria5.5から切り替えたのはデカイよ。
よほどの物好きか、最新版大好きの素人しかMySQL5.6に移行しないだろう。
0317NAME IS NULL
2013/12/13(金) 23:56:53.11ID:???このスレでも何回もMySQLはオワコン、Oracle完全犯罪的な話出てきたろ
既定路線
0318NAME IS NULL
2013/12/14(土) 13:06:29.41ID:???レコードが7億いった・・・
0319NAME IS NULL
2013/12/14(土) 14:58:58.68ID:???0320249
2013/12/14(土) 15:52:25.95ID:???十分なメモリと、最適なインデックスの追加、利用さえしておけば、
レコード数だけが問題になることはない気がするが...
(1レコードのサイズが大きいテーブルのレコード数が増えるのは問題
メモリが足りないんだったら、SSD にするかメモリつむ以外ないんじゃないかな。
経験上は下手なインデックスの利用、下手なテーブル定義が問題となることが多い。
メモリ 72G で 20億レコード、インデックス含めて64Gのテーブルとか運用してるけど
レコード数がどうこうより、データサイズどうにかしたい。
0321NAME IS NULL
2013/12/15(日) 11:14:44.47ID:???インデックスがメモリに乗らなくなったって言いたいんだろうけど。
0322NAME IS NULL
2013/12/15(日) 11:50:57.01ID:???0323NAME IS NULL
2013/12/17(火) 16:35:22.30ID:???どのキーで検索するかは状況によってバラバラです
検索に使われる予定のキーに かたっぱしからインデックスを
張っといた方がいいですかね?
0324NAME IS NULL
2013/12/17(火) 17:04:56.45ID:???実測しろ
0325NAME IS NULL
2013/12/17(火) 18:32:42.40ID:???そりゃするけどさ、念のために聞いておきたかっただけじゃん?
あと、これも実測しろと言われるの間違いなしなんだけど、
結果がひとつだけだと確信できるクエリのときも、あえて
LIMIT 1をつけたほうが速いのかな。 速そうな印象はある
0326NAME IS NULL
2013/12/17(火) 20:31:46.85ID:???0327NAME IS NULL
2013/12/17(火) 22:44:58.13ID:???四の五の言わずにioDrive入れちまえ。あのコスパの良さは明らかに異常。
0328NAME IS NULL
2013/12/23(月) 22:10:41.65ID:???Developper Default, Server only, Client only, Full, Customから選びますがどのような違いがあるのでしょうか?
0329NAME IS NULL
2013/12/24(火) 21:55:49.74ID:???簡単に言うとインストールされるファイルの組み合わせを選ぶ
具体的な違いを教えろって?ggr
0330NAME IS NULL
2013/12/25(水) 22:40:19.62ID:???0331NAME IS NULL
2013/12/27(金) 11:01:17.77ID:RABYehPe不満なら有料のもの買えってことか。
タダより高いものはないな。
0332NAME IS NULL
2013/12/27(金) 12:39:19.36ID:???どういう使い方してんだ
0333NAME IS NULL
2013/12/27(金) 15:24:27.52ID:9aKIae9Mバックアップとして
mysqldumpを使います
mysql>mysqldump -u root -p9999 c_9>c_9dump.sqlで
あってるのでしょうか。
mysql>(コマンドプロンプロが間違ってる?)
0334NAME IS NULL
2013/12/27(金) 19:03:50.29ID:???0335NAME IS NULL
2013/12/28(土) 18:29:01.47ID:ZNxoVZ7wバッチファイルとして認識してませんで出来ないです 助けて
0336NAME IS NULL
2013/12/28(土) 18:43:08.57ID:ZNxoVZ7w環境変数だった
0337NAME IS NULL
2014/01/10(金) 11:05:07.42ID:oqp795AA日本人からすると、なんでだろうって思うけど、日本人の学校では、民族の誇りを持った教育がしてもらえないんだそうだ。
よく分からないけど、流刑者の白丁が密入国して住み着いたじゃ誇りが持てないけど、日本人に強制連行された被害者なら誇りが持てる、とかそういう事かな??
市原市の能満は昔から市街化調整区域で、新規の建物は造れないことになっている。
そのため土地が安く、日本の法律を無視した在日が、次々と移り住んできた。
そこで問題になったのが、朝鮮学校だ。なかなか許可が下りず、一番近くても千葉市にしかない。
そこで在日居住区の能満内にあった、能満幼稚園・市原小・市原中・緑高の保育士や教師を、朝鮮化する事を考えた。
今では通称在日幼稚園の保育士は全て朝鮮帰化人で、在日の父兄からの絶大な支持を受けている。
遠くからでも、わざわざ通称在日幼稚園に入園させたいという在日の親は、後を絶たない。
この在日幼稚園卒園者はほぼ朝鮮系の帰化人と在日で、現在各所でクレーマーとなり問題を起こしている。
0338NAME IS NULL
2014/01/13(月) 11:07:38.33ID:JNIvUl1u運用したら、ユーザー2名に同時に参照される不具合が起きてしまった
ユーザーAのトランザクション中は、ユーザーBはその行を読み出せないと思ってたけど違うの?
0339NAME IS NULL
2014/01/13(月) 12:32:29.31ID:???〜〜 FOR UPDATE で排他ロックをかけてるときは、理解の通りロックかけたトランザクションが
コミットかロールバックするまで、ほかのトランザクションはいかなるアクセスもできないはず。
0340NAME IS NULL
2014/01/13(月) 16:12:42.90ID:???0341NAME IS NULL
2014/01/13(月) 16:15:38.53ID:JNIvUl1uどっちが本当?
0342NAME IS NULL
2014/01/13(月) 16:24:09.24ID:???0343NAME IS NULL
2014/01/13(月) 16:31:32.26ID:JNIvUl1uトランザクション開始
SELECT FOR UPDATEでレコード取得
有効レコードなら無効(売約済み)にUPDATE
トランザクションコミット
というコードになっています。
ところがAB共同じレコードを取得してしまった、という問題です。
この場合どこがおかしいのか、悩んでしまって…。
0344NAME IS NULL
2014/01/13(月) 17:27:20.43ID:???ロックかかってるとSELECT失敗するわけじゃなくて、終わるまで待つだけよ?
試しに手入力でやってみては
0345NAME IS NULL
2014/01/13(月) 17:42:32.66ID:JNIvUl1uちゃんと後からのselectは待たされ、updateした方がcommitしたらupdate後の値が取得された。
これなら想定通りなんだが、なぜか運用すると両方共update前の値を取得したような動きをする。
CakePHP通してSQLを発行しているので、そこが何か悪さしてるのかな。だとしたら調査に時間がかかりそうだ。
0346NAME IS NULL
2014/01/13(月) 18:44:14.12ID:???実はSQLでデータ取っていなくて、サーバのキャッシュを取得していたとかいうオチでは?
0347NAME IS NULL
2014/01/13(月) 19:10:51.42ID:JNIvUl1uCakeのSQL発行関数にcache=falseの指定はしているんだが
そのくらいしか考えられないな…もう一度確認してみますわ
0348NAME IS NULL
2014/01/13(月) 19:22:08.42ID:???0349NAME IS NULL
2014/01/13(月) 19:31:35.69ID:JNIvUl1u実は滅多に再現しないから、ログ取るようにして気長に再発を待つしかないかな
0350NAME IS NULL
2014/01/14(火) 10:41:08.32ID:???0351NAME IS NULL
2014/01/14(火) 12:19:47.09ID:5XYg85D5引き続き調べ中ですが、再現が難しい感じです。
0352NAME IS NULL
2014/01/14(火) 12:52:58.14ID:???0353NAME IS NULL
2014/01/14(火) 16:19:13.50ID:k7q4QSRl0354NAME IS NULL
2014/01/14(火) 16:26:11.87ID:???分離モードがREAD UNCOMITTED
FOR UPDATEついてないSQLで取得したデータ見てる
0355NAME IS NULL
2014/01/14(火) 17:09:48.23ID:???先発のトランザクションが SELECT ~ FOR UPDATE している間、
後発のトランザクションの読み込みを待たせたい場合は、
後発のクエリに「LOCK IN SHARE MODE」をつければOKって認識であってますか?
0356NAME IS NULL
2014/01/14(火) 17:11:53.87ID:5XYg85D5テーブルは全てInnoDB。
分離モードはREPEATABLE-READ。
FOR UPDATEついてないSQLが万が一にも発行されていないか調べているが、アクセスするコードは1ヵ所しかないので考えにくい。
てな状況です。
ありがとうございます。
0357NAME IS NULL
2014/01/14(火) 17:47:19.60ID:???SQL文のログは取って調べたのかな?
アプリ側のコードとにらめっこしていてもしょうがないよ。
[mysqld]
log=ログファイル
0358NAME IS NULL
2014/01/15(水) 15:57:16.22ID:???ttp://www.mysql.gr.jp/mysqlml/mysql/msg/16045
MySQLユーザ会って何もしない利権狙いの親父集団だろ
MariaDBの利権にも唾つけようと必死だな
tutuiって2009年にも利権確保に動いて止めたけど
ttp://tutui.net/
また盛り上がってきたら動くようだ
0359NAME IS NULL
2014/01/17(金) 07:45:07.07ID:SEZl444Wバッチ処理中にテーブルロックをかけており、
バッチ処理中はクライアントからのselectをエラーとして返したいです。
こちらで試したものは、
innodb_lock_wait_timeoutを設定し、selectをタイムアウトさせる
というものでしたが
タイムアウトしませんでした。
(詳細)
バッチ処理側でlock writeをしているので、
クライアント側からselectするとタイムアウトすると思われたのですが、
タイムアウトすることなく、ずっとクエリ結果を待っている。
さらに、クライアント側が結果を待っている間に、
バッチ処理側でunlockをすると、
クライアント側にphp実行時間オーバーというエラーが表示されます。
どのようにすればタイムアウト(もしくはテーブルロックを検知)できるのでしょうか?
0360NAME IS NULL
2014/01/17(金) 12:50:09.28ID:???お、まさにそれをやりたいと思ってた。
できないんでしょうか。
ttp://dev.mysql.com/doc/refman/5.1/ja/innodb-parameters.html#optvar_innodb_lock_wait_timeout
ttp://blog.kimuradb.com/?eid=877250
> これまではグローバルで全体の指定を変えなければならなかった処理がセッションで、その接続だけ変更できるようになり、かなり敷居が下がりしました。
0361NAME IS NULL
2014/01/19(日) 00:58:19.88ID:???> innodb_lock_wait_timeout applies to InnoDB row locks only. A MySQL table lock does not happen inside InnoDB and this timeout does not apply to waits for table locks.
テーブルロックだと、この機能効かないってよ
0362NAME IS NULL
2014/01/19(日) 01:14:34.95ID:???5.5.3以降なら、@@lock_wait_timeoutで期待した動作を実現できそうだな
0363NAME IS NULL
2014/01/19(日) 12:16:32.40ID:hD4Sosha5.5.2やったわ。
試してみます。ありがとう!
0364NAME IS NULL
2014/01/19(日) 20:10:06.21ID:yCiVwpc9ユーザ作成する場合、ホスト名はLinuxのホスト名で大丈夫ですか?
0365NAME IS NULL
2014/01/19(日) 22:08:43.58ID:???そのLinuxのプログラムでデータを取り扱うのならlocalhostでいいんじゃね。
0366NAME IS NULL
2014/01/20(月) 21:00:44.21ID:???それMySQLの話ちゃうやろと思いつつ、 hostsとかその手のファイル、DNS次第。
0367NAME IS NULL
2014/01/22(水) 00:22:45.75ID:???We Are Hiring!! 業務急拡大中につきMySQLチームでは日本でプリセールスエンジニアを募集しています。
ttps
t.co / xUXSf2pO3C
お前らの出番だぞw
0368NAME IS NULL
2014/01/22(水) 00:42:08.85ID:???0369NAME IS NULL
2014/01/23(木) 02:48:16.58ID:???人が逃げたから集めるようにみえて仕方がない
0370NAME IS NULL
2014/01/25(土) 01:36:12.00ID:???0371NAME IS NULL
2014/01/27(月) 18:36:42.89ID:???0372NAME IS NULL
2014/01/29(水) 20:58:51.13ID:???0373NAME IS NULL
2014/01/29(水) 22:50:36.43ID:???0375NAME IS NULL
2014/01/30(木) 23:46:46.92ID:???0376NAME IS NULL
2014/01/30(木) 23:48:02.54ID:???0377NAME IS NULL
2014/02/06(木) 21:01:38.51ID:???PostgreSQL抜き返したかな?
0378NAME IS NULL
2014/02/08(土) 17:53:27.37ID:???0379NAME IS NULL
2014/02/08(土) 18:49:02.64ID:???今DBに登録されてるデータをinto outfile してインポートしたデータと比べてみてはどうでしょう。
0380NAME IS NULL
2014/02/08(土) 19:41:33.12ID:???php側の方がおかしいんでしょ
0381NAME IS NULL
2014/02/09(日) 18:26:20.52ID:???0382NAME IS NULL
2014/02/10(月) 00:52:28.74ID:???phpMyAdmin で表示されるレコード数は、INFORMATION_SCHEMA というメタデータから引っ張ってきてるのですが、
InnoDB では概算値となるため、実際のレコード数と phpMyAdmin 上で表示させる値に誤差が生じます。
正確なレコード数を取得するには SELECT COUNT(1) FROM **** クエリを発行してください。
0383NAME IS NULL
2014/02/10(月) 11:31:04.11ID:???皆さんありごとうこざいます。
innodbの仕様だったんですね。
安心しました。
0384NAME IS NULL
2014/02/12(水) 19:53:59.77ID:???現在140万行あるテーブルに対して、以下のようなSQLを発行しています。
SELECT word , x,y, last FROM table_test where first != 1 and prev1 = '予測' and prev2 = 'は' and prev3 = 'に' ORDER BY RAND() LIMIT 1
こちらがテーブルです。
http://www.dotup.org/uploda/www.dotup.org4869247.png
(現時点で厳しい物があるため、わざと使用していないカラムがいくつかあります)
SQL一回の結果が返ってくるまでに1.8秒ほど、大体10〜20処理するので、1分前後かかっています。またこの先テーブルはますます大きくなります。
インデックスを貼って見ましたが、あまり早くなりません。これぐらいが普通なのでしょうか。
また、他に少しでも早くする方法はありますか?
このテーブルの用途は、趣味で作っている人工無能です。
0385NAME IS NULL
2014/02/12(水) 21:03:54.10ID:???インデックスは、first, prev1, prev2, prev3 の複合インデックス張ってる?
いまの主キー、インデックスも教えてくれないとわからん。
あと1万行くらいのダンプデータがあると検証ができてなおよし。
0386384
2014/02/12(水) 21:48:45.80ID:RkkOXYbSxamppです。
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
Client API version mysqlnd 5.0.10 - 20111026
です。
>>385
ありがとうございます。
1万行のダンプデータというのはこれでいいでしょうか
http://www.dotup.org/uploda/www.dotup.org4869465.sql
複合INDEXを初めて聞いたので検索、実行してみました
http://www.dotup.org/uploda/www.dotup.org4869541.png
恐らくindex自体は作成されていると思うのですが、うまく使えない状態です
0387NAME IS NULL
2014/02/12(水) 21:57:28.07ID:???対象件数を取得、その範囲の乱数を生成、LIMIT <乱数値>, 1とした方が早いかも。
EXPLAINでインデックスが使用されているか調べることが先だけど。
0388NAME IS NULL
2014/02/12(水) 22:02:04.52ID:???可能であればdescの結果か、show create table の結果を貼ってください。
0389NAME IS NULL
2014/02/12(水) 22:04:40.54ID:???388です。すいません、更新してませんでした。
ちょっとあっぷして頂いたデータでやってみます。
0390NAME IS NULL
2014/02/12(水) 22:06:23.20ID:???+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| word | varchar(10) | NO | | NULL | |
| hinsi | varchar(10) | NO | | NULL | |
| first | int(11) | NO | | NULL | |
| last | int(11) | NO | | NULL | |
| noudo | double | NO | | NULL | |
| x | int(11) | NO | | NULL | |
| y | int(11) | NO | | NULL | |
| z | int(11) | NO | | NULL | |
| next | varchar(10) | NO | | NULL | |
| prev1 | varchar(10) | NO | | NULL | |
| prev2 | varchar(10) | NO | | NULL | |
| prev3 | varchar(10) | NO | | NULL | |
| hinsisaibunrui1 | varchar(10) | NO | | NULL | |
| hinsisaibunrui2 | varchar(10) | NO | | NULL | |
| hinsisaibunrui3 | varchar(10) | NO | | NULL | |
| katuyoukei | varchar(10) | NO | | NULL | |
| katuyougata | varchar(10) | NO | | NULL | |
| genkei | varchar(10) | NO | | NULL | |
| yomi | varchar(10) | NO | | NULL | |
| hatuon | varchar(10) | NO | | NULL | |
+-----------------+-------------+------+-----+---------+-------+
21 rows in set (0.01 sec)
どう見てもインデックスがないんですが。
0391384
2014/02/12(水) 22:15:51.66ID:RkkOXYbSすいません、すいません…
indexってmysqlで「構造」のカラムにチェックして、インデックスをクリックすれば作れると思っていました
そしてもうデータベースにもアクセスできずにどうしていいかわからないです…orz
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\phpMyAdmin\libraries\session.inc.php on line 96
ちょっと勉強してきます。。。
0392NAME IS NULL
2014/02/12(水) 22:22:13.58ID:???0393NAME IS NULL
2014/02/12(水) 22:27:06.84ID:???388です。
1万件のデータで例にあったselectしてみたけど、0.07秒(初回)でした。
CPUはAMDのE450というatom以下のCPUです。
で、keyがよくわかんないから
alter table cc_ai_c add key (first);
alter table cc_ai_c add key (prev1);
alter table cc_ai_c add key (prev2);
alter table cc_ai_c add key (prev3);
して同じselectしたら0.00秒でした。
ちなみにクエリキャッシュは使ってないので、keyを設定するだけでも改善すると思います。
0394384
2014/02/12(水) 23:22:10.38ID:RkkOXYbShttp://www.dotup.org/uploda/www.dotup.org4869827.png
しばらくは問題なさそうです
複合インデックス、今後も大事にします、ありがとうございました!
0395NAME IS NULL
2014/02/13(木) 12:37:46.60ID:???複合インデックスは頭からしか使えないからカラムの順序に注意。
あとインデックスには指定したカラムに加え、主キーが入るってことも知っておくと役立つ。
0396NAME IS NULL
2014/02/13(木) 20:55:55.13ID:???got signal 11
のエラーがでてmysqlが再起動します。
mysqlのバグで5.1.59以降では治ってるって書いてある
サイトがあったんだけど、再発したんでしょうか?
回避する方法ってなんかあります?
0397NAME IS NULL
2014/02/14(金) 22:22:54.64ID:???Using Index が表示されるのに、 Using temporary; Using filesort が出てしまうのは、設定ファイルがいけないのだろうか?
EXPLAIN SELECT article_date,count(id)
FROM `log`
WHERE user = 4 and FIND_IN_SET(“aaa”,`category`) and date between ‘2013-01-01’ and ‘2013-12-31’ group by date
複合は(user、category、date)に貼っていて、ちゃんとに使われている。
0398NAME IS NULL
2014/02/14(金) 23:30:34.76ID:???FIND_IN_SETのカラムにインデックスを張っても効率化されないと思う。
関係者にごめんなさいして第一正規化するか、
とりあえず妥協して複合インデックスを(user, date)に張ってみる。
それからSELECT article_dateなのにGROUP BY dateとなっているが、
転記ミスでなければこれはGROUP BYのよくない使い方。
SET sql_mode = ONLY_FULL_GROUP_BY;
で動くSQLに直してからチューニングを考えたほうがよいかも。
0399NAME IS NULL
2014/02/14(金) 23:34:59.20ID:???別になんの不思議もないと思いますが?
インデックスを使ってレコードを絞り込めるが、
それの集計やソートにテンポラリテーブルやクイックソートが必要ってことかと。
0400NAME IS NULL
2014/02/15(土) 14:10:54.99ID:???1つのカラムに「http」削って
://〜
って保存するのと、「0=http://、1=https://、2=http://www」とかって定義して2つのカラムに
1(int) 2
0 yahoo.co.jp
って保存するのでは後者の方がいいよね?みんなの保存方法を聞きたいです。
0401NAME IS NULL
2014/02/15(土) 14:17:35.66ID:???加工せず丸ごと保存ではだめなのか?
0402NAME IS NULL
2014/02/15(土) 14:18:53.46ID:???区切らない
それで節約できるのはURL読み出し時の数バイト
とんでもなく大量にhttp〜で始まるなら別だが、普通に要らない
0403NAME IS NULL
2014/02/15(土) 14:19:28.27ID:???少しでも容量を減らしとけばいいんじゃないかな、と思ったのでそういう工夫をしている人がいたならと思い聞きました。
TEXT型で丸ごと保存が一般的なんでしょうか?
0404NAME IS NULL
2014/02/15(土) 14:21:18.30ID:???ありがとうございます。
ググってもそういう話題がなかったので、普通はそういう必要はないってことなんですね。
データは千万以上はいきそうです。
0405NAME IS NULL
2014/02/15(土) 14:32:37.01ID:???はい。インデックスさえ貼れば割となんとでも
0406NAME IS NULL
2014/02/15(土) 14:38:16.98ID:???ありがとうございます。
innoDBで5.514なんですが先輩にTEXT型はなるべく使うなと言われてまして、varchara(255)で
日本語文字urlの場合、decodeしたりして保存したりしようと試行錯誤してます。
TEXT型で保存が一般的なんですね。参考にさせていただきます。
0407NAME IS NULL
2014/02/15(土) 17:07:29.99ID:???URLのような長い文字列を扱うなら仕方ない。
1億レコードを超えたあたりからキツくなってくる感じかな。
0408NAME IS NULL
2014/02/16(日) 14:28:23.13ID:???0409NAME IS NULL
2014/02/16(日) 18:28:07.60ID:???column_aの値が15.55のレコードは存在しています。
SELECT * FROM table_a WHERE column_a = 15.55;
基本的なことで申し訳ないのですが、どこがおかしいのか教えていただけないでしょうか。
MySQLのバージョンは5.6.14です。よろしくお願いいたします。
0410NAME IS NULL
2014/02/16(日) 22:05:46.28ID:???ttp://qiita.com/pb_tmz08/items/4691c85f2f2c61d2d97d
0411NAME IS NULL
2014/02/16(日) 22:33:56.79ID:???ありがとうございます!まさにこの通りでした。
0412NAME IS NULL
2014/02/19(水) 15:10:28.80ID:???エックスサーバーが5.5.xって書いてたから借りたら金払った後に5.0.xだとわかった。
なんか腹立たしい気がするけど5.5と5.0って速度違うの?
0413NAME IS NULL
2014/02/19(水) 15:27:46.66ID:???違う
0414NAME IS NULL
2014/02/19(水) 19:35:53.34ID:???もしかして5のDBサーバー2台あるんじゃない?
接続先確かめてみたら?
0415NAME IS NULL
2014/02/19(水) 19:40:11.28ID:???>>414
エックスサーバーに問い合わせたら、今アカウントを取り直したら5.5.x使えるよ、今使ってるアカウントじゃ使えないよって答えられた。
先月アカウント買ったばかりなのに。
0416NAME IS NULL
2014/02/19(水) 19:59:20.24ID:???>エックスサーバーが5.5.xって書いてたから借りた
この辺を強く出してみたら?
0417NAME IS NULL
2014/02/19(水) 20:34:38.27ID:???うーん、まだサイトは作成中だし初期費用と3ヶ月しか支払ってないからアカウント取り直そうかな。
たぶん言ってもどうにもならないと思うし。
0418NAME IS NULL
2014/02/26(水) 07:40:50.28ID:???vpsを借りたら?
0419NAME IS NULL
2014/02/26(水) 13:58:33.80ID:???余計お金掛かりそう…。
さくらは5.5が提供されたら同じアカウント内で変更できるみたいだね。
失敗したかなあ。
0420NAME IS NULL
2014/02/26(水) 20:16:07.34ID:???init_file = c:/stock2test.sql
stock2test.sqlの中身
delete from test.stock_master;
insert into test.stock_master
select * from stock.stock_master;
なんですが、errファイル見ると
ERROR: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
140226 20:09:52 [Note] C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin\mysqld: ready for connections.
とエラーになってしまってるんです。
一応musqlコンソールでstock2test.sqlの中身を打つと正常に更新はされるんですけど…
なんで??
0421420
2014/02/26(水) 20:27:00.53ID:???insert into test.stock_master
select * from stock.stock_master;
を改行なくして
insert into test.stock_master select * from stock.stock_master;
にしたらそれだけで正常に終わった^^;
なんなんだよー w
0422NAME IS NULL
2014/02/26(水) 21:00:15.58ID:2PZcjpuvMySQLに、PHPコードと日本語テキストを含んだHTMLの記述 (以下これを「HTMLの記述A」と呼びます) を、
そのままデータベースに保存するのはやはり邪道というものでしょうか?
これがもし邪道であるとしたら、『PHPページに「HTMLの記述A」を複数並べてHTML形式で表示させる方法』として、
どのような方法が考えられるでしょうか。
私はこの「HTMLの記述A」の中のデータを入れ替えながら、
「HTMLの記述A-1」「HTMLの記述A-2」「HTMLの記述A-3」というように1ページに10件ずつ表示させていきたいと思っています。
どなたか解る方がいれば、ご教授お願い致します。
0423NAME IS NULL
2014/02/26(水) 23:14:41.39ID:???やりたいようにやればいいんじゃないかな。不具合が無くて問題無く動くなら邪道も何もないよ。
つか処理に問題があるかどうかを聞きたいならここで質問する内容ではない。
0424249
2014/02/27(木) 13:56:12.28ID:???改行コードとかじゃないのかね。
手元の 5.6.16(Ubuntu 12.04) だと LF でも CRLF でも大丈夫だったが、
Windows だとか Version によってダメなのかな。
それぐらいしか思いつかない。
0425NAME IS NULL
2014/03/01(土) 20:18:22.40ID:???javaのehcacheみたいなアプリ側でのキャッシュライブラリは
どういう基準で使い分けるんですか?
0426249
2014/03/01(土) 22:31:26.99ID:???Webサーバが2台(A,B)あったとして、
AのキャッシュにMySQLのデータの一部が乗っている場合、
Bが MySQL を更新した場合どうする?
DBに入ってるデータとしては
ほとんど更新されないけどDBなどに入れておきたい
なにかのマスターデータとかは、アプリ起動時にDBから
とってきてローカルにキャッシュ。更新されたらアプリを再起動。
それ以外はクエリキャッシュとかが多いんじゃないかね。
まぁ、クエリキャッシュはアプリによっては切ったほうが
性能がいいけどな
0427NAME IS NULL
2014/03/02(日) 09:41:30.61ID:???近年の数十〜数百コアのCPUで並列処理させると逆にパフォーマンスが落ちるとかで。
0428426
2014/03/02(日) 15:22:24.04ID:???大きなメモリテーブルがあるようなもんで、
そのテーブルを更新しまくりなのでロックがはんぱない。
で、クエリキャッシュにそこそこ(経験上全クエリの4割以上)
ヒットするならいいけど、そうでないならば切ってしまったほうがいい。
# このへんは HW 性能や、クエリ数などによっても変わるので、
# 試す人は検証してね。query_cache_size はオンデマンドで減らすことは
# できるけど、増やすのは再起動を伴うからね。
どうしてもバッチなどで必要なら、query_cache_size は確保しといて、
query_cache_type を 「DEMAND」にして必要な物だけ
select SQL_CACHE ... として実行した方がいい。
参考:
http://dsas.blog.klab.org/archives/52021866.html
0429NAME IS NULL
2014/03/07(金) 09:08:33.45ID:???このデフォルトでエラー吐きまくる糞仕様のmy.cnfなんとかならんかな
しかもエラーコードも全然役に立たないし。
重要な調整項目についても全然解説ねーし、
1つバージョン違うだけでオプション変更されすぎ。
ただでさえクソ長い英語のドキュメント読みなら作業してんのに報われなさすぎ。
0430NAME IS NULL
2014/03/07(金) 10:46:50.41ID:???MySQLはなんでないんだろう?
金にならないから?
0431NAME IS NULL
2014/03/07(金) 21:25:07.43ID:???仕事で5.6の構築手順書作ったけど、5.5からはだいぶ変わったよ。
英語のドキュメントを読んでも情報不足なんだよなー
0432NAME IS NULL
2014/03/07(金) 22:53:03.84ID:???いれて3分でデータベース とかってうたい文句はどうしたんだろうなw
0433NAME IS NULL
2014/03/07(金) 23:16:13.58ID:???どうやったら確認出来るんでしょうか?
0434NAME IS NULL
2014/03/08(土) 01:40:11.95ID:???なにがどれに対応してるのか一覧書けや
あーイライラするー!
0435433
2014/03/08(土) 18:49:43.83ID:???で確認
以上
0436NAME IS NULL
2014/03/09(日) 11:32:57.02ID:???0437NAME IS NULL
2014/03/10(月) 01:13:07.29ID:???Win版のセットアッププログラムとかどんどんクソになってるよ。
0438NAME IS NULL
2014/03/10(月) 14:57:27.55ID:???phpmyadminってどこの入れたらいいの?
いつもどおりyumでremiの入れようとすると、
remi版のMySQLインスコしようとしてバッティングするんだけど。
教えてエロい人。
0439NAME IS NULL
2014/03/10(月) 17:00:16.16ID:???phpmyadminって普通にディレクトリに置いてブラウザからアクセスするだけでしょ?
ていうか、そんなphpで作ったやつじゃなくて普通のSQLクライアントだったらHeidiSQLとかOracleのMySQL Workbenchがオススメだけど
0440NAME IS NULL
2014/03/10(月) 20:05:04.34ID:???これのこと?
http://bugs.mysql.com/bug.php?id=12161
0441NAME IS NULL
2014/03/10(月) 20:50:35.76ID:???ホントだ。解凍して置いて設定したら動いたわー。
これってそんな簡単な構造だったんだね。
MySQL公式のリポジトリでインストールしたMySQLってyumで依存関係めちゃくちゃになるんだね。
元々サードパティのライブラリなんかは共存するように設計されていないんだろうけど、
悩んだ悩んだ。
ありがとうエロイ人
0442NAME IS NULL
2014/03/10(月) 20:55:48.40ID:TC9gqAVZ0443NAME IS NULL
2014/03/10(月) 20:57:46.07ID:???0444NAME IS NULL
2014/03/10(月) 21:06:40.10ID:???Glassfishのようにな
0445NAME IS NULL
2014/03/10(月) 21:35:33.06ID:???0446NAME IS NULL
2014/03/13(木) 16:01:01.79ID:???どっちがいいですか?
0447NAME IS NULL
2014/03/14(金) 23:58:45.62ID:???groonga
0448NAME IS NULL
2014/03/15(土) 00:01:35.58ID:???Mroongaだった
0449NAME IS NULL
2014/03/15(土) 22:36:02.07ID:???おま、yumってことは、redhatかcentかfedoraか
ディストリビューション使うなら外のrpmとかソースからコンパイルとかダメだぞ
何のためのディストリビューションなのかわからん
自由にやるならfreebsdかなんかにすべし
0450NAME IS NULL
2014/03/15(土) 23:55:51.80ID:???その考えは流石に偏りすぎ。
0451NAME IS NULL
2014/03/17(月) 22:43:31.86ID:DVOkasB3-> id INT UNSIGNED NOT NULL AUTO INCREMENT,
-> title VARCHAR(255) NOT NULL,
-> description VARCHAR(255) NOT NULL,
-> created_at DATETIME NOT NULL,
-> updated_at DATETIME NOT NULL,
-> PRIMARY KEY(id)
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-> id INT UNSIGNED NOT NULL AUTO INCREMENT,
-> title VARCHAR(255) NOT NULL' at line 2
どこか間違ってるかわからんのだが。。
0452NAME IS NULL
2014/03/17(月) 22:47:01.43ID:???0453NAME IS NULL
2014/03/17(月) 22:47:16.67ID:???auto_increment
0454NAME IS NULL
2014/03/17(月) 22:59:01.88ID:???> use near '-> id
いやAUTOも間違ってるんだけど
0455NAME IS NULL
2014/03/17(月) 23:00:30.74ID:DVOkasB3これでもだめだった
create table topics (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> title VARCHAR(255) NOT NULL,
-> description VARCHAR(255) NOT NULL,
-> created_at DATETIME NOT NULL,
-> updated_at DATETIME NOT NULL,
-> PRIMARY KEY(id)
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> title VARCHAR(255) NOT NULL' at line 2
0456NAME IS NULL
2014/03/17(月) 23:18:41.44ID:DVOkasB3ありがとう御座います。
create table topics ( id INT UNSIGNED NOT NULL AUTO_INCREMENT,title VARCHAR(255) NOT NULL,description VARCHAR(255) NOT NULL,created_at DATETIME NOT NULL,updated_at DATETIME NOT NULL,PRIMARY KEY(id));
でできましたが、多分454さんが意図していたことと齟齬があると思います。
よければ教えて頂けないでしょうか
0457NAME IS NULL
2014/03/18(火) 00:32:15.36ID:???書き方が悪かったね
AUTO INCREMENT だけじゃなくて -> も間違ってると示したかっただけだよ
0458NAME IS NULL
2014/03/18(火) 00:38:21.23ID:???新人研修のときそういう同期いたなあ
0459NAME IS NULL
2014/03/18(火) 01:02:40.19ID:YYxIyd7p0460NAME IS NULL
2014/03/18(火) 06:29:17.69ID:???0461NAME IS NULL
2014/03/18(火) 13:05:32.96ID:We3J6S8Ottp://genzo.org/read/uni.2ch.net/newsplus/1389346716/
今後の犯罪傾向の予測と考察
事前面接(偽装請負)の犯罪に憤りをもつ派遣社員、非正規労働者、失業者が
比較的警備の薄い厚労省、労働局、 労基署にいく可能性がある。しかし他の可能性
を考えてみた。
事前面接中(指揮命令中)に派遣先と派遣元の担当者をターゲットにしたテロである。 派遣社員の事前面接(指揮命令)は違法であり、事前面接中(指揮命令中)に派遣社員(請負労働者)が暴れだした場合は
警察に通報できない状況となる。つまり通報すれば労基法6条違反、
職安法44条違反などの犯罪事実が報道で日本中に周知され、グッドウィル事件の再現となる可能性 が出てくる。そのため被害者である派遣先・派遣元が加害者に高額の口止め料
(影響を考慮すれば3000万円以上が妥当)を支払い隠蔽しようとする奇妙なテロがおきうるのだ。
※グッドウィル摘発のきっかけとなった事故は、現場の派遣スタッフの意図的な自傷事故だったとする説がある。
仮に、怒りに我を忘れた派遣社員が、派遣営業や面接官の小指を切り落とすような
凶行がおきた場合、小指を失った社員は転職や社会活動が難しいため、現在の会社で
は降格・減給などの奴隷的待遇を一生耐えるしかない。会社は隠蔽を優先し
派遣社員への高額の口止め料で手を打ち、被害社員はひたすら耐えるだけだ。
※非力な女性でも防犯スプレーとスタンガンで社員の抵抗を事前に抑止して小指の切断ができる可能性がある。
非正規の奴隷的待遇は、共産・民主党を支援してきた労働組合が
構成員である大企業の正社員の雇用や、給与水準をまもるための正社員保護主義の結果である。非正規や下請け正社員はその犠牲であり受給調整弁として中間搾取等をされたり労働者の権利を剥奪された。正社員の解雇ルールが立法化されれば、大企業も正社員
を増員し、違法な中間搾取、雇用・契約止めの脅し、理不尽な待遇、差別をする要因が排除されるが、これを労働組合は派遣・非正規を
犠牲にし正社員の給与水準を高くするため徹底して反対している。このため非正規
労働者が労働組合、民主党や「連合」の襲撃をする余地がある。
0462NAME IS NULL
2014/03/20(木) 19:28:22.45ID:???CentOSでやってました。アドバイスありがとう。
既にコンパイルはあきらめてyumでインストールしましたw
最新のものに食いつくにはCentOSは向かないね。
安定ヽ(´ー`)ノマンセー
0463NAME IS NULL
2014/03/28(金) 19:16:16.93ID:???0464NAME IS NULL
2014/04/02(水) 05:13:06.05ID:RYzsF+0Wpublic function hoge() {
$this->loadModel('Hoge');
$Users = $this->Hoge->find('all');
}
このようなエラーが表示されてしまいます。
Missing Datasource
Error: Datasource class Mysql could not be found.
Datasource is not found in Model/Datasource package.
↓の中には"empty"というファイルしか入っていないのですが、
cakephp\app\Model\Datasource
やはり何かファイルが足りないのでしょうか?
0465464
2014/04/02(水) 05:13:46.30ID:???すいません投稿スレ間違えました・・・
0466NAME IS NULL
2014/04/02(水) 08:14:45.70ID:???レプリケーション先のデータベース名を違ったものにすることはできますか?
こんな感じです。
SRC:TESTDB
DST:TESTDB_REPLICA
マニュアル見てみたのですが、該当する項目がありませんでした。
バージョンは、5.6です。
0467NAME IS NULL
2014/04/02(水) 10:30:46.07ID:???statement-based の場合なら、
slave 側で trigger 使えば出来そうな気がする
# 一時的には同名テーブルにデータが存在してしまうが
mix/row-based の場合は厳しいんじゃないかな
通常の方法では難しいと思う
0468NAME IS NULL
2014/04/02(水) 12:49:59.72ID:???ttp://www.forest.impress.co.jp/docs/news/20140402_642417.html
0469NAME IS NULL
2014/04/02(水) 22:12:39.36ID:???クエリの中で、UUID()関数を使用しているため、SBRでは難しそうですね。
諦めて同名レプリケート運用にしたいと思います。
貴重なアドバイスありがとうございました。
0470NAME IS NULL
2014/04/02(水) 22:48:24.01ID:???--replicat-rewrite-db 試してみて
http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_replicate-rewrite-db
0471NAME IS NULL
2014/04/04(金) 19:10:13.69ID:???ID(1〜)にインデックスが張ってあり数万件あるとします。
一番大きなIDから(降順)10件取り出したい場合
SELECT * FROM `テーブル` ORDER BY `id` DESC limit 0,10
で取り出せるのですが、インデックスがあっても全文検索?になり
今後件数が増えると時間がかかりそうです。
高速に取得する一般的な方法はどうやるのでしょうか?
別のカラムを使ったり、複数のSQLになってもかまいません。
MySQLのバージョンは5.5で、言語はPHPを使ってやりとりしております。
0472NAME IS NULL
2014/04/04(金) 19:51:01.72ID:???idが「1から連番で抜けがない」という都合のいい前提が許されるなら
where句に`id` between 1 and 10でいいと思うけど、まずダメよね。
元のクエリはインデックスを頭からスキャンしていく(末端にいくほ
ど遅くなる)けど、テーブルのフルスキャンほど遅くはない(と思う)
ので、実際に想定される最大数のレコードを作ってみて許容できる速度
かどうか見てみるのがいいんじゃないかな。
ちなみにうちはMariaDBだけど、10万レコード作ってlimit 99990,10で
クエリ走らせてみたら0.06秒だった。
0473NAME IS NULL
2014/04/04(金) 19:56:04.75ID:???だからできるだけ避けた方が良い。
0474NAME IS NULL
2014/04/04(金) 20:07:02.63ID:???limit 10000,10みたいに真ん中取り出してもインデックス使われませんか?
0475NAME IS NULL
2014/04/04(金) 20:07:32.82ID:???SELECT * FROM `テーブル` ORDER BY `id` DESC limit 0,10
が遅いというのがわかんない
どうやって「全文検索」って判断したんだろ
0476471
2014/04/04(金) 21:02:06.33ID:???インデックスが使われているかどうかもよくわからないんですよね。
EXPLAIN で type が index だと全文検索?ですよね。
471 のSQLだとでちゃいます。
このSQLで0.1秒、今後10万件とか増えてきてもこの時間で処理されるんだろうか
心配になってお聞きしました。
>>475
「ORDER BY 使うとインデックスが使われない時がある」?みたいな記事を読んでです。
0477NAME IS NULL
2014/04/04(金) 21:07:43.85ID:???explainでrowsの数が検索数だと思
0478NAME IS NULL
2014/04/04(金) 21:21:03.02ID:???typeがALLになってたらフルスキャン。
0479NAME IS NULL
2014/04/04(金) 21:44:24.76ID:???typeが"ALL"ならテーブルのフルスキャン、"index"ならインデックスの
フルスキャン。ということでインデックスは一応使われてる。
>>471のクエリの場合、「インデックスの頭」からoffset+limitレコード
をなめる(limit 10000,10なら10010レコード)けど、これでインデックス
を張ってなかったらテーブルスキャンになって全レコードをなめに行く。
それにしても先頭10件で0.1秒は遅すぎじゃないかな。
0480NAME IS NULL
2014/04/04(金) 21:52:20.21ID:???type=indexは通常、インデックスフルスキャンなので一般的に重いが、
order by `index_column` limit ?の場合は例外で、
インデックスの先頭もしくは後ろから数件読むだけなんで高速。
(offsetが大きくなるなら別)
> 「ORDER BY 使うとインデックスが使われない時がある」?
というのは、
select * from where `index_column` = ? order by `primary_key`
みたいなクエリのとき、通常はindex_columnのインデックスが使われるはずだが、
オプティマイザが主キーインデックスを使ってしまうケースがあって、
その場合にフルテーブルスキャンを引き起こして、洒落にならないくらいにクソ重くなることはある
0481471
2014/04/04(金) 21:57:11.63ID:???type 'index' は インデックスのフルスキャンでしたか!
インデックスが使われていることに一安心しましたw
>それにしても先頭10件で0.1秒は遅すぎじゃないかな。
phpMyAdmin上で実行しているので
実際はもっと高速なのかもしれません。
アドバイスどうもでした
0482NAME IS NULL
2014/04/05(土) 10:35:04.66ID:???0483NAME IS NULL
2014/04/06(日) 21:44:58.68ID:???MysqlをインストールするとConfiguration OverViewでインストールが止まってしまいます。
バージョンを変えたりとかインストール場所の変更とか管理者権限で動作させたりしたましたが
必ず同じ場所で止まります。
【環境】
OS:Windows7 64bit Pro
MySQL:mysql-installer-community-5.6.17.0.msi
mysql-5.1.73-winx64.msi
mysql-installer-community-5.5.37.0.msi
【現象】
http://www.rupan.net/uploader/download/1396787881.png
この状態から先に進みません。5分程放置しましたが全く反応がありません。
【試した事】
・MYSQLのバージョンを変更
・インストールの場所を変更
デフォルト(Serverのインスコ先):D:\/(Dataのインスコ先)C:\ProgramData\MySQL\MYSQL_x.xxx\
変更先:(Serverのインスコ先):C:\Program Files\MYSQL\/(Dataのインスコ先)C:\Program Files\MYSQL\Data\MYSQL_x.xxx\
・msiを管理者権限で開く(コマンドプロンプトを管理者権限で開いてC:\msiexec -i [msiファイル]で開く)
どれも毎回アンインストールして、再起動してから入れなおしました。
わかる人がいましたら是非回答をお願いします。
0484NAME IS NULL
2014/04/06(日) 22:00:03.04ID:???とりあえず
アンインストール失敗などで残ったWindowsのサービスを削除する方法
http://ub.blog85.fc2.com/blog-entry-287.html
でmysqlのサービスがどうなっているか確認してみたら?
ただし全く自信はないので外れていても勘弁
0485NAME IS NULL
2014/04/07(月) 00:10:07.87ID:???ざっと見た感じパスがおかしいとかそういうのが多いな。
C:\Program Files\MYSQL\/(Dataのインスコ先)C:\Program Files\MYSQL\Data\MYSQL_x.xxx\
ところでこれは何で2回ドライブレターが出てるの?こぴぺみす?
0486483
2014/04/07(月) 21:24:39.95ID:???OS:Windows 7 64bit Professional
MySQL:mysql-installer-community-5.6.17.0.msi
前準備
1. コントロールパネルからMySQL関連の情報を削除
2. C:\を全検索し"MYSQL"と"my*.ini"を検索し削除
3. CCleanでレジスストリをスキャンして削除(MYSQL関連がわんさか出る)
4. OSを再起動
5. コントロールパネル→管理ツール→サービスが存在しない事を確認
動作
1. cmd.exeを管理者として実行
2. >msiexec.exe -i D:\mysql-installer-community-5.6.17.0.msi 実行
3. Install Product -> Developer Defaultを選択
⇒ Installation Path: C:\Program Files\MySQL\
⇒ Data Path:C:\MySQL\MySQL Server 5.6\
4. 後はMySQL Server Configurationまで[Next]
5. 設定は以下の通り
⇒ConfigType:Development Machine
⇒Port:3306 Open Firewall port network access チェック入
⇒MySQL Root Password:0123456789
⇒Windows Service Name: MySQL56(デフォルト) Start the MySQL Server at System starupチェック入
⇒Run Windows Service as : Standard System Account
ああああ・・・・やっぱりあかん。
0487NAME IS NULL
2014/04/07(月) 21:28:16.69ID:???レスありがとうございます。
手法は違いますがレジストリからは情報を消して挑んでました。
サービスからMYSQLを起動させると1067エラーが出ますね。
>>485さんの言われている通りパスのエラーのようですが・・・。
>>485
Installation Path/Data Pathを分けて書いたんですが、余計にわかりにくくなってますね。
ごめんなさい。
確かにご指摘の通りパスがおかしそうなんですが、iniファイルとかを見直して見ます。
0488NAME IS NULL
2014/04/07(月) 21:41:56.21ID:???WindowsにMySQL(zip版)をインストールする
http://www.koikikukan.com/archives/2013/06/18-011111.php
0489483
2014/04/08(火) 00:13:20.36ID:???ありがとうございます。
早速試してみたのですが、C:\mysql\bin>mysql -u root ところで
コマンドが無いとメッセージが出ました。
正しく解凍がされてないなかったのか。もう一度やり直してみます。
http://www.rupan.net/uploader/download/1396883432.png
0490483
2014/04/08(火) 19:59:30.84ID:???あの後も色々試しましたが結局の所msiファイルからのインストールはできませんでした。
その代わり>>488さんから教えて頂いたzipからの導入方法で無事動く事を確認できました。
benchもzipで導入してMySQLエディタが動作する事を確認できました。
ありがとうございます。
0491NAME IS NULL
2014/04/09(水) 16:36:51.01ID:UnA+HtrFWHEREで該当するレコードがなかった場合にはエラーになるのでしょうか
実行した時にエラーが返ってくるのですが
0492NAME IS NULL
2014/04/09(水) 17:05:31.81ID:???のC APIの部分をテキストでコピってたのを見ると
第2引数で指定されたSQLクエリを実行するために使用する。指定できるSQL文は1つ
のみ
バイナリデータを含むクエリの場合はmysql_real_query()関数を使用する。
実行に成功した場合は0、失敗した場合は0以外を返す
とある。
というか、
23.2.3.51. mysql_query()
http://dev.mysql.com/doc/refman/5.1/ja/mysql-query.html
にそう書いてますがなw
0493NAME IS NULL
2014/04/10(木) 23:24:19.32ID:???0494NAME IS NULL
2014/04/11(金) 06:38:49.91ID:???0495NAME IS NULL
2014/04/11(金) 23:53:18.40ID:???ずっと正常に使えていたんですが、XPのネット接続を無効にするために
いろいろいじっていたらphpmyadminのログインが通らなくなりました。
そこで再度xamppをインストールし、localhost/phpmyadminのページを開くと、
#2002 - The server is not responding (or the local MySQL server's socket is not correctly configured)
といったエラー文が出て、そこから何をしたら良いか全然わからず困っています。
上記メッセージで検索すると出てくる解決法は前提条件が違ったり、
書いてある解決法が省略されすぎていて理解できません。
何をどうすればよいのか教えていただきたく。
0496NAME IS NULL
2014/04/12(土) 04:03:30.40ID:???PMAを使わない。
0497NAME IS NULL
2014/04/12(土) 11:29:08.55ID:???しかしおっしゃっている意味がわかりません。
具体的にどうすればよいのでしょうか。
ちなみにログインはrootユーザで行っています。
pmaユーザでログインはしていません。
0498NAME IS NULL
2014/04/12(土) 12:40:27.29ID:???0499NAME IS NULL
2014/04/12(土) 15:06:14.81ID:???セッティングスクリプトはちゃんと消しておけよ
0500NAME IS NULL
2014/04/12(土) 15:36:42.35ID:???・webページ毎のカウントtable(url、カウント
・誰がドコにいいね!したのか記録table(ユーザー、url
を作ったとしても1兆レコードぐらい簡単に行ってしまいそうな気がするんですがmysqlは大丈夫なんですか?
それとももっと良い設計とかあるんでしょうか?
0501NAME IS NULL
2014/04/12(土) 15:45:42.37ID:???テーブル分ければ良いだけだからさ
0502NAME IS NULL
2014/04/12(土) 16:09:50.15ID:???以前ココで1000万テーブル作ったりするのは設計ミスとか言われたんで
0503NAME IS NULL
2014/04/12(土) 17:05:45.33ID:???どんな質問をして設計ミスって言われたのか知らん。
ただ言えることは、規模とか用途とかによってテーブル設計が変わる。
まあそれでも1000万テーブル作るってことは無いと思うけど。
0504NAME IS NULL
2014/04/12(土) 23:41:03.96ID:???テーブルパーティショニングとかそこらへんの話だろ
0505NAME IS NULL
2014/04/14(月) 23:49:27.71ID:???ttp://www.oracle.com/technetwork/topics/security/cpuapr2014-1972952.html
Oracle MySQL Server, versions 5.5, 5.6
米国15日(日本16日)
0506NAME IS NULL
2014/04/15(火) 07:04:56.00ID:???0507NAME IS NULL
2014/04/15(火) 13:57:42.65ID:???$test = $_GET['data'];
//エスケープ
$test = mysql_real_escape_string($test);
$result = mysql_query("select * from aaa where name = '{$test}'");
このようにmysql_real_escape_stringでエスケープしてれば、SQLインジェクションって防げますよね?
防げない場合どういうパターンがあるのか教えてください
0508NAME IS NULL
2014/04/15(火) 17:40:11.51ID:+eHKgKM6スレーブ⇒マスター切り替え はよく目にするんだけど
その後元マスターが復旧したときに
マスター⇒スレーブ を安全におこなう方法がよくわからない
DB起動する前にマスターがいたら云々というバッチを作るの?
0509NAME IS NULL
2014/04/15(火) 19:44:51.55ID:???スレ違い
0510NAME IS NULL
2014/04/15(火) 21:29:02.65ID:???0511NAME IS NULL
2014/04/15(火) 21:34:46.75ID:???PHPスレで回答もらったっぽいけど
0512NAME IS NULL
2014/04/15(火) 21:49:47.80ID:???posがずれていないかとか、そもそもパラメータがACID特性を満たす設定になっているとか確認すべき項目はあるが
0513NAME IS NULL
2014/04/17(木) 16:43:11.04ID:???データを抽出したいと思っています。
WHERE id IN (id1, id2, id3……)
ソースが雑なのと条件が増えた時に遅くなりそうなのでもう少しスマートな
方法はないものかと思っているのですが、いい処理方法はないでしょうか?
0514NAME IS NULL
2014/04/17(木) 16:58:02.84ID:???0515NAME IS NULL
2014/04/17(木) 17:15:44.63ID:???それは前画面にチェックボックスがあって、そこでチェックした時にidを仕込んで
次画面でREQUESTから取得して、配列からカンマ区切りにしてid1,id2,id3…としています。
前画面というものが条件に合致したデータを全て表示して、
そこからチェックボックスで選択したものだけに対して、次画面でデータを
再度引っ張ってきてデータ内容の詳細表示をするというような画面になっています。
IN句を使えばできてはいるのですが、何かちょっと…と思いまして。
0516NAME IS NULL
2014/04/17(木) 18:37:43.03ID:???0517NAME IS NULL
2014/04/17(木) 18:43:34.68ID:???やっぱりそうですかー
このままやることにします。ありがとうございました。
0518NAME IS NULL
2014/04/18(金) 16:35:02.33ID:???例えば都道府県の名前をユニークキーとしたマスターテーブルがあり
そのキーを使用したログテーブルがあるとします 訪れた場所[北海道、千葉、東京、千葉、大阪]
それを
北海道 1
千葉 2
東京 1
大阪 1
のように複数レコードで集計したいのですが下記のように書くと
SELECT 県名, count( 県名, ) FROM ログ WHERE ログ.県名 IN ( SELECT マスター.県名 FROM 都道府県 マスター )
最初の県名[北海道]と全ての合計数[5]と1レコードで終了してしまいます
各合計を求めるにはどのようにすればよいでしょうか?
よろしくお願いします
0519NAME IS NULL
2014/04/18(金) 16:43:22.48ID:???失礼しました
0520NAME IS NULL
2014/04/19(土) 14:30:09.16ID:tdLBPxz0デフォルトストレージエンジンをInnoDBに変更することに
なにかメリットはありますか?
MyISAMは使ってませんがテーブル作るときはちゃんと
InnoDB指定してるから今まで気づかなかったわ
0521NAME IS NULL
2014/04/19(土) 14:33:41.09ID:???それだけ
0522NAME IS NULL
2014/04/19(土) 15:22:42.42ID:???0523NAME IS NULL
2014/04/20(日) 15:14:39.65ID:???おうサンキュウ
それくらいしかメリットないなら面倒くさいし放置しとくわ
0524NAME IS NULL
2014/04/23(水) 00:42:43.69ID:???0525NAME IS NULL
2014/04/23(水) 15:26:30.46ID:???大文字固定? 小文字限定?
0526NAME IS NULL
2014/04/23(水) 18:03:58.61ID:???なぜか主キー順になってるんだけど、そういうもの?
以前は適当というか、順保証なんてなかった気がするけど
いつのまにかデフォルトソート順が仕様で決まったとかある?
0527NAME IS NULL
2014/04/23(水) 18:20:50.17ID:???0528NAME IS NULL
2014/04/23(水) 19:36:45.32ID:???それはInnoDBが行データをクラスタ化インデックスで保持しているから。
MyISAMなら、ばらばらになるんじゃないかな
0529NAME IS NULL
2014/04/23(水) 20:58:39.22ID:???そういうことね
InnoDB使うようになって日が浅いから気づかなかったわ
ありがとう
0530NAME IS NULL
2014/04/23(水) 22:14:24.98ID:???それはたまたまたで「主キー順になることは保証しません」ってことでしょ。
0531NAME IS NULL
2014/04/23(水) 22:47:36.54ID:???シチュエーションなんてほとんどないからどうでもいい話しだ
0532NAME IS NULL
2014/04/24(木) 00:06:22.16ID:???勘弁してくださいよ
0533NAME IS NULL
2014/04/26(土) 00:44:05.99ID:???mysqlでエラーが出ているので調べたところ、
pidファイルにサーバー名が使われていました。
mysql運用中にサーバーマシンのホスト名を変更したため、ファイルが壊れたようです
バッチバックアップでは修復処理も走らせているのですが、それでも修復できていませんでした
こういう壊れ方をしたファイルを修復することはできないのでしょうか?
0534NAME IS NULL
2014/04/26(土) 01:46:03.07ID:???myisamchk --safe-recover
したら、エラーなく起動しました
思わぬトラブルで青ざめました
0535NAME IS NULL
2014/04/28(月) 13:41:34.40ID:yPNR6/Ulどのファイルをコピーしたらいいかな?
0536NAME IS NULL
2014/04/29(火) 08:37:28.69ID:???0537NAME IS NULL
2014/05/03(土) 15:09:45.20ID:???mysql> ほにゃららこまんど
'>
ってなるんですが '> ってどういう時に表示されますか?
またネットで検索するときに「mysql '>」とか検索しても '> が無視されているような感じで
今後自力で検索するときにはどうやって検索すればいいでしょうか?
0538NAME IS NULL
2014/05/03(土) 15:22:16.52ID:???0539NAME IS NULL
2014/05/03(土) 15:24:09.03ID:???->じゃなくて
'>
0540NAME IS NULL
2014/05/03(土) 15:57:25.67ID:???0541NAME IS NULL
2014/05/03(土) 19:02:19.01ID:???0542NAME IS NULL
2014/05/04(日) 16:24:38.17ID:???0543NAME IS NULL
2014/05/04(日) 16:58:07.86ID:???ぬしキー
0544NAME IS NULL
2014/05/04(日) 17:05:32.03ID:???0545NAME IS NULL
2014/05/04(日) 19:54:21.39ID:???0546NAME IS NULL
2014/05/05(月) 11:55:44.80ID:???http://www.google.co.jp/search?&q=%E4%B8%BB%E3%82%AD%E3%83%BC
0547NAME IS NULL
2014/05/12(月) 20:57:11.88ID:???社内で、情報参照のためにMySQL+PEAR+PHP+Apacheでデータベース作ったんだけど、
これが好評で社外に公表してはどうか、という話があるんだけど、これってどっかに
ライセンス料収めないとあかんの? PostgresSQLなら問題ないという話もあるけど。
WEBブラウドで使うPHPで作ったデータベースのUIが「プログラム」にあたるとすると
GPL汚染されてアウトなんだろうか。こんなんでデータ公開みたいなことになると
正直やってけませんが。別に無料で普通に使い続けていいよね?
0548NAME IS NULL
2014/05/12(月) 21:18:11.97ID:???・MySQLのプログラム自体を改造
・PHPからMySQLに接続する際、libmysqlclientを使用している場合(これは可能性があるって話だったかも)
一つ目は多分していないだろうし、二つ目はPHP5.3以降に組み込まれているmysqlndを使用すれば問題ない。
普通に使う分には問題無いと思うけど、それでも気になるならMariaDBを検討すればいいんじゃね?
0549NAME IS NULL
2014/05/12(月) 22:05:23.21ID:???0550NAME IS NULL
2014/05/13(火) 00:05:53.73ID:???動的リンクのみOK
PHP自体もGPLにしなければいけなくなって
Mysqlに除外条項が作られたんだよ
0551NAME IS NULL
2014/05/14(水) 12:27:31.73ID:3pPFWZhr0552NAME IS NULL
2014/05/15(木) 00:24:58.72ID:???できます。
0553NAME IS NULL
2014/05/15(木) 10:38:18.02ID:7rqME05rぐぐっても見つけられないのですが
やり方を教えてもらえますか
ちょっと特殊な要件でinsertやupdateは自動変換してほしくて、selectは変換しないでほしいと言った
使い方をしたいのですが
0554NAME IS NULL
2014/05/15(木) 12:50:46.89ID:???要件はしらんが、やり方はぐぐってすぐわかるんだが。
ググり方下手なんじゃないの?
0555NAME IS NULL
2014/05/15(木) 19:40:14.02ID:???> ちょっと特殊な要件でinsertやupdateは自動変換してほしくて、selectは変換しないでほしいと言った
> 使い方をしたいのですが
そもそもalter tableで解決するの?
保存している文字列自体の文字コードを、character_set_clientを変更することにより自動で変換したいように見える。
もちろんそんなことは出来ないけど。
0556NAME IS NULL
2014/05/15(木) 20:27:39.03ID:???海外のソフトを使うとテーブルがUTF8なんで文字化けしちゃうので
EPGテーブルをテーブルにinsertするときに変換して
検索するときにはUTF8で使いたいという内容です
0557NAME IS NULL
2014/05/15(木) 21:02:53.84ID:???character_set_clientを変更しても解決しない。
アプリ側で文字列をUTF-8にエンコードするしかないね。
0558NAME IS NULL
2014/05/15(木) 21:33:02.27ID:???日付データ的なもので、年と月までのデータがあるんだけど、
これってどうするの? 今はとりあえずテキストで1999年12月
とか入れてあるけど、期間で検索できないから困ってる。
0559NAME IS NULL
2014/05/15(木) 21:37:30.35ID:???0560NAME IS NULL
2014/05/15(木) 21:51:48.98ID:???まとまったら
http://toro.2ch.net/test/read.cgi/db/1371476534/
で聞けばいい。
0561NAME IS NULL
2014/05/15(木) 21:59:33.80ID:???昔の文献には作成年月日が詳細に書かれていないものが多くて、
月までしかわからないものは月までにしておかないと、
詳細に作成年月日がわかっているものと区別がつかなくなる。
それに下手に1日とか15日とか入れちゃうと、期間検索したときに
不都合多そうで。
0562NAME IS NULL
2014/05/15(木) 23:17:56.76ID:???こんな感じで
insert into dd values ('2014-05-00');
0563NAME IS NULL
2014/05/16(金) 04:38:32.72ID:???昔、悩んだことがある。
日だけ別のフィールドを作れば理論的には区別できるけど面倒。
実用的には日まで気にして検索することは少ないので、日が不明なのは15日と仮定し、オリジナルのデータを別フィールドで持つことにした。
0564NAME IS NULL
2014/05/16(金) 08:14:30.39ID:???それって言語によって2014-04-30と認識しちゃうとか?
ポスグレ移行も考えてるのでなるべく標準に近いデータにしたい。
どうすりゃいいんだろ。普通に年・月のデータってあると思うんだけど
ググってもわからないし。
0565NAME IS NULL
2014/05/16(金) 08:27:04.68ID:???0566NAME IS NULL
2014/05/16(金) 08:47:37.04ID:???0567NAME IS NULL
2014/05/16(金) 13:39:56.94ID:???日付の足し算、引き算の必要がないなら、ストリングでよいですね。
期間指定して検索もできます。
0568NAME IS NULL
2014/05/16(金) 15:03:40.33ID:???計算も工夫すりゃそのままできるし
0569NAME IS NULL
2014/05/17(土) 07:49:28.47ID:???>>568
いやそれだと日付が詳細まで入力してあるのが、、、、、と思ったけど、
10桁の数字にして月までのデータは末尾0000にすればいいのか?
期間検索できるし。日数計算できないけど、それは考えようか。
、、、、、、、とすると、今まで入力した日付データを変換するには、、、、
5000くらいデータあるけど、手修正かorz? 質問してよかったぁ。
数万になってからでは目もあてられんかったorz
数字10桁の期間検索用フィールド入力→日付データに日付型に
変換して入力(月までのデータは適当に)とかかなあ。あー面倒orz。
0570NAME IS NULL
2014/05/17(土) 10:15:29.35ID:???0571NAME IS NULL
2014/05/17(土) 10:33:16.95ID:???まあどれがいいかは今後の運用方法によるけど
変換はUPDATE文工夫すれば数十万件なら一瞬だよ
0572NAME IS NULL
2014/05/17(土) 12:08:37.27ID:???ぜひ詳しく。
>>571
ですよね〜。SQLおぼつかないから勉強しないと。
0573NAME IS NULL
2014/05/17(土) 17:56:26.38ID:???文字型では難しくて、日付型だと簡単なのは、日付の足し算、引き算だけでは?
>>561 の文献データベースなら、日付の足し算とか引き算は
文字型でも期間指定で検索ができるよ。
PubDate >= "1853年07月08日" AND PubDate <= "1854年06月01日"
少し話は違うけど、「嘉永6年」ではなくて「癸丑」と干支だけ書かれた文献もあるよ。
0574NAME IS NULL
2014/05/17(土) 17:57:42.50ID:???× >>561 の文献データベースなら、日付の足し算とか引き算は
○ >>561 の文献データベースなら、日付の足し算とか引き算は不要では
0575NAME IS NULL
2014/05/19(月) 22:16:03.67ID:???0576NAME IS NULL
2014/05/20(火) 13:05:08.37ID:???安全
0577NAME IS NULL
2014/05/22(木) 01:44:14.44ID:???0578NAME IS NULL
2014/05/22(木) 17:52:03.74ID:???0579NAME IS NULL
2014/05/22(木) 22:53:46.84ID:???Dumpしたデータをリストアしようとしたら、途中から急にメモリが跳ね上がってサービスが強制終了するんだけどなんで?
どこ調べても解決しない
0580NAME IS NULL
2014/05/24(土) 01:04:48.00ID:???インデックスの構築で死んでるのでは?
0581NAME IS NULL
2014/05/26(月) 23:37:23.25ID:???0582NAME IS NULL
2014/05/27(火) 00:07:18.05ID:???そこで、外部制約かけたりとかストアドプロシジャ作ってみるとか
それから自分で出来る言語でDBアプリ作ってみるとか
0583NAME IS NULL
2014/05/27(火) 12:57:46.93ID:???元に戻すにはどうしたらよいですか?
0584NAME IS NULL
2014/05/28(水) 01:12:02.68ID:t9RKPMWp1 book_id int(11)
2 book_title varchar(256)
3 deleted tinyint(4)
comments テーブル 50万件
1 comment_id int(11)
2 book_id int(11)
3 comment varchar(256)
で削除されていない本のコメント数を知りたいのですが
SELECT count(*)
FROM comments
LEFT JOIN books
ON comments.book_id = books.book_id
WHERE books.deleted=0
が遅すぎるので早くする方法ありませんか?
もしくは遅い原因など知りたいです。
下のでは物凄く早いのですが。。設定値とか見直すとこや他の件数の出し方あればお願いします。
SELECT comments.comment_id
FROM comments
LEFT JOIN books
ON comments.book_id = books.book_id
WHERE books.deleted=0
0585NAME IS NULL
2014/05/28(水) 05:20:49.87ID:???下のが早いならそれでいいじゃん。
count(*)してるからじゃないの?
0586NAME IS NULL
2014/05/28(水) 20:51:20.13ID:???books.book_idには主キーかインデックスを作ってあると思うけど、
それを大前提として、それでも遅いならディスクI/Oかなあ。
Linuxならiostat -xm 1 で r/s と %util を見て。Windowsは知らん
0587NAME IS NULL
2014/05/28(水) 21:19:12.68ID:???2つのクエリのEXPLAINの結果を張ってくれ
0588NAME IS NULL
2014/05/29(木) 00:49:09.08ID:0XuSN7uc>>585
すみません、上の結果がほしいのです。
というよりは件数がわかればなんでもいいのですが。
>>586
確認してみます。
>>587
上が2.2秒ほどで
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE comments index book_id book_id 4 NULL 500509 Using index
1 SIMPLE books eq_ref PRIMARY PRIMARY 4 test.comments.book_id 1 Using where
下が0.0027 秒
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE comments index book_id book_id 4 NULL 500509 Using index
1 SIMPLE books eq_ref PRIMARY PRIMARY 4 test.comments.book_id 1 Using where
上はSending Dataが2秒以上かかっているので
COUNTが原因なのはわかったのですが
JOINすることでtmpテーブルがつくられてしまってなど原因があるのでしょうか
数えたりしてるために遅いのでしょうか?
0589NAME IS NULL
2014/05/29(木) 01:34:48.86ID:???プラン同じだね。
下は結果がが50万行出てくるけど、50万行垂れ流すのが0.0027秒で終わるわけがない。
何らかのGUIツールを使っていて、1画面だけ表示、暗黙的にLIMIT 100とかしてない?
つまり上が遅いのではなく、下がインチキしている(最後まで処理をしていない)と言いたい。
プラン見る限り一時テーブルは作ってない。
それで個人的な感想ですけど、50万行の集計が2.2秒というのは「十分に速い」です。
明らかにI/Oはしていない。I/Oしてたら数分かかる。
もっと速くしたいなら前段にmemcachedなどを入れて結果をキャッシュしよう。
0590NAME IS NULL
2014/05/29(木) 01:59:43.88ID:???テーブルを非正規化してcommentsテーブルにdeletedカラムを入れてもいいと思う。
それで1秒は切れると予想。
0591NAME IS NULL
2014/05/29(木) 06:31:55.57ID:???なぜcountなのにgroup byがないのですか?
left join使わず、出力も1行でいいですよね?
0592NAME IS NULL
2014/05/29(木) 10:04:08.44ID:???booksにdeleted,book_idの複合インデックスってないのかな?
あとはleftでなくinnerかな。こっちのが普通かと
0593NAME IS NULL
2014/05/29(木) 19:32:40.25ID:???ちなみに、count(comments.comment_id)だとどう?
0594NAME IS NULL
2014/05/29(木) 21:22:03.18ID:???他は内部結合、インデックスと。
0595NAME IS NULL
2014/05/30(金) 00:12:28.93ID:???あっちはハッシュを使ってくるのでどう戦いますかな
0596NAME IS NULL
2014/05/30(金) 00:35:43.06ID:rm2UkD9zすみません。
皆さんの意見を参考に下記に書き換えてみたのですが、速度は変わらず。。
SELECT count(comments.comment_id)
FROM comments
INNER JOIN books
ON comments.book_id = books.book_id
WHERE books.deleted=0
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE comments index book_id book_id 4 NULL 500509 Using index
1 SIMPLE books eq_ref PRIMARY,test,book_deleted PRIMARY 4 test.comments.book_id 1 Using where
もうcountだからこの速度はどうしようもないってことでしょうか。
memcachedなどを使うなど、このSQL以外のとこで速度をあげるようにすべきでしょうか。
0597NAME IS NULL
2014/05/30(金) 01:26:26.61ID:???> INNER JOIN comments USING(book_id)
もEXPLAIN同じだろうし
comments.book_idには既にインデックス付けてるだろうし
↓しかないかも?
ttps://github.com/nekoatcafe/wiki/wiki/MySQL%EF%BC%9Acount(*)%E5%AF%BE%E7%AD%96
0598NAME IS NULL
2014/05/30(金) 01:31:03.79ID:???あまり期待しないでほしいのだけれど、テーブル結合順を逆にする案。
大半の本が削除されている(deleted = 0が少ない)場合はこちらの方が速い。
CREATE INDEX books_deleted ON books (deleted);
CREATE INDEX comments_book_id ON comments (book_id)
SELECT STRAIGHT_JOIN COUNT(comments.comment_id)
FROM books INNER JOIN comments ON books.book_id = comments.book_id
WHERE books.deleted = 0
0599NAME IS NULL
2014/05/30(金) 09:12:28.43ID:???複合インデックスはあったの?
0600NAME IS NULL
2014/06/01(日) 17:38:21.57ID:otWRvot4http://tn.en.fishki.net/26/upload/en/201406/01/1273947/uhio5396.jpg
稲城市立向陽台小学校評判
0601NAME IS NULL
2014/06/03(火) 18:01:08.24ID:???データベースを作成し、データを数千件インポートしたところまではよかったのですが
数人で編集した場合に HeidiSQL では排他制御が掛らずに上書きされてしまいます。
HeidiSQL でロックすることは可能でしょうか?
0602NAME IS NULL
2014/06/03(火) 19:14:07.28ID:???んでその分離レベルは?
0603NAME IS NULL
2014/06/03(火) 20:46:26.79ID:???トランザクション使って排他制御したとしても、古いデータを上書きする確率は減らないと思うよ。
0604NAME IS NULL
2014/06/03(火) 20:56:08.68ID:???アホかよ
0605NAME IS NULL
2014/06/03(火) 21:46:26.87ID:???いつ誰がどのくらい処理を発生させるんですか?
phpなどを使わないなら、accessだけで十分では?
0606NAME IS NULL
2014/06/04(水) 10:17:45.22ID:???まだ勉強不足で質問するのが早かったように思います。
申し訳ありません。
>>602
データタイプはInnodbです。トランザクションに関してはわかりませんので調べてみます。
分離レベルの答えになっていないかもしれませんが、テーブル単位でロック出来ればと考えていました。
>>603
phpMyAdminよりも使いやすいツールを探してHeidiSQLを選びました。
複数人で同時編集には向いていないのですね。
>>605
DBは顧客管理になるのですが、複数の営業所で情報を一元管理するのが狙いです。
更新作業は5〜6人が日に数件ほどかと思います。
accessでは排他制御と矛盾していますが、同時編集が出来ないと聞いていましたので
除外していました、再検討してみます。
0607NAME IS NULL
2014/06/04(水) 16:00:44.63ID:???共有フォルダにエクセルのファイルおいてみんなで使うようなもんか
0608NAME IS NULL
2014/06/04(水) 20:38:33.42ID:???ただ負荷がかかるとしょっちゅうファイルぶっ壊れるから正直嫌い
でもすぐ修復できるしバックアップも簡単で使いこなせば便利で安い
もしぶっ壊れるなら、PHPとかで外注がいい、その程度なら多分安いよ
もしくはGUI内製、簡単だよ、プログラム多少分かる人いればすぐ作れる
そういやinnodbで「where句なしcountがクソ遅い」問題どうなったかな?
本来WHERE句省けるところ、GROUP BYさせてWHERE句つけても結局遅いのかな
0609NAME IS NULL
2014/06/05(木) 10:05:56.79ID:???0610NAME IS NULL
2014/06/05(木) 10:22:27.03ID:???countが遅いって何?
0611NAME IS NULL
2014/06/10(火) 01:13:53.01ID:???innodbのcountは遅いんだよ
0612白バラ十字軍
2014/06/10(火) 15:47:48.99ID:gr7v9uKnネットではささやかれる時代になりました。刑務所受刑者の33%は創価員という事実は有名な話ですが、以下を見れば納得ができます
創価員が裁かれる 判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」
◎以下これ以外にまだまだ創価員の犯罪多数あり、書類送検されていないだけであなたの街でも多数すさまじい事件の数が
発生しましたし、まだまだ毎日のように創価員による凶悪事件は発生しているのです!
しかもこれ以外にもTVでも報道された凶悪事件多数あり!。あなたの周りにも潜んでいる。
危険です。危機的状況です。酒鬼薔薇だけではありません。実にたくさんいるのです
あなたの街でも善良な人間のように取り繕い潜んでいるのです。
●宅間守(在日)→大阪 附属池田小学校児童殺傷 創価学会員。大量殺人犯 。8人殺害 15人が重軽傷。悪徳 朝鮮人部落出身。
(悪徳カルト)両親も創価学会員。獄中結婚したが相手の女も創価員。さすが創価員は悪徳な者を好む。あえて結婚する
とは殺人破壊者を賛美、美化、擁護する行為 2004年死刑執行 獄中結婚した女は慰謝料損害賠償払ったのか?被害者に詫びたのか?
宅間は被害者に詫びていない。つまり・・・判決の際 法廷にこだまする「 池 田 先 生 万 歳 !」ということ
日本の犯罪史上、稀に見る大事件
●畠山鈴香 (在日)→秋田県児童連続殺害事件 創価学会員。悪徳。(悪徳カルト)
●斉藤勇太 →JR取手駅前バス無差別殺傷事件 創価学会員。悪徳。(悪徳カルト)
●酒鬼薔薇聖斗→ 東慎一郎(在日)神戸の首切り魔で酒鬼薔薇聖斗 創価学会員。神戸の首切り魔。生首を校門に飾る。悪徳2人殺害。
元在日朝鮮人。両親も創価学会員(悪徳カルト)
●福田孝行(在日)→山口県母子殺害 殺害後屍姦、乳児も殺害 創価学会員。悪徳(悪徳カルト)
●阿部隆 →長野母子バラバラ殺人事件(平成元年)船橋市幼児バラバラ殺人事件 千葉県船橋市の熱心な創価学会員・A・A子さんと長男
のHちゃんが、同じく学会員である夫のA・Tに殺された。動機は生活苦。バラバラにされた死体が聖教新聞に包まれ、長野県の山中に捨
てられていた 悪徳(悪徳カルト)
0613NAME IS NULL
2014/06/10(火) 16:53:41.37ID:???0614NAME IS NULL
2014/06/11(水) 20:18:55.26ID:???0615NAME IS NULL
2014/06/11(水) 20:34:08.59ID:???0616NAME IS NULL
2014/06/14(土) 10:30:07.13ID:???直接物理バックアップ取るなら隠しフォルダのprogramData内にMysqlのフォルダがあるのでその中のdataフォルダをコピーすればいい。ただし、MySQL止めた状態で。
ぐぐれば詳細出てくるはず。
0617NAME IS NULL
2014/06/15(日) 23:00:32.66ID:???作るみたいだけど(これはSET型も同じみたいだけど)、リストを拡張したい
時ってどうするんですか?
alterでその都度追加(出来るんですか)?
0618617
2014/06/15(日) 23:38:13.08ID:???id int primary key,
col ENUM('red','blue','yellow')
);
mysql> insert into testenum(id,col)
-> values(4,'black');
ERROR 1265 (01000): Data truncated for column 'col' at row 1
で
alter table testenum modify column
col enum('red','blue','yellow','black');
mysql> insert into testenum(id,col)
-> values(4,'black');
Query OK, 1 row affected (0.00 sec)
で、出来ました^^;
0619マッチ棒
2014/06/18(水) 15:28:57.11ID:???mySQLのテーブルに、Excelのように計算式をもった列はやれますか。
たとえば売上フィールドと原価フィールドをもとに、粗利フィールドには自動で値がセットされるようにしたいのです。
Web画面に表示するときにそのつど計算させると重くなるので、テーブルに持たせたいのです。
0620NAME IS NULL
2014/06/18(水) 15:31:07.20ID:???0621マッチ棒
2014/06/18(水) 17:21:35.37ID:???0622NAME IS NULL
2014/06/18(水) 17:39:58.59ID:???INSERT/UPDATE時に計算結果を書き込むのではダメ?
0623NAME IS NULL
2014/06/18(水) 17:46:04.47ID:???SELECT 売上-原価 AS 粗利 FROM 商品 WHERE 商品id=1;
ってことだろ?
0624NAME IS NULL
2014/06/18(水) 17:47:03.29ID:???実際に測ったの???
重くなるのが嫌なら全パターンのhtml用意するしかないね
0625NAME IS NULL
2014/06/18(水) 18:12:09.34ID:???計算のタイミングは取得時でかわらんけどな。
どうしても格納時にやりたいけど、INSERTやUPDATE文に入れられないならトリガという手もある。
0626マッチ棒
2014/06/18(水) 18:27:40.01ID:???表示するときに動的にクリエーするのが一般的なんでしょうか
ご意見ありがとうございます
0627NAME IS NULL
2014/06/18(水) 18:46:00.90ID:???0628マッチ棒
2014/06/18(水) 19:26:59.35ID:???0629NAME IS NULL
2014/06/18(水) 20:48:52.88ID:???クライアント(プログラム)側でやるという手もあるにはある。
たとえば、クライアントがブラウザならJavaScriptで。
ただし、クライアントで計算させることの危険性については、考えないといかんけど。
0630NAME IS NULL
2014/06/18(水) 20:54:42.51ID:???ただ引き算するだけのコストと
どっちのほうが大きいか
まあ、どっちも何の支障もないレベルだけど
そんな小さい小さい事考えるよりお前の汚いソース最適化しろ
0631NAME IS NULL
2014/06/21(土) 11:36:02.31ID:???オープンソースのライセンスにしなければいけないと聞いたのですが本当ですか?
0632NAME IS NULL
2014/06/21(土) 12:14:00.93ID:???本当です。
MariaDB Client LibraryならLGPLだから、こっちを使えばいいよ。
https://mariadb.com/kb/en/mariadb-client-library-for-c/
0633マッチ棒
2014/06/21(土) 12:30:35.37ID:???結局mysql側ではそういう機能ないのですかね
要は、売上額が変わっても、外注額が変わっても、自動で粗利額が変わりたいです。
レコード編集時にアップデート計算するのが普通ですけ
0634NAME IS NULL
2014/06/21(土) 14:05:08.22ID:???で何がダメなのか教えて
0635NAME IS NULL
2014/06/21(土) 14:05:28.10ID:???>>625 でトリガを使えばできるって書いてあるでしょ
0636634
2014/06/21(土) 14:06:55.80ID:???0637NAME IS NULL
2014/06/21(土) 14:20:31.64ID:???ありがとうございます
LGPLなら利用するだけならライセンスを縛られないのですね
mysqlのapiと互換性があるmariadbのクライアントライブラリを
利用する方法があるとはしりませんでした
mysqlの昔のLGPLの頃のコードと
phpのmysqlクライアントのソースから作ってるんですね
あとはlibmysqlclient.soの変わりにうまく使わせられればいい感じですね
ありがとうございます
0638NAME IS NULL
2014/06/21(土) 15:52:34.92ID:???0639マッチ棒
2014/06/21(土) 16:31:34.80ID:???案件一覧テーブルと、仕入一覧テーブルがあって
案件IDと引当IDをヒモヅケして集計しようとしています
一つの案件に、複数の仕入があります
さて、どうしたらいいんでしょうか
追伸
>>633の件は、レコード編集時にそのつどクリエーすることで解決しました
0640マッチ棒
2014/06/21(土) 16:35:15.12ID:???その後SELECT SUMで合計しなおすことです
けど全くやりかたがわかりませんね
0641マッチ棒
2014/06/21(土) 17:52:41.92ID:???0642マッチ棒
2014/06/21(土) 17:54:19.43ID:???カスタマイズが簡単なフリースクリプトはありませんか?
0643NAME IS NULL
2014/06/21(土) 18:45:52.25ID:???0644NAME IS NULL
2014/06/21(土) 19:57:34.55ID:???SELECT * FROM test WHERE uriDay BETWEEN "2014-05-01" AND "2014-05-31";
この日付指定2カ所を変数で渡したいんだよ
フォームの値を入れたいわけ
けどどうしてもうまくいかん
日付が数値として処理されてるのかな
誰かサンプルを提示してくれないけ
0645NAME IS NULL
2014/06/21(土) 20:34:38.49ID:???よくやる間違いだが、sql文には日付の引用符が必要だぞ
引用符つきでストリングを渡すか、sql側に引用符をつけておく
0646645
2014/06/21(土) 20:46:21.75ID:???つまりこんな感じ
'SELECT * FROM test WHERE uriDay BETWEEN "'.$fromDate.'" AND "'.$toDate.'"';
0647NAME IS NULL
2014/06/21(土) 20:56:27.57ID:???ぇ
0648NAME IS NULL
2014/06/21(土) 21:31:51.59ID:???該当の言語スレで聞いたほうがいいな。
内容はもっと詳細に書いた方がいい。
最低限いるのは言語名(該当言語スレに行くならいらない)と処理に失敗するコードの内容。
あと>>645->>646のことは忘れろ。
0650NAME IS NULL
2014/06/21(土) 23:03:32.15ID:???0651NAME IS NULL
2014/06/21(土) 23:14:46.02ID:???mysqlのdate_add、date_subはちゃんと2/28を返すのに
0652NAME IS NULL
2014/06/21(土) 23:33:30.95ID:???別にそういう風にできる関数や、日付を取り扱うクラスが用意されている。
スレチだから詳細は書かないけど。
0653NAME IS NULL
2014/06/21(土) 23:57:17.45ID:???どういうことなの
0654NAME IS NULL
2014/06/22(日) 15:54:30.59ID:???SQLインジェクションはちゃんと対策してくれよ
>>652
DateTime::addとかがそういう仕様だよ
0655NAME IS NULL
2014/06/22(日) 16:17:44.52ID:???この画像のように、2つのテーブルがあり、左の案件1つにつき複数のコストがあります。
そのコストを引き当てIDにもとづいて合計して案件テーブルに格納したいです。
よろしくおねがいします
http://i.imgur.com/4wZKQIM.jpg
0656NAME IS NULL
2014/06/22(日) 16:28:58.89ID:???テストはしてない
0657NAME IS NULL
2014/06/22(日) 16:30:39.75ID:???適宜INSERTなりUPDATEなり書き換えてくれ
0659NAME IS NULL
2014/06/22(日) 18:46:44.57ID:???うーん、なぜかエラーが出てしまう。
僕が意味を理解できていないので、エラー内容もわけがわからない
0660NAME IS NULL
2014/06/22(日) 18:50:05.48ID:???俺らは理解できるから、ちょっとエラー内容教えてみ
0661655
2014/06/22(日) 19:05:00.96ID:???とかいろいろエラーが出ます
0662655
2014/06/22(日) 19:05:50.85ID:???0663NAME IS NULL
2014/06/22(日) 19:31:35.64ID:???0664NAME IS NULL
2014/06/22(日) 20:06:53.27ID:???COALESCEだったわ
全然違うわ
一から出直す…
0665NAME IS NULL
2014/06/22(日) 20:34:15.34ID:???0666NAME IS NULL
2014/06/22(日) 20:59:47.04ID:???0667655
2014/06/23(月) 00:39:24.54ID:???現状、下記のクエリでかなり近いところまできました
SELECT t1.anken , SUM(t2.金額) FROM t1 ,t2 WHERE t1.id = t2.引当id GROUP BY t2.引当id
ただし、金額がゼロの案件が表示されないです
ひきつづきアドバイスよろしくおねがいします
0668NAME IS NULL
2014/06/23(月) 00:59:52.43ID:???COALESCE
0669NAME IS NULL
2014/06/23(月) 07:25:03.41ID:???まず>>656が外部結合で例を示してるのにそれ自分で外しちゃってるから
0670655
2014/06/23(月) 12:53:17.95ID:???SELECTで合成されたテーブルは、実体はあるんですか?
そのテーブルに対しさらにクエリできますか
またそのテーブルはいつまで存在してるのでしょうけ?
0671655
2014/06/23(月) 14:17:08.66ID:???あらためて整理して見ました
この画像のように2つのテーブルを合成したいです。
ご指導もらったコレラセでやると、コストの登録のないものが表示されません。
コストテーブルにないものは0と表示したいです。案件テーブルにある件数すべてが表示されたいということです。
よろしくご指導おねがいします
0672655
2014/06/23(月) 14:17:48.52ID:???画像はこれです
よろしくおねがします
0673NAME IS NULL
2014/06/23(月) 14:41:01.10ID:???SQL view でググって勉強されたらいかが?
0674NAME IS NULL
2014/06/23(月) 15:53:27.51ID:Na+XSE7Aなんで無視してるの?
0675NAME IS NULL
2014/06/23(月) 16:13:26.93ID:???仕事か学校の課題か知らないが、
一度データデースの入門書でも読んだ方がいい。
0676NAME IS NULL
2014/06/23(月) 16:16:21.85ID:???ttp://logic.moo.jp/data/archives/11.html
UPDATE JOIN GROUP BY でググれば一発だが
まず LEFT JOIN が分からんとどうにもならん
0677655
2014/06/23(月) 17:26:10.97ID:???すみません>>671で報告したように、コスト一覧に対応がないものつまりコスト0の案件がリストアップされないのである
0678655
2014/06/23(月) 17:27:12.90ID:???0679NAME IS NULL
2014/06/23(月) 17:28:54.98ID:???0681655
2014/06/23(月) 17:56:16.15ID:???SELECT anken.id,anken.anken_name,COALESCE(SUM(cost.cost_gaku),0)
FROM anken
LEFT JOIN cost
ON anken.id = cost.rel_id
group by anken.id
ちみらほんとに使えないインターネッツやな
0682NAME IS NULL
2014/06/23(月) 18:06:49.24ID:???>>656と同じものにたどり着けたね。おめでとう
0683NAME IS NULL
2014/06/23(月) 18:49:32.38ID:???0684NAME IS NULL
2014/06/23(月) 18:50:14.83ID:???答えが殆ど出ていたにもかかわらず正答に辿り着くまで時間がかかったとはいえなんとか解決できてよかったね。
おめでとう。
0685NAME IS NULL
2014/06/23(月) 19:41:27.82ID:???クリエーとか言ってるし…
0686NAME IS NULL
2014/06/24(火) 01:36:06.69ID:???0687NAME IS NULL
2014/06/24(火) 09:56:22.79ID:???0688NAME IS NULL
2014/06/24(火) 11:30:39.95ID:U+KduEjR★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi
※ 要タイトル検索
※ 2chブラウザ併用推奨
0689NAME IS NULL
2014/06/24(火) 15:33:47.11ID:???よろしくお願いします
0690NAME IS NULL
2014/06/24(火) 15:53:06.98ID:???0691NAME IS NULL
2014/06/24(火) 15:58:32.03ID:???そもそも何?その欠陥ラッパ
0692NAME IS NULL
2014/06/24(火) 16:07:00.31ID:???0693689
2014/06/24(火) 16:33:27.73ID:???mysql_queryで結果がヌルなのでそのエラーになるようです
けどげせないのは、いままで結果がカラでもエラーは出ていなかったんですよ
条件追加したらこうなったのである
0694NAME IS NULL
2014/06/24(火) 16:37:17.69ID:???mysql_queryは非推奨だよ
nullを利用する部分を書き間違えてるんでしょ
phpの問題というよりプログラムの問題でしょ
0695NAME IS NULL
2014/06/24(火) 16:39:31.06ID:???0696689
2014/06/24(火) 16:59:08.45ID:???0697NAME IS NULL
2014/06/24(火) 18:50:58.72ID:???0698マッチ棒
2014/06/24(火) 18:58:28.65ID:???僕もわかる範囲でアドバイスしてあげます
0699NAME IS NULL
2014/06/26(木) 00:21:00.68ID:???あなたの「わかる範囲」を教えて!
0700NAME IS NULL
2014/06/26(木) 09:21:06.61ID:???託児ありがとうございます。
0701マッチ棒
2014/06/30(月) 14:44:00.58ID:???さくらインターネットで、ムーバブルタイプのブログが8年ほど前からやってまして
mySQLを使ってるようですが
さくらインターネットのライト契約なのでmySQLは使えないらしいんですよ
これはどういうことでしたか
0702NAME IS NULL
2014/06/30(月) 14:50:29.57ID:???さくらのサポートにでも聞いてくれ
0703マッチ棒
2014/06/30(月) 14:54:21.40ID:???いまいち納得できないけど
0704NAME IS NULL
2014/07/01(火) 16:55:46.29ID:???0705ポンプ
2014/07/01(火) 16:59:47.33ID:???0706NAME IS NULL
2014/07/01(火) 17:09:00.49ID:???0707NAME IS NULL
2014/07/02(水) 21:25:54.09ID:???dumpファイルの復元を行っているのですが、復元できません。また復元されたことを確認する方法も分かりません。
コマンドプロンプトからmysql5.1に入り、binの下で、「mysql -u ユーザー名 -pパスワード DB名 <dumpファイル名」では復元できないのでしょうか。
ご教示頂ければ幸いです。よろしくお願いします。
0708NAME IS NULL
2014/07/02(水) 22:45:43.71ID:???0709707
2014/07/02(水) 23:12:30.85ID:???初心者なもので…申し訳ありません。
0710NAME IS NULL
2014/07/02(水) 23:27:09.34ID:???小さめのdatabaseとtableを作成して、dumpしてみる。
MySQL monitorを起動して、
source dumpfile ってやってみる。
エラーが出たらその原因を調べる。
0712NAME IS NULL
2014/07/06(日) 21:16:06.41ID:59xYQ0EB回答コメント数順のデータをとりたいのですが
データ数が多いと1秒くらいかかってしまいます。
Using temporary; Using filesort;
が出てしまっているのでこれをどうにかすれば早くなりますか?
CREATE TABLE `question_comment` (
`comment_id` int(11) NOT NULL AUTO_INCREMENT,
`question_id` int(11) NOT NULL,
PRIMARY KEY (`comment_id`),
KEY `book_id` (`question_id`)
)
SELECT question_id,
COUNT(*) AS cnt FROM question_comment
GROUP BY question_id
ORDER BY cnt DESC
explain 結果
1 SIMPLE question_comment index NULL book_id 4 NULL 500537 Using index; Using temporary; Using filesort
0713NAME IS NULL
2014/07/06(日) 21:57:34.32ID:???劇的に速くする方法はない。
1時間に1回程度このクエリを実行して、結果を別のテーブルに保存する。
それでユーザにはその集計済みの結果を見せるというのがセオリー。
ニコニコ動画のランキングとかも1時間に1回更新でしょ。
それと同じ。
0714NAME IS NULL
2014/07/07(月) 18:35:00.18ID:???book_id インデックスを総なめする必要があるから、どうしても時間がかかってしまう。
Using temporary; Using filesort; はインデックスを走査した結果を集計しているだけだから時間の割合は少ないと思う。
>>713 みたいに定期的に集計するか、カウント用のテーブルを作ってプログラム側でカウンタを回すとかするしかない。
(book_id が楽々全部乗るくらいキャッシュメモリ積めば早いけど)
0715NAME IS NULL
2014/07/07(月) 22:09:47.53ID:abW3QXYB>>714
ありがとうございます!参考にします!!
Using temporary; Using filesort; が遅いわけではないんですね。。
楽々全部乗るくらいキャッシュメモリがあればとありますが、
設定値の変更はどこになりますか?
0716NAME IS NULL
2014/07/07(月) 22:57:00.39ID:???機能が有効かどうかの確認
SHOW VARIABLES LIKE 'have_query_cache';
"YES"なら有効
システム変数の設定
query_chache_size 41984以上 単位はbyte 0を設定すると無効に
query_chache_type 1(ON) or 2(DEMAND)
0(OFF)を設定すると無効に
1 SQL_NO_CACHEオプション付きのSELECT文を除く
すべての結果をキャッシュする
2 SQL_CACHEオプション付きのSELECT文のみキャッシュ
SHOW VARIABLES LIKE 'query_cache_%e';
0717NAME IS NULL
2014/07/07(月) 23:44:10.56ID:???質問1個に平均20とかコメントついてるなら別だけどさ
sort_buffer_size
を増やすことでUsing temporaryを消せれば
改善するかもな
0718NAME IS NULL
2014/07/08(火) 21:31:09.45ID:???Using temporary になるんじゃないの?メモリサイズ不足じゃなくて。
>>715
ちなみに最後に LIMIT 0,1 をつけると早くなります?
0719NAME IS NULL
2014/07/10(木) 11:19:53.06ID:UaAE594XINSERT INTO `tablename` VALUES ('001','name1'),('002','name2'),('003','name3');
ではなく
INSERT INTO `tablename` VALUES
('001','name1'),
('002','name2'),
('003','name3');
のように出力したい
0720NAME IS NULL
2014/07/10(木) 12:11:56.75ID:???MySQL mysqldump+αでExcelで読めるCSV出力CommentsAdd Star
http://d.hatena.ne.jp/deeeki/20100720/mysqldump_csv_sjis
0721NAME IS NULL
2014/07/10(木) 13:40:40.78ID:???extended-insert=FALSE
つけてみて
0722NAME IS NULL
2014/07/10(木) 14:03:22.55ID:UaAE594X--extended-insert=falseとすると
INSERT INTO `tablename` VALUES ('001','name1'),
INSERT INTO `tablename` VALUES ('002','name2'),
INSERT INTO `tablename` VALUES ('003','name3');
となりました
これはこれで意図するものに近いかなという感じです
0723NAME IS NULL
2014/07/10(木) 14:18:29.88ID:???0724NAME IS NULL
2014/07/10(木) 14:45:24.14ID:UaAE594Xエディタだと開けない場合があるので、mysqldumpオプションで対応できるものが
存在しているかどうかについて知りたいというのがメインでした
sedとか使うのも試してみます
ありがとうございました
0725NAME IS NULL
2014/07/10(木) 21:23:07.70ID:???createdという作成日を保存するフィールドがあります。
これを元にソートする、ただしwhereによる絞り込みはしない場合はcreatedにもインデックスを貼るべきですか?
0726NAME IS NULL
2014/07/10(木) 22:01:49.27ID:???0727NAME IS NULL
2014/07/10(木) 23:18:12.81ID:fsYbcw2v返信遅くなりました!
LIMIT 0,1 つけても変わらずです!
0728NAME IS NULL
2014/07/13(日) 01:35:26.14ID:sEAPG4oI上記のサイトに、
TIMESTAMP 型の値は、格納するときに現在のタイムゾーンから UTC に変換され、取り出すときに UTC から現在のタイムゾーンに変換されます。
と書かれているのですが、
TIMESTAMPを取り出す際に、現在のタイムゾーンではなく、UTCとして取得する方法はありませんでしょうか?
SET SESSION time_zone = '+0:00';
を実行しても無理でした。
ご存知の方いらっしゃいましたら教えてください。お願いします。
0729NAME IS NULL
2014/07/13(日) 03:08:28.30ID:???で、できたんだけど何が違うんだろう
0730NAME IS NULL
2014/07/18(金) 00:40:27.14ID:???0731NAME IS NULL
2014/07/20(日) 10:15:01.88ID:???http://blog.goo.ne.jp/bluesky0077/e/51db55ee27046ee4fe799007f31b5d06
???
0732NAME IS NULL
2014/07/20(日) 17:48:38.11ID:???wikipediaを参照して、引用元を読まない奴が多すぎるよな
> The use of MySQL is expected to decline from 82.1% of the 347 respondents today as 78.7% expect to be using it in 2011, declining to 72.3% 2014.
って書いてあるのに
0733NAME IS NULL
2014/07/22(火) 20:13:10.72ID:???ローカル環境ではきちんと動いていたphpが、ロリポップのサーバーにアップロードすると、
SQLをクエリする部分でエラーが出てしまいます。
ロリポップのphpMyAdminを開いたときに表示されるページの「Webサーバ」という欄に、
・PHP 拡張: mysql
と書かれているのですが、これは関係ありますでしょうか?
ロリポップの設定画面から、
「Webツール」→「PHP設定」のところで全で、phpのバージョンを5.2から5.4に変更し、
10分待っても、この「PHP 拡張: mysql」の表示は変わらないままです。
ちなみに、ローカル環境でのphpMyAdminの表示は、
PHP 拡張: mysqli
になっています。
どうすれば、mysqliでクエリできるようになるか、ご存知の方いらっしゃいましたら教えてください。お願いいたします。
0734NAME IS NULL
2014/07/22(火) 20:26:38.55ID:???ロリポップにmysqli入ってないんじゃないの?
phpinfo();で調べたら?
入ってない場合、手動でインストールできるかはわからんが。
何せレンタルサーバーだからね。
0735733
2014/07/22(火) 22:22:55.31ID:???「MysqlI Support enabled」と出ます。
やはり、myqliクラスは使えるようになってるんですね。
あと、mysqliのコンストラクタを使用した時にデータベースへのログインも出来てるようです。
でも、サーバーにアップロードすると、ローカル環境で正常に動いていたquery()メソッドで、エラーが出てしまうみたいです。
他に何か問題点として考えられる事はありますでしょうか?
0736NAME IS NULL
2014/07/22(火) 22:47:55.35ID:???0737NAME IS NULL
2014/07/23(水) 01:34:40.28ID:???0738NAME IS NULL
2014/07/23(水) 02:09:31.71ID:???どんなキーワードでググるべきかも分からないので教えて下さい。
以下のテーブルがあるとします。
3,渡辺
2,井上
1,田中
LOAD DATA INFILEで、5と4を記述したcsvファイルをインポートしました。
すると下に追加されて32154となるのですが、
このように上に追加するにはどうしたら良いでしょうか。
5,山田
4,鈴木
3,渡辺
2,井上
1,田中
0739738
2014/07/23(水) 02:10:49.80ID:???0740NAME IS NULL
2014/07/23(水) 02:14:42.45ID:???selectするときにorder byで並び替えて取得する。
データ構造的にそうしたいという意味で聞いているのなら無理。というか無意味。
0741NAME IS NULL
2014/07/23(水) 10:04:26.76ID:???どこ行っても同じこと言われると思うが。
0742NAME IS NULL
2014/07/23(水) 20:23:51.85ID:???既存のテーブルをdumpして、cat 5,4のcsv dump > aaa
load data infile aaa into table XXX
5と4のcsvが
4
5
の順で書かれてるならしらん
0743733
2014/07/24(木) 21:19:12.36ID:???データベース名に"-"が含まれていることが原因だったみたいです。
データベース名を"`"で囲むと、正常にクエリすることが出来ました。
質問に答えて下さった方々、ありがとうございます。
0744NAME IS NULL
2014/07/24(木) 22:14:40.88ID:???0745NAME IS NULL
2014/08/05(火) 18:22:04.34ID:???テーブル別に分散させるのとでは速度とかに差は出てくるものなのか?
会員登録系のサイトを作ってるんだが、まとまったグループ内のコンテンツが登録されるのを踏まえると
SQL文で分岐するよりもはなからテーブルで分けたほうがいいのか迷ってるんだが・・・
0746NAME IS NULL
2014/08/05(火) 19:03:26.26ID:???0747NAME IS NULL
2014/08/05(火) 20:09:16.09ID:???ゴミでした。
0748NAME IS NULL
2014/08/05(火) 22:07:07.02ID:???データベースの種別とかで調べてたら速度云々で色々と描かれてるのを見て不安になってたんでな。
0749NAME IS NULL
2014/08/05(火) 23:12:41.07ID:???それを分割してわざわざプログラム側で入れ物を区別するのも滑稽でしょ。
億・兆オーダーになったら、パーティションを検討してみるのがいいと思う。
0750NAME IS NULL
2014/08/06(水) 10:45:23.80ID:???現在、80万レコードで90MBほどのテーブルがあり、一箇月に10万レコードのペースで増えています。
レンタルサーバー(coreserver-mini)のMySQLを利用しているのですが、
どれくらいのレコード数まで順調に動作するものでしょうか?
300万レコードくらいまで快適に動作すればいいと思うのですが、
それまで問題ないでしょうか?よろしくお願いします。
0751NAME IS NULL
2014/08/06(水) 20:17:16.92ID:???って言われたら信じるの?
サポートに聞きなさい
0753NAME IS NULL
2014/08/13(水) 10:36:04.81ID:???WHERE NOT EXISTS ( SELECT * FROM `tantousya` WHERE `tantousya`.`adress` = "Tanaka@");
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064
adressが既に使われている場合に、
データを挿入しないサブクエリを実装したのですが上手くいきません。
INSERT INTO `tantousya`(`adress`, `namae_kanji`) VALUE ("Tanaka@", "田中");
SELECT * FROM `tantousya` WHERE `tantousya`.`adress` = "Tanaka@;
二段階に分けて実行した場合は、まずデータが挿入され、
その後挿入されたデータが表示されます。
エラー内容からサブクエリの書き方に
問題があるように見受けられるのですが、
どこが悪いのか見当もつかない状態です…
0754NAME IS NULL
2014/08/13(水) 11:21:11.73ID:???INSERT IGNORE INTO `tantousya` (`adress`, `namae_kanji`) VALUE ("Tanaka@", "田中");
0755NAME IS NULL
2014/08/13(水) 11:26:49.58ID:???0756753
2014/08/13(水) 11:38:40.04ID:???プライマリ、ユニークキーを指定というのは至極全うな意見だと思いますが
今回はサブクエリで制御を考えています。
サブクエリの勉強中です。
>>755
adress フランス語で書いちゃったわけではなくタダのスペルミスorz
0757NAME IS NULL
2014/08/13(水) 11:49:42.87ID:???一旦NOT EXISTSを条件にSELECTし、レコードがない場合に
INSERTすると言うように書かないと無理じゃないかな
0758753
2014/08/13(水) 13:05:12.23ID:???なるほど、そういう制限があるんですね。
サブクエリの解説サイト等見直したいと思います。
ありがとうございました。
0759NAME IS NULL
2014/08/13(水) 21:39:34.24ID:???こんな感じかw
INSERT INTO `tantousya` SELECT 'Tanaka@' AS `adress`, '田中' AS `namae_kanji` FROM DUAL
WHERE NOT EXISTS (SELECT * FROM `tantousya` WHERE `tantousya`.`adress` = 'Tanaka@');
0760NAME IS NULL
2014/08/16(土) 14:46:49.25ID:CDUM23fr先生たち!それが出来ないんですよ('_;)
がんばって
select name_no,sum(rating_point)as vote,
(select sum(rating_point) from rating_tb WHERE DATE_ADD(date, INTERVAL 5 HOUR) > NOW())as active
from
rating_tb
group by name_no;
上のようにやってみたら、activeが合計値が出て個別にならなくて、初心者で全然ここから打開出来ないです;;
↓こんな風にしか出来ない初心者です。お助けください。お願い致します。
+---------+------+--------+
| name_no | vote | active |
+---------+------+--------+
| 1 | 232 | 47 |
| 2 | 199 | 47 |
| 6 | 107 | 47 |
| 9 | 87 | 47 |
| 10 | 89 | 47 |
| 11 | 95 | 47 |
| 12 | 46 | 47 |
| 13 | 42 | 47 |
| 14 | 27 | 47 |
| 15 | 26 | 47 |
| 16 | 17 | 47 |
| 17 | 19 | 47 |
| 19 | 6 | 47 |
| 20 | 12 | 47 |
| 23 | 6 | 47 |
| 24 | 8 | 47 |
| 25 | 7 | 47 |
| 27 | 9 | 47 |
| 34 | 1 | 47 |
| 35 | 7 | 47 |
| 45 | 3 | 47 |
0761NAME IS NULL
2014/08/16(土) 14:47:20.39ID:???0762NAME IS NULL
2014/08/18(月) 01:33:19.66ID:???0763NAME IS NULL
2014/08/20(水) 10:26:28.50ID:4cvw8JQq0764NAME IS NULL
2014/08/20(水) 15:36:50.55ID:???0765NAME IS NULL
2014/08/23(土) 08:23:32.99ID:???au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
ニンニクヤーフォー低額土地NHK名古屋遅延電池切れ福岡損保新規駐車近代ゲームフジワイプ転職提案ラーメン
abk公式漏洩安保険王なにあげてんだよ?「わー!ふーう?」↓↓★★↓↓宿題通調印鑑カウントダウン息子議員国会大学生
0766NAME IS NULL
2014/08/23(土) 08:29:23.54ID:???つ お薬
0767NAME IS NULL
2014/08/24(日) 11:30:58.34ID:???大したアクセス数もないのに1ページを表示するのに1秒から2秒ほどかかっています。
DBサーバーとアプリケーションサーバーを切り分けると早くなる聞いたので、さくらVPSのローカル接続を利用し試しましたが、やはり遅いままです。
ボトルネックはMySQLサーバーの設定もしくはクエリそのものにあるのかもしれません。。。
さくらVPS SSDプラン
メモリ2GBで、DBはMySQL5.1の場合
以下のmy.cnfの設定は適正だと言えますか?
これを修正することで早く出来るようであれば教えていただけませんか?
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 512M
table_cache = 256
tmp_table_size = 256MB
join_buffer_size = 1M
thread_cache = 8
thread_concurrency = 8
thread_cache_size = 60
query_cache_size = 32M
max_connections = 100
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 1M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character_set-server=utf8
innodb_buffer_pool_size=384M
innodb_log_file_size=128M
slow_query_log=ON
slow_query_log_file=mysql-slow.log
long_query_time=1
0768NAME IS NULL
2014/08/24(日) 11:31:36.33ID:???[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
default_character_set=utf8
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
0769NAME IS NULL
2014/08/24(日) 12:00:26.86ID:???innodb_buffer_pool_sizeは総メモリの7〜8割割り当てろとか言われてる
key_buffer_sizeは64Mぐらいになりそう
sort_buffer_sizeとかが多すぎる
スレッドバッファで調べてみるといい
mysqltuner使ったらだいたい教えてくれる
後エラーログに色々出てるはずだからそれを見る
0770NAME IS NULL
2014/08/24(日) 12:05:18.91ID:???いえRuby on Railsというフレームワークを使って自分で1から組んでいます
0771NAME IS NULL
2014/08/24(日) 12:10:04.22ID:???ありがとうございます
それとMySQL5.1なんですが5.5に上げておいたほうが利点とかありますか?
MySQLTunerは5.5以降の対応みたいですね
0772NAME IS NULL
2014/08/24(日) 12:41:40.88ID:???http://mysqltuner.com/
新しいバージョンのほうが当然性能は向上してるし
問題ないなら5.5/6使う方がいいと思う
0773NAME IS NULL
2014/08/24(日) 13:19:13.05ID:???ありがとうございます
試してみます
0774NAME IS NULL
2014/08/24(日) 13:25:30.23ID:???5.7はたいした変更ないけど5.5と5.6はクエリによっては大違いだぞ
0775NAME IS NULL
2014/08/26(火) 14:31:57.07ID:???以前Accessに株価データ入れてVBAで分析みたいなことやってたんですがレコード数が150万ぐらいになるので、MySQL5.6+Access2010に作り直してみたんです。
・ODBC接続してリンクテーブルをAccess内に張り、それに対して操作
・VBAのADOでMySQLテーブルをレコードセットして、それに対して操作
・Accessで計算し、結果をSQL文にしてMySQLに投げる操作
・Accessで計算し、結果をローカルテーブルに書いて最後にテーブルを転送
などやってみたんですが、どれもAccessローカルテーブルに直接操作するよりパフォーマンスが落ちます。
MySQLのクエリ自体は高速なのですがInsert/UpdateをODBC経由やADO接続でやりとりするところがボトルネックみたいで。
PHPとかRubyとかで処理するとそういう問題は少ないのでしょうか。
0776NAME IS NULL
2014/08/28(木) 00:15:59.00ID:???すくないよ
エンジニアに金はらって作ってもらいな
0777NAME IS NULL
2014/08/28(木) 00:55:32.51ID:joeF3rjv更新処理が遅いのはよくわからんな。
ADOならちゃんとパラメータのバインドとか使えば
そうそう遅くならない
0778NAME IS NULL
2014/08/28(木) 01:20:19.39ID:???どこにボトルネックがあるのかそれだけじゃ判断つかないし、
まずはマシン構成と、AccessだけのときとMySQLを使ったときで
どのくらい差があるのか、定量的に示すべき。
0779775
2014/08/30(土) 18:45:50.75ID:???自分が素人なのは分かってますが、金出すほど複雑なことじゃないしあとで我流の指標とか色々いじりたいのよね・・・
>>777
それはストアドプロシージャ使ってVBAからはCallするだけって感じでしょうか?
>>778
やっていることを単純化すると下記みたいになります。
下記のプログラムでconnectionをMySQLにして1分43秒、 レコードセットOpenするところのcnnを CurrentProject.Connectionに変えてAccess内のテーブルにすると4秒でした。
銘柄コード1301〜1999の149,257レコードに対する更新です。
PC一台([email protected], 16GB, Win7 64bit)にAccess2010とMySQL5.6インストールしています。
indexやprimary keyは同じAccess内とMySQL内のt_dbに対するUpdateですが、Conndection変えるだけで20倍以上の差になって驚いています。
t_dbテーブルはある銘柄のある日で特定の1レコードを表し、フィールドは[終値]と[id]と[前日終値]があり、[終値]と[id]は既に入力済み。ここでは[前日終値]を埋めていきたい。
idは銘柄コード4桁+営業日コード5桁で、ソートすると銘柄順、営業日順になります。(同一銘柄−例えば1301だと、130100001,130100002,130100003・・・と営業日順に連番になり、銘柄が変わると数字が飛びます)
idでソートしたt_dbを順番にmovenextしながら、前日のレコードにあった終値を[前日終値]フィールドにUpdateしてます。
Sub test()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim preDayID As Long
Dim preClosePrice As Double
Dim sqlStr As String
cnn.Open "Driver={MySQL ODBC 5.3 Unicode Driver};" & _
"Server=hogehoge;" & _
"Database=hogeDB;" & _
"Uid=hoge;" & _
"Pwd=hage"
strSQL = "SELECT 終値, id, 前日終値 FROM t_db where id between 130100000 and 200000000 order by id"
rst.Open strSQL, cnn, adOpenForwardOnly, adLockPessimistic
Do Until rst.EOF
If rst("id") = preDayID + 1 Then
rst.Update "前日終値", preClosePrice
End If
preDayID = rst("id")
preClosePrice = rst("終値")
rst.MoveNext
Loop
rst.Close
cnn.Close
End Sub
0780NAME IS NULL
2014/08/30(土) 19:44:19.23ID:???提示された処理であればSQL一発で大丈夫かと
UPDATE t_db a
INNER JOIN t_db b ON a.id = b.id + 1
SET a.前日終値 = b.終値
WHERE id BETWEEN 130100000 AND 200000000
0781780
2014/08/30(土) 19:45:47.62ID:???WHERE id BETWEEN 130100000 AND 200000000
↓
WHERE a.id BETWEEN 130100000 AND 200000000
0782NAME IS NULL
2014/08/30(土) 21:38:04.16ID:???15万件弱のレコードをMySQLからAccessに取り込んで、1件ずつupdateループ回してるってことか。
更新したいだけならMySQL側だけで完結するように >>780 のやり方が良いと思われ。
0783NAME IS NULL
2014/08/30(土) 21:45:54.79ID:???ループで毎回updateではなく、抜けたあとでUpdateBatchとかダメだろうか?
http://msdn.microsoft.com/ja-jp/library/cc364237.aspx
0784NAME IS NULL
2014/08/30(土) 21:56:05.06ID:39pGGgY4http://blog.livedoor.jp/it_ikiru/archives/50422207.html
みたいなやり方てバインド使った方がいいよ
レコードセットは内部的にコピー持ってSQL発行してるだけだから
0785NAME IS NULL
2014/08/31(日) 01:22:59.31ID:???gistならログイン不要で匿名でスニペット貼り付けられる。
こっちに貼ると行数制限やらタブが消えるやらの問題があるので見づらいし使いづらい。
ちなみに先のコードならこんな感じ。
https://gist.github.com/anonymous/9c2a408bab050f89469d
例示用に勝手に使ってすまぬ >779
0786NAME IS NULL
2014/08/31(日) 04:32:01.79ID:???phpMyAdminで MySQLのデータベースを管理しています。
yumで新しめのphpMyAdminに入れ替えました。
それ以降というもの
20テーブルほど、それぞれ20MB〜100MBはあり合計270MBとなっています。
しかし、データベースをまるごとエクスポートすると8MBのサイズになりダウンロード完了と出てしまいます。
なぜでしょうか?
0787775
2014/09/01(月) 10:29:36.44ID:???>>780-782
4秒でした。圧倒的に早いですね。これならAccess単独のVBAループ処理に匹敵できます。
>>783
UpdateBatch1分20秒でした。レコードセットアップデートのループより2,3割早かったです。
非接続にしたレコードセットのループ部分は1秒無いぐらいなのにUpdateBatchでほとんどの時間食ってました。
>>784
パラメーターマーカーの方法も1分20秒でした。
>>785
掲示板でコード示すとき便利そうですね。今後使わせていただきます。
他にも色々やったのですが、ループ毎にUpdate文を文字列で組み立ててcnn.Executeするやり方で1分10秒ほどなのがせいぜいでした。
シーケンシャルにカーソル動かしながら処理していくプログラミングに慣れてたのでSQL一発文組み立てるの苦手だったのですが、これだけ圧倒的パフォーマンスだと使わざるを得ないですね。
なんとかその方向でやってみます。
0788NAME IS NULL
2014/09/01(月) 12:44:14.79ID:???環境やらバージョンやら、具体的にどういう操作を
したのかやら、書かないと誰もわかんねえよ
0789NAME IS NULL
2014/09/01(月) 22:52:44.61ID:???select 〜 into outfile でテーブルの内容をファイルに書き出せはしますが、その時に
カラム名をヘッダとして先頭に出す…なんてことは出来ないんでしょうか
0790NAME IS NULL
2014/09/01(月) 23:10:22.91ID:EfQ/kLTTダサいけどUNIONで
http://stackoverflow.com/questions/5941809/include-headers-when-using-select-into-outfile
0791NAME IS NULL
2014/09/01(月) 23:34:35.31ID:???あぁそういう手があったか
ありがとうございます
0792NAME IS NULL
2014/09/02(火) 00:51:32.76ID:???0793NAME IS NULL
2014/09/12(金) 22:35:04.80ID:???mysqldumpで個々のデータベースのバックアップを取ろうとしているのですが、
mysqldump performance_schema -u root -p > c:/pf.sql
performance_schemaとinformation_schemaで以下のエラーが出ます
mysqldump : Got error: 1142 SELECT, LOCK TABLES command denied to
user 'root'@'localhost' for table 'accounts' when using LOCK TABLES
回避しつつバックアップを取る方法とかってありますか?
ちなみに出来たファイルの中身はコメントだけでした
0794NAME IS NULL
2014/09/12(金) 23:05:15.89ID:???ストアド使わないシステムを作ったこと無いんですが、MySQLはストアド使わなくても速いですか
0795793
2014/09/14(日) 11:43:43.93ID:???オプションで -x を付与して出来ました
-x, --lock-all-tables
Locks all tables across all databases. This is achieved
by taking a global read lock for the duration of the
whole dump. Automatically turns --single-transaction and
--lock-tables off.
0796NAME IS NULL
2014/09/14(日) 13:25:14.77ID:???> ORACLEにはPL/SQLにPACKAGEがありますが、それに相当する機能ってありますか?
つ http://dev.mysql.com/doc/refman/5.6/en/faqs-stored-procs.html#qandaitem-A-4-1-8
> ストアド使わないシステムを作ったこと無いんですが、MySQLはストアド使わなくても速いですか
Oracleでもそうだが、ストアドプロシージャ使うと速くなるという幻想をまず捨てるべき。
システム構成やら、やらせたいことやら、SQLの書き方やらで速くも遅くもなる。
0797NAME IS NULL
2014/09/14(日) 19:15:21.55ID:???その鯖には、外部キー制約の機能がありません。
なので、外部キー制約と同じ機能があるフリーの鯖を探してくるか、
「内部リレーション」の機能で、外部キー制約と同じ事をやるか、
と考えています。
よろしければ、「内部リレーション」の機能で、外部キー制約と同じ事をやるための方法について、
教えていただけないでしょうか?
0798NAME IS NULL
2014/09/14(日) 20:53:36.54ID:???0799NAME IS NULL
2014/09/14(日) 20:55:39.48ID:???0800NAME IS NULL
2014/09/15(月) 09:22:47.42ID:9u2jWlPJhttp://know-how-tree.com/archives/612
0801NAME IS NULL
2014/09/21(日) 10:03:18.93ID:Lr7dzhif高速に採番させたいのですが、パフォーマンスを上げるためにどの辺りを重点的に考えるべきでしょうか。
・テーブル設計、ストレージエンジン、クエリ
・MySQL設定やリソース
取り急ぎ以下で紹介されている
MyISAMに1レコードINSERTしおいて、リクエストの度UPDATEをかけていく方法
http://engineer.dena.jp/2010/11/mysql-for-socialgame.html
を使用しているのですが、あまりパフォーマンスが上がりませんでした。
リソースの増強をせずとも、ちょっとしたテクニックや設定でパフォーマンスが
上がるのであれば試してみたいのですが、、、
0802NAME IS NULL
2014/09/21(日) 10:46:52.34ID:???もともとauto_incrementで済むならそっちのがいい
0803NAME IS NULL
2014/09/21(日) 14:58:22.28ID:lk034qCW0804NAME IS NULL
2014/09/21(日) 15:17:08.51ID:lk034qCWwordpressでデータのインポートをすると下記エラーが出て最後まで完走しません。
解決策をアドバイスいただけないでしょうか。よろしくお願いいたします。
エラー
実行した SQL:
--
-- Table structure for table `wp1_slim_browsers`
--
DROP TABLE IF EXISTS `wp1_slim_browsers` ;
MySQLのメッセージ: ドキュメント
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
0805NAME IS NULL
2014/09/21(日) 15:23:49.92ID:???この先データベースをいじり続ける気があるなら、それなりの勉強はしてからにね
0806NAME IS NULL
2014/09/21(日) 15:51:35.47ID:lk034qCW外部制約ですが・・ちょっと私には難しそうです。。。業者に頼むしかないのかも。
自分のサイトを正常に表示させたいだけなのですが方法はないでしょうか?
0807NAME IS NULL
2014/09/21(日) 16:05:38.40ID:???解説見ながらやり直したほうがいいんじゃ?
外部キー制約があるとインポートするテーブルの順番間違うと入らないから
テーブルごとに分けて順番変えて入れなおしてみては
0808NAME IS NULL
2014/09/21(日) 16:18:01.00ID:???0809NAME IS NULL
2014/09/21(日) 16:18:10.57ID:lk034qCWレスありがとうございます!チカッパサーバーでバックアップオプションで自動でとれるようになっています。
wordpressを誤って上書きインストールしてしまいバックアップから復旧させているところなんです。
上記のエラーで残りのデータが入らないという状況です。そしてどうやらその中に管理画面に関するデータがあるみたいなんです。。
>テーブルごとに分けて順番変えて入れなおしてみては
すいません。やり方がわからないです。。
0810NAME IS NULL
2014/09/21(日) 16:27:37.77ID:lk034qCWレスありがとうございます!それはphpmyadminでも出来ますか?メニューにはなかったです。素人過ぎてごめんなさい。
0811780
2014/09/21(日) 16:34:44.18ID:???SET FOREIGN_KEY_CHECKS=0
インポート
SET FOREIGN_KEY_CHECKS=1
0812NAME IS NULL
2014/09/21(日) 16:45:46.81ID:lk034qCWありがとうございます。やってみたらエラーが出て駄目でした。。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'インポート SET FOREIGN_KEY_CHECKS=1' at line 2
0813NAME IS NULL
2014/09/21(日) 16:46:47.44ID:???0814NAME IS NULL
2014/09/21(日) 16:47:32.52ID:???0815NAME IS NULL
2014/09/21(日) 16:49:11.69ID:lk034qCWSET FOREIGN_KEY_CHECKS = 0;# 返り値が空でした(行数0)
SET FOREIGN_KEY_CHECKS = 1;# 返り値が空でした(行数0)
0816NAME IS NULL
2014/09/21(日) 16:53:06.21ID:???ここで外部キー制約をしなくなる
実際にインポートする(最初の質問の外部キーエラーが出ない)
SET FOREIGN_KEY_CHECKS = 1;
もとの外部キー制約アリに戻す
作業終わり。
わかる?
0817NAME IS NULL
2014/09/21(日) 16:59:17.62ID:lk034qCWありがとうございます。
SQLのところでSET FOREIGN_KEY_CHECKS = 0; を実行して
インポートした後
SQLのところでSET FOREIGN_KEY_CHECKS = 1; ですかね?
0818NAME IS NULL
2014/09/21(日) 17:24:44.12ID:???また同じエラー起こしそう
0819NAME IS NULL
2014/09/21(日) 17:27:28.61ID:???0820NAME IS NULL
2014/09/21(日) 17:27:52.51ID:???0821NAME IS NULL
2014/09/21(日) 17:32:08.98ID:???0822NAME IS NULL
2014/09/21(日) 17:38:50.47ID:lk034qCWエラー
実行した SQL:
--
-- Table structure for table `wp1_slim_browsers`
--
DROP TABLE IF EXISTS `wp1_slim_browsers` ;
MySQLのメッセージ: ドキュメント
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
0823NAME IS NULL
2014/09/21(日) 17:45:36.16ID:???0824NAME IS NULL
2014/09/21(日) 17:58:34.01ID:???0825NAME IS NULL
2014/09/21(日) 18:04:59.48ID:lk034qCW0826NAME IS NULL
2014/09/21(日) 18:23:37.72ID:lk034qCW0827NAME IS NULL
2014/09/21(日) 18:24:38.23ID:ysK96J+Fまっさらにしてやってみりゃいい
試しに外部キー制御外したその場でDROP TABLEやってみ
0828NAME IS NULL
2014/09/21(日) 18:34:14.22ID:???0829NAME IS NULL
2014/09/21(日) 18:43:11.26ID:lk034qCWwp1_slim_browsers←エラーになっているこのテーブルを削除でいいですか?
>>828
ありがとうございます。バックアップはファイルとデータベースを両方とってあります。
0830NAME IS NULL
2014/09/21(日) 19:12:59.54ID:lk034qCW0831NAME IS NULL
2014/09/21(日) 19:35:28.59ID:ysK96J+F0832NAME IS NULL
2014/09/21(日) 20:19:21.62ID:lk034qCW0833NAME IS NULL
2014/09/21(日) 20:26:17.57ID:???晒しながら質問したほうが良いのでは。
0834NAME IS NULL
2014/09/22(月) 03:22:39.71ID:y7/LBMjJデータ全部削除してSET FOREIGN_KEY_CHECKS = 0;して再度インポートしたけどやっぱり駄目
SSHはうまくいかないしオワタ
エラー
実行した SQL:
CREATE TABLE `wp1_slim_outbound` (
`outbound_id` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
`outbound_domain` varchar( 255 ) DEFAULT '',
`outbound_resource` varchar( 2048 ) DEFAULT '',
`type` tinyint( 3 ) unsigned DEFAULT '0',
`notes` varchar( 512 ) DEFAULT '',
`position` varchar( 32 ) DEFAULT '',
`id` int( 10 ) unsigned NOT NULL DEFAULT '0',
`dt` int( 10 ) unsigned DEFAULT '0',
PRIMARY KEY ( `outbound_id` ) ,
KEY `idx_wp1_slim_outbound` ( `dt` ) ,
KEY `fk_wp1_id` ( `id` ) ,
CONSTRAINT `fk_wp1_id` FOREIGN KEY ( `id` ) REFERENCES `wp1_slim_stats` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
MySQLのメッセージ: ドキュメント
#1215 - Cannot add foreign key constraint
0835NAME IS NULL
2014/09/22(月) 06:08:50.61ID:???今度はCREATE TABLEでエラーが出るようになった、ってこと?
このエラーを見る限り、wp1_slim_statsテーブルのid列にキーが
設定されていない可能性があるけど
0836NAME IS NULL
2014/09/22(月) 08:20:09.14ID:y7/LBMjJ最初は途中までデータが入った状態でインポーしていました
0837NAME IS NULL
2014/09/22(月) 09:03:57.94ID:y7/LBMjJ0838NAME IS NULL
2014/09/22(月) 20:11:47.88ID:y7/LBMjJ今の問題はWordPressの管理画面に入れないことなのでこれで解決するかもしれない。ご意見お願いします。
0839NAME IS NULL
2014/09/22(月) 21:40:06.14ID:???気はない、というスタンスなら>>833の言うようにここは適してないんじゃないかなあ。
0840NAME IS NULL
2014/09/23(火) 02:44:41.70ID:Rn55ID+g>>838の方法でうまくいきました!心配してくれたみなさんありがとう!いま感無量です。管理画面に入れたときは感動しました!
データベースからテーブル削除してもバックアップがあればなんぼでも復旧できることがわかりました。WordPressの復旧作業は初めての経験でしたが自信もつきました。もう少しで業者に泣きつくとこでした。地元のweb屋検索しましたからね。
それにしてもデータベース命ですね。次にファイル。何世代かに分けてバックアップは保存しておくべきですね。始まりはWordPressの上書きインストールでしたがいい経験になりました。明日はいい祝日になりそうです。スレ使いすぎてすいませんでした。さよなら。
0841NAME IS NULL
2014/10/01(水) 02:07:33.50ID:auoeFgeHAAA11
AAA111
これを
AAA001
AAA011
AAA111
としてORDER BYするにはどうすればいいのでしょうか?
0842NAME IS NULL
2014/10/01(水) 07:40:26.95ID:???そういうふうに変換かけて order by にかければいい
0843NAME IS NULL
2014/10/01(水) 07:44:02.00ID:???0844NAME IS NULL
2014/10/01(水) 09:53:38.94ID:???ただし MySQL は関数ベースのインデックスが張れないから、パフォーマンスは期待できないが、
SQL 処理中の ORDER BY する時点でソート件数が少ないのであれば影響は少ないだろう。
もう一つの代替案は、そのように変換済みの実カラムを追加してそっちで ORDER BY する手もある。
こっちはその分の容量を食う代わりにインデックスは効く。
0845NAME IS NULL
2014/10/01(水) 10:07:49.30ID:???select colA,cast(substring(colA,4) as unsigned)
from tbl
order by cast(substring(colA,4) as unsigned) ;
これでは駄目?
駄目なんだったら
文字列の部分と数値の部分を分け、数値の部分についてLPADで0埋めしてまた連結するとか
そこまでしないといけないもん?
0846841
2014/10/01(水) 23:45:26.30ID:auoeFgeHそれほどレコード数も多くなくて、最大で20前後ですので、その方法でorder byします
0847NAME IS NULL
2014/10/02(木) 19:59:40.95ID:YdQdRdW6column2を含むtable2をcolumn3でjoinした結果に
(column1, column2)の複合インデックスを張りたいんですけど
テーブルを非正規化する以外の方法はありますか?
0848NAME IS NULL
2014/10/02(木) 21:47:14.24ID:???0849847
2014/10/03(金) 00:47:55.73ID:s/6Hsaik神様教えてください(´;ω;`)
0850NAME IS NULL
2014/10/03(金) 00:54:09.07ID:???クエリの高速化が目的だろうとは思うけど、本当に他に手はないのか?
何を根拠に複合インデックスという手段が最適だと判断したの?
0851847
2014/10/04(土) 13:03:03.45ID:11JI3KNpありがとうございました
0852NAME IS NULL
2014/10/04(土) 22:46:47.32ID:???0853NAME IS NULL
2014/10/05(日) 01:10:34.48ID:???純粋に技術的に解決しようと思ったらどんな手があるかな。
Table1 [id][col1][col3]
Table2 [id][col2][col3]
SELECT Table1.col1, Table2.col2
FROM Table1
INNER JOIN Table2 ON Table1.col3 = Table2.col3
cardinalityが十分に高いという前提であれば、
それぞれのテーブルのcol3への単独インデックスと、
Table1(col3, col1), Table2(col3, col2) という
複合インデックスを張るという手が有効じゃないかと気がするんだけれど、
どうなんだろう?
0854NAME IS NULL
2014/10/06(月) 09:54:41.55ID:???なんとか出来ないものか...
0855NAME IS NULL
2014/10/06(月) 23:59:12.42ID:???0856NAME IS NULL
2014/10/07(火) 19:03:17.28ID:???0857NAME IS NULL
2014/10/08(水) 15:58:09.03ID:???設定を一度終わらせDBとして走らせたのを確認後
PCを再起動して
HeidiSQL起動するとさっき迄問題なかったのに
sql error (2003) in statement #0 can't connect to
mysql server on"127.0.0.1"(10061)
と表示され新規でのDB登録もできなくなってしまうのですが
対処方法教えていただけないでしょうか?
0858NAME IS NULL
2014/10/08(水) 16:02:15.47ID:???http://peace.2ch.net/test/read.cgi/db/1360677476/l50
0859NAME IS NULL
2014/10/12(日) 15:57:29.11ID:l4A5A+ctMySQL外部接続について
CentOS6.5上にMySQLをインストールし外部DBサーバとして開発を行いたいと思っています。
※CentOSはVMware上で構築
MySQLのインストールは上手くいきローカルからは接続が上手くいくのですが、
外部からの接続が上手くいきません。
外部接続のためにやったことは以下です。
・接続ユーザのhostを"%"に設定しどこからも接続できるようにする
・0.0.0.0:3306でLISTENする
いちをいろんな所を参考に外部接続ができるような設定を行ったのですが、
どうやっても上手くいきません。
外部接続はJavaのプログラムから行っており以下のエラーが発生します。
※jdbc:mysql://IPアドレス:3306/DB名 の場合
ConnectException: Connection refused
※jdbc:mysql://ホスト名:3306/DB名 の場合
ConnectException: Operation timed out
そもそもCentOSのネットワークの設定がダメなようなきもするのですが、
ホスト名とIPアドレスでエラーの結果が違うのもよくわかってないです。
0860NAME IS NULL
2014/10/12(日) 16:07:20.26ID:???初期状態で3306は空いていなかった気がする。
0861NAME IS NULL
2014/10/12(日) 16:15:10.60ID:l4A5A+ctありがとうございます
iptablesは他のサイトみて設定しいますがどうやってもうまくいきません。
/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
iptables --list
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:mysql
0862NAME IS NULL
2014/10/12(日) 16:35:39.03ID:???0863NAME IS NULL
2014/10/12(日) 16:41:07.67ID:l4A5A+ctはいpingは通ることを確認しています。
ただtelnetで3306にアクセスするとすぐにはじかれます。
これは3306のポートを開いてないってことなんでしょうか?
netstatで見てもちゃんと3306はLISTENしているのですが。
0864NAME IS NULL
2014/10/12(日) 17:21:32.34ID:???iptables を -F でフラッシュしても変わらない?
0865NAME IS NULL
2014/10/12(日) 17:41:35.46ID:???シンプルにこれじで試してみては
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
0866NAME IS NULL
2014/10/12(日) 17:54:35.39ID:???0867NAME IS NULL
2014/10/12(日) 19:47:10.01ID:OVtCluaN859です。
iptablesを停止したらアクセスできました!
iptablesの設定がダメだったみたいです。
設定を見直したいと思います。
※原因はまだわかっていませんが。。。
アドバイスありがとうございました。
0868NAME IS NULL
2014/10/12(日) 20:29:29.90ID:???それより前の評価順で弾かれてるんじゃないのか
0869866
2014/10/12(日) 20:39:44.07ID:???アドバイスってほどのものでもないんで
iptablesの問題だと判ったのであれば/etc/sysconfig/iptablesの内容を
変に加工せずに全部晒せばちゃんとしたアドバイス得られるかと
0870NAME IS NULL
2014/10/16(木) 00:19:45.83ID:???どうやって取得すればいいでしょうか?Show warningsで直前の警告やエラーが取得出来ることは分かりましたが、調べても見つけることが出来ません・・・
バージョンは5.1.3.6です。
0871NAME IS NULL
2014/10/16(木) 01:06:55.39ID:???0872NAME IS NULL
2014/10/16(木) 01:23:18.35ID:???すいません、今のところloda data infileで問題無くテーブルへインサート出来ているんです。
ただ、この先何かしらエラーは出てくるだろうから、それらのエラーコードやメッセージを保管しておきたいとなりました。
そのうえでわざと間違いをしてエラーコードがどこから出てくるのか、それは取得可能なのかを知りたいんです。
show warningsの結果もどこに格納されているの変わらない、一時テーブルのような物なのかそれともログファイルか何かに記録されていて、
それらをインサートのたびに読み込んでDBに突っ込むのか分からない。
エラーが出る際に戻り値の様な物が戻ってくるのか、それを取得してエラー内容を引きずり出す必要がありtお思う真sいた
吸いません、酔っ払ってるんで文章めちゃくちゃですがお許しください。
0873NAME IS NULL
2014/10/16(木) 16:33:39.97ID:???0874NAME IS NULL
2014/10/16(木) 19:37:15.49ID:???全角 = 2バイト、半角 = 1バイトと考えている人が多く、UTF-8を使おうか悩んでいます。
0875NAME IS NULL
2014/10/16(木) 19:51:06.84ID:???0876NAME IS NULL
2014/10/16(木) 19:58:11.86ID:???0877NAME IS NULL
2014/10/16(木) 20:27:43.29ID:???MySQLはutf8mb4
0878NAME IS NULL
2014/10/18(土) 15:59:52.94ID:???仮に論外ならユニコード定義外の文字でも入力出来なきゃ駄目だろ。
現実的に可能な範囲でベストを尽くすべきという意味においては同意だけど。
0879NAME IS NULL
2014/10/21(火) 11:51:05.44ID:???日本語(というか非アスキー)が含まれているテーブルの
一覧を作りたいんだけど
どうしたらそれなりに高速に調べられるかな
0880NAME IS NULL
2014/10/21(火) 13:30:47.94ID:???10万件を超えるのなら Mroonga の導入を検討するとか
0881NAME IS NULL
2014/11/14(金) 12:19:28.98ID:???0882NAME IS NULL
2014/11/26(水) 14:42:58.16ID:???条件検索で絞り込ませるDBはどのように作ればいいのでしょうか。
pHの欄に、1.0、1.1、1.2・・・・3.2、3.3などと延々入力しておかなければならないのでしょうか。
これだと幅が広い領域を持つ生物の時はとても手間がかかります。
もっとスマートなやり方があるのでしょうか。
0883NAME IS NULL
2014/11/26(水) 14:53:08.29ID:???0884NAME IS NULL
2014/11/26(水) 15:15:44.54ID:???範囲指定の検索ボックスで、下限が3、上限が5 と指定すれば、>>882であげた
生育条件(pH1.0〜3.3)の生物を結果として出してくれる?
生育pH3.1〜5.7のような生物Pがいた場合、下限3、上限5と条件検索すれば、
これも同時に結果に出してくれるのでしょうか。
0885NAME IS NULL
2014/11/26(水) 15:36:40.35ID:???この例のように、1つのアイテムが1つの固有値を持つものは、where文で
範囲指定すればいいとわかるのですが、上記のように
1つのアイテムが、幅のある数値を持つものはどうすればいいのか悩んでいます。
pHというフィールドの中に1.0from3.3と入れたらプログラムは理解してくれますか。
それともminとmaxというフィールドをそれぞれ作って1.0、3.3という値を入れておくのでしょうか。
0886NAME IS NULL
2014/11/26(水) 16:09:47.88ID:???もしかして検索条件も範囲なの?
その場合、すこしでも重なってたらひっかかるのか、完全に内包されてる場合だけなのか
とかいろいろ条件あると思うんだけど、必要な要件並べてみてよ
0887NAME IS NULL
2014/11/26(水) 17:13:03.66ID:???ありがとうございます。そうです、検索条件も範囲です。
複数の生物についてデータベースを作り、同一の生育条件のものを拾い出すデータベースです。
例えばメダカは絶対に水温25℃ぴったりじゃないと死んでしまうってことはなく、
生きられる水温に幅がありますよね。
そのように、似たような条件で生きられる生物は他にもいろいろいるわけですが、
それらを条件検索で絞って出てくるように作りたいのです。
なので検索条件は、重なる部分を少しでも内包するものを拾う必要があると思います。
0888NAME IS NULL
2014/11/26(水) 17:36:26.50ID:???特定の値が範囲内かは、
値 BETWEEN minvalue AND maxvalue
で探せるから
最小値 BETWEEN minvalue AND maxvalue
と
最大値 BETWEEN minvalue AND maxvalue
をORでつなげば重なり、ANDでつなげば内包になるんじゃない?
まあいろいろ試してみて
0889NAME IS NULL
2014/11/26(水) 17:37:32.12ID:???0890NAME IS NULL
2014/11/26(水) 18:17:54.58ID:???andはアレかつコレですよね。
Aの範囲とBの範囲が重なりを内包するものを探せということは、
betweenAの範囲の最小値かつAの範囲の最大値、and
betweenBの範囲の最小値かつBの範囲の最大値 ということで、andでつなげば
でる!と考えました。
>>889
生育条件範囲が検索範囲より両側とも大きい場合も
同じ式でいけるかと思いましたが違うのかな。
0891NAME IS NULL
2014/11/28(金) 21:08:37.93ID:???これはとてもポピュラーな問題なんだけど、「不要なもの」以外を取るようにすれば楽。
生物.max < 検索.min → 水槽の最小水温でも熱すぎて死んじゃう生物
か、
生物.min > 検索.max → 水槽の最大水温でも冷たすぎて死んじゃう生物
が、検索結果に「不要なもの」だよね。なので、その逆を出せばいいよ。
0892NAME IS NULL
2014/11/28(金) 21:33:08.31ID:???例だから別にどうでもいいんだけど
0893NAME IS NULL
2014/11/28(金) 21:53:51.31ID:???Ferroplasma(フェロプラズマ属)はテルモプラズマ目フェロプラズマ科に属す古細菌の属である。
非常に強い好酸性と金属耐性、細胞壁を欠くことを特徴とする。
増殖最適条件は30-50℃、pH1.5程度で、pH0での増殖も報告されている。
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%83%AD%E3%83%97%E3%83%A9%E3%82%BA%E3%83%9E%E5%B1%9E
0894NAME IS NULL
2014/11/28(金) 23:02:01.75ID:???0895NAME IS NULL
2014/12/01(月) 15:05:57.41ID:???keyがセカンダリインデックスでExtraにUsing whereとUsing indexの両方が出力される場合、
ExtraがUsing indexだけの場合とどういう違いがあるのでしょうか?
0896NAME IS NULL
2014/12/02(火) 20:31:44.50ID:???インデックスだけでは該当するレコードを絞り切れない場合に "Using where" が出る。
それが出たとき、結果のレコード数は10なのに、rows が 50 とかになってない?
1レコード取り出したいのに、rows が 1000 とかになってたら見直したほうがいいかも。
0897NAME IS NULL
2014/12/04(木) 07:10:54.48ID:???回答ありがとうございます。
Using whereが出た時も出ない時も結果のレコード数・rowsともに複数行でした。
WHERE句で複合インデックスの2つ目以降のキーも使われた場合Using whereが追加されるとかでしょうか?
0898NAME IS NULL
2014/12/04(木) 12:45:27.13ID:???> Using whereが出た時も出ない時も結果のレコード数・rowsともに複数行でした。
同じ数字でしたか?
0899NAME IS NULL
2014/12/14(日) 02:04:33.90ID:yOOGWEyFinsert into TABLE_B(NO,JIKI,TENSU_A,TEMSU_B,TENSU_C)
VALUES(
(select NO" from TABLE_A),
(select JIKI,AVG(TENSU_A),AVG(TENSU_B),AVG(TENSU_C)
from TABLE_B
group by JIKI)
);
このやり方だとエラーでるんですが
構文で間違ってる所あります?
0900NAME IS NULL
2014/12/14(日) 02:14:05.46ID:???TEMSU_B は合ってる?
select NO" も怪しい。
エラーもちゃんと書いてね。
0901名無しさん@そうだ選挙に行こう
2014/12/14(日) 02:33:25.87ID:yOOGWEyFすみません、タイプミスです。
正しくはTENSU_Bとselect NOです。
エラーは
ERROR 1136(21S01):Column count doesn't match value count at row 1とでました。
0902名無しさん@そうだ選挙に行こう
2014/12/14(日) 02:37:14.52ID:???0903名無しさん@そうだ選挙に行こう
2014/12/14(日) 02:39:55.61ID:yOOGWEyFすみませんでした。
書き込んだときのタイプミスです。すみません
0904名無しさん@そうだ選挙に行こう
2014/12/14(日) 02:44:09.26ID:yOOGWEyFこのようなテーブル構成でして、
新しく追加された「NO」3,4のデータをTABLE_BにJIKI毎に各TENSUの平均を
TABLE_Bに追加したいんですが、
いろいろ調べたんですが、よくわかりません。
0905名無しさん@そうだ選挙に行こう
2014/12/14(日) 03:03:20.02ID:???これの結果が4行
(select JIKI,AVG(TENSU_A),AVG(TENSU_B),AVG(TENSU_C)
from TABLE_B
group by JIKI)
これの結果が2行
行数が違うのでエラーになる。
テーブルの作りが悪いから、
(select 3, JIKI,AVG(TENSU_A),AVG(TENSU_B),AVG(TENSU_C)
from TABLE_B
group by JIKI)
こんな感じで、NOはプログラム(もしくは手動)で入れたほうがいい。
0906名無しさん@そうだ選挙に行こう
2014/12/14(日) 03:18:26.30ID:yOOGWEyFINSERTできました!ありがとうございます!
0907名無しさん@そうだ選挙に行こう
2014/12/14(日) 10:39:23.68ID:???0908名無しさん@そうだ選挙に行こう
2014/12/14(日) 17:53:22.12ID:???0909NAME IS NULL
2014/12/15(月) 09:04:57.68ID:???0910NAME IS NULL
2014/12/15(月) 10:13:41.64ID:???0911NAME IS NULL
2014/12/16(火) 02:32:54.31ID:GtMu71uM0912NAME IS NULL
2014/12/16(火) 09:16:10.40ID:???0913NAME IS NULL
2014/12/16(火) 11:26:11.58ID:???0914NAME IS NULL
2014/12/16(火) 11:47:36.02ID:???0915NAME IS NULL
2014/12/16(火) 11:58:05.89ID:???0916NAME IS NULL
2014/12/17(水) 18:45:50.54ID:aelyae1c主キーとユニークキーと、作成日時とフラグを収めるテーブルがあり、
検索で、ユニークキーが一致して作成日時が1日以内でフラグが立っていない ものを検索する場合
複合インデックスはどのように作成すればよいでしょうか?
(例)
CREATE TABLE IF NOT EXISTS `test` (
`primary_id` int(1) unsigned NOT NULL AUTO_INCREMENT,
`unique_key` char(200) COLLATE utf8_bin NOT NULL,
`created` datetime NOT NULL,
`deleted` tinyint(1) NOT NULL,
PRIMARY KEY (`primary_id`),
UNIQUE KEY `unique_key` (`unique_key`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
というテーブルで
WHERE `unique_key` = 'ユニークキー'
AND `deleted` = 0
AND `created` <= '1日前'
という条件で検索したいと考えてます
この際、
UNIQUE KEY `index` (`unique_key`,`deleted`,`created`) とすればいいのか、
KEY `index` (`unique_key`,`deleted`,`created`) とすればいいのか、
そもそも`UNIQUE KEY `unique_key` (`unique_key`) が既にあるから複合インデックスに`unique_key`を含める必要はないのか、
またはもっと他に良い方法があるのか、、、
初心者で見辛い点や意図が伝わりにくい点があるかもしれませんが、ご教授ご指摘の程よろしくお願いしますm(_ _)m
0917NAME IS NULL
2014/12/17(水) 18:47:23.54ID:aelyae1c`created` >= '1日前'
でした
0918NAME IS NULL
2014/12/17(水) 19:04:33.08ID:???0919NAME IS NULL
2014/12/17(水) 19:07:10.61ID:aelyae1cそれは意外でした
後学の為にぜひ理由を教えてください
0920NAME IS NULL
2014/12/17(水) 21:19:23.25ID:???0921NAME IS NULL
2014/12/17(水) 21:28:21.95ID:aelyae1cunique_key 対するデータは1つになっているので・・・
もしかしてunique_keyを条件にした時点で他のレコードを探す必要がないので要らないってことですか?
だとしたら、理解できました
皆さん、ありがとうございました
0922NAME IS NULL
2014/12/18(木) 04:01:52.73ID:???0923NAME IS NULL
2014/12/18(木) 11:45:52.70ID:???InnoDBで、大きいvarchar型をいくつか利用するとレコード長がオーバーしてしまう状況です。
varchar型をtext型にすれば、回避できるのでしょうか。
0924NAME IS NULL
2014/12/24(水) 06:10:41.16ID:???NULL不可のDATE型のカラムに不正な日付をINSERTした際、0000-00-00という値でINSERTが完了してしまいますね。
これをエラーを返してROLLBACKさせたいのですが、DB側の機能では不可能でしょうか?
0925NAME IS NULL
2014/12/24(水) 07:06:36.42ID:???日付判定はアプリ側の仕事ってのがMySQLのスタンスだから
INSERT、UPDATEトリガで例外を発生させるぐらいしかないかも。
IF DAYOFYEAR(NEW.datecolumn) IS NULL THEN
SIGNAL SQLSTATE '23000' SET MESSAGE_TEXT = 'invalid date'
END IF;
0926NAME IS NULL
2014/12/24(水) 08:26:39.03ID:???sql_modeでNO_ZERO_DATEを my.iniだかmy.cnfだかに設定する
mysql sql_mode あたりでぐぐれば出てる
0927NAME IS NULL
2014/12/24(水) 20:49:58.54ID:???>>926
ありがとうございました。
sql_mode = STRICT_ALL_TABLESでうまくいきました。
0928NAME IS NULL
2014/12/25(木) 12:22:49.85ID:???innodb_file_format = Barracuda
innodb_file_per_table = 1
で、
ROW_FORMAT=DYNAMIC
0929あ
2014/12/25(木) 19:43:04.66ID:???/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ:::::::::::// ヽ:::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/ ヽ::::::::|
ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙ ノ:::/ ,,;;;;;;,, ,,,,ヽ:::::l
):::::::::::::::::::::::::::::::::::::::::::::::/ ノ/ __,'''i: ('''__):::l
)::::::::::::::::::::::::::::::::::::::::::::::::::/  ̄ ̄ン:. :「 ̄`ヾ
1:::::::::::::::::::::::「 `┤l:::::::::::::::::l  ̄ , ヽ ̄ l
`l:::::::::::::::::::::ヽ :l li:::::::::::::/ ヽ /´ `l |
ヽ::::::::::::::::::::::\_」 lヽ::::/ .l !:-●,__ ノ /
ノ:::::::::::::::::::::::::::ノ | l `゙゙ i ,,;;;;;;;;;;;;;;;;;;;;, /ヽ
,/ ヽ::::::::::::::::::::::( l l::::::::.. /.:''/´ ̄_ソ / `ヽ
ヽ:::::::::::::::ヽ | l:::::::::::... /::// ̄ ̄_ソ / \ ヴッ!!
ヽ:::::::\| l::::::::::::::::... / :::.ゝ` ̄ ̄/ / ヽ
ヽ:::l l:::::::::::::::::::..  ̄ ̄;;'' / ヽ
l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ l
l l '''''''''''''''''''''''''''''''''''''' ̄l | |
http://www.youtube.com/watch?v=z2qK2lhk9O0
0930NAME IS NULL
2014/12/28(日) 13:06:20.99ID:???MySQLを初めて使うのですが、
phpMyadminから設定を行ったのですが、
データをいくつ登録しても、
出力するページ側では1つしか出力されません。(phpMyadmin側ではデータは登録されている)
phpMyadminにて一度設定した後に下記を後から修正したのですが
それが原因てことはありますでしょうか?
主キー
ユニークインデックス
インデックス
全文インデックス
また、上記のそれぞれの意味を初心者向けに解説しているサイトなどあれば教えていただけますと幸いです
0931930
2014/12/28(日) 14:35:41.77ID:???接続側のphpの記述に問題がありました。
失礼しました
0932NAME IS NULL
2014/12/28(日) 14:50:22.62ID:???0933NAME IS NULL
2014/12/28(日) 18:53:41.52ID:???900MB弱あったテーブルが500MB以下になった。すごっw
0934NAME IS NULL
2014/12/30(火) 05:24:23.22ID:ZOTTcmcSユーザーが入力した文字(名前や自己紹介文)をDBへ登録する際、
HTML特殊文字(&や<>等)は予めエスケープしてからDBへ登録するのと、
DBへの登録はそのままで、表示する際にエスケープするのは
どちらが一般的なのでしょうか?
エスケープして登録した方が、表示の度に毎回エスケープしなくていいので良いと思うのですが、
値を検索する際に困りそうな気がして悩んでます
0935NAME IS NULL
2014/12/30(火) 09:51:16.46ID:???HTML前提じゃないのに格納時にエスケープするのはおかしいよね?
ま、前提だとしても基本的には生データで入れるけどね。
0936NAME IS NULL
2014/12/30(火) 12:12:51.08ID:???0937NAME IS NULL
2014/12/30(火) 12:18:12.23ID:???ページ送りの部分のソース(他の機能は一切不要)を初心者向けに解説しているサイトないでしょうか?
なんですぐ解説サイトって検索機能とか余計な事まで一緒にやろうとするんだろう
0938NAME IS NULL
2014/12/30(火) 13:38:01.43ID:???0939NAME IS NULL
2014/12/30(火) 13:56:35.36ID:???そのままググれば見つかりそうなもんだけどな。
0940NAME IS NULL
2014/12/30(火) 14:11:44.09ID:???エスケープして格納したいのなら、検索キーワードもエスケープすりゃええ。
0941NAME IS NULL
2014/12/30(火) 14:22:13.82ID:???0943NAME IS NULL
2014/12/30(火) 18:00:06.82ID:ZOTTcmcSありがとうございます
生データで入れるのが一般的なんですね。参考になりました
>>940
ありがとうございます
そういうやり方もあるんですね
>>941
SQLインジェクションは処理しますので大丈夫です
お気遣いありがとうございます
0944NAME IS NULL
2014/12/31(水) 03:07:24.54ID:sJ8tBVVY0945NAME IS NULL
2015/01/04(日) 14:48:03.69ID:???他のシステムを見ると設定自体もMySQLに保存しているようなのですが、設定は1レコードのみのテーブルを用意して保存しているのでしょうか?
設定をRDBに保存するとどうしても無駄が多いように感じてしまうのですが、何か特殊な設定があるのでしょうか?
よろしくお願いします。
0946NAME IS NULL
2015/01/04(日) 14:51:38.89ID:???nameとvalueのテーブル作って
(1ページあたりの記事数,5),
(背景の色,#f00),
(タイトル,mYbloG),
って放り込めばいいんじゃないの?
0947945
2015/01/04(日) 15:06:56.96ID:???たしかにそうですね。設定毎のフィールドを用意することを勝手にイメージしてました。
その方法でも設定が少量であればRDBとして無駄に思えるのですが、その方法が一般的になるでしょうか?
設定を参照する度にnameを検索することが少々無駄に感じてしまいます。
0948NAME IS NULL
2015/01/04(日) 15:17:59.03ID:???テキスト使うのが馬鹿らしくなるのでわかると思う
使い方慣れるまでは面倒かもしれないけど
0949NAME IS NULL
2015/01/04(日) 15:18:06.53ID:???製作者がそういう風にしたほうが便利だと思ったからやってるだけ。
あなたは静的ファイルのほうが無駄がないと思っているからそうしているだけ。
よそはよそ、うちはうち。
だから別に気にしなくていいよ。
0950NAME IS NULL
2015/01/04(日) 15:18:45.52ID:???便利のような気がするけど。
後はloginid,name,valueとしてユーザー毎に設定を保持できるように
するのも楽だし(もちろん静的ファイルでも可能だけど)。
>設定を参照する度にnameを検索することが少々無駄に感じてしまいます。
静的ファイルから読みだすのと対して変わらないような。
0951NAME IS NULL
2015/01/04(日) 15:36:05.90ID:???ユニークIDを付けて、運用時はそれをキーに検索したらどうかな。
0952945
2015/01/04(日) 17:33:53.17ID:???15年来設定をテキストファイルで保存していたため、どうもRDBをRDBとして使う以外のことに抵抗があるだけなのかも知れません。
現在はテキストファイルに固定長で保存しているためにポインタをシークするだけで検索などは不要のため、どうも一々RDBに問合せを出すということが無駄に感じていました。
いくつかのWebシステムを読んでみたのですが、MovableTypeは少し特殊な方法かも知れませんが、多くの場合>>946さんの方法で行っているようです。
私もバックアップの事を考えている中でMySQLに入れることを考えたのですが、OpenPNEは画像ファイルもアクセス制限のためにDBに入れるなど、システム毎にいろいろな方法があるんですね。
ありがとうございました。
0953NAME IS NULL
2015/01/04(日) 18:50:40.78ID:???俺も>>946のような持たせ方は気持ち悪くてしょうがないけどねぇ。
0954945
2015/01/04(日) 22:38:47.41ID:???そのために設定テーブルを作ると考えたのですが、それであれば設定を追加する度にテーブルを変更する必要が有り、1レコードしか無いテーブルを持つことになるのでそれも無駄に感じてしまいます。
私のシステムを変更してみたので、しばらく使ってみようと思います。
0955NAME IS NULL
2015/01/04(日) 23:35:20.24ID:???それを考えたら答えは出るよな
無駄だと思うのは設計が間違っているか、DBを必要としないか
今作っているシステムがテキストファイル保存で事足りるならそれでええと思うよ
0956NAME IS NULL
2015/01/05(月) 19:39:05.10ID:ECYaSO8sいちいち変換しないのかな
0957NAME IS NULL
2015/01/15(木) 13:51:06.34ID:GI4jYeFb予め最大値が決まっている小さな数を扱う場合、
現在はすべてint(1)で取り扱っていますが、
tinyint(tinyint(1)はBool型なので、それ以外)やsmaillintを使うべきなのでしょうか?
例えば0〜100までの数しか入らないデータを扱う場合は
int(1)ではなくtinyint(4)にした方がいいのでしょうか?
大は小を兼ねるともいいますが、tinyintにすることによって処理速度が上がったりしますか?
0958NAME IS NULL
2015/01/15(木) 18:30:28.61ID:???double型の項目に、「71.4」という値をセットして、レコードを新規登録
登録データを読み出して、更新しようとすると、エラーが発生する
原因や解決策が分かる方がいたら教えていただけると嬉しいです。
【問題の詳細】
VB6.0 SP5で作ったアプリケーションからMySQLのDBに対して更新を実行すると、下記のエラーが発生。
err=-2147217864
行が見つからなかったため、更新できません。
列の値は最後に読み込まれた後で変更された可能性があります。
【エラーが発生する条件】
1.レコードの登録でdouble型の項目に「71.4」という値を登録
2.登録したレコードを読み出し、更新をすると上記のエラー発生
***注意点***
「71.4」という値以外を新規で登録した場合は、登録したレコードを読み出して更新しても、エラーは発生しない。
その際に、「71.4」という値で更新も可能
更新で「71.4」になったレコードを読み出して、再度更新しても上記のエラーは発生しない。
【環境】
○サーバ側
OS:Linux RedHat Enterprise 6.5
DBサーバ:MySQL 5.1.71(x86_64)
○クライアント側
OS:
Windows 7(32bit)
Windows 2k Pro
ODBC:(それぞれのOSで共にエラーを確認)
odbc3.51.04
odbc5.01.08
【DBの構成】
DB名:「*****」
テーブル名:「***_***」
問題の項目:
項目名「******」
データ型 double ※デフォルト(桁指定無し)
Null:Yes
※「*」は半角アルファベtット
0959NAME IS NULL
2015/01/15(木) 18:39:16.95ID:???tinyintにすれば処理速度はあがります
個人的には、tinyintが好きではないのでsmallintを使います
データの大きさにもの凄くシビアであれば、tinyintを使った方がいいのだと思います。
mysqlのバージョンが変われば、データ型の取り扱いが変わる。(MySQL3.23の頃とchar型が違う)
こんなこともあるので、あまり多くのデータ型を使いたくないのが本音ではあります。
ただ、smallintとintegerでは、違いがかなりあるので、ある程度の使い分けは仕方なし。と考えています。
0960NAME IS NULL
2015/01/15(木) 20:19:02.05ID:???処理速度は上がるんですね!
解説も参考になります
ありがとうございました
0961NAME IS NULL
2015/01/15(木) 23:08:24.17ID:???0962NAME IS NULL
2015/01/16(金) 03:44:11.94ID:???0963958
2015/01/16(金) 09:02:38.93ID:???INSERT INTOでExcuteしてレコードを追加するのをやめてみました。
VB6なので、カーソルロケーションをadUseClientに指定した上で、レコードをオープン
addNewでレコードを追加して、Updateすると
double型項目に71.4をセットしても、更新可能になりました。
SQL文で、Excuteするときに、カーソルロケーションを指定することって可能ですか?
0964NAME IS NULL
2015/01/16(金) 13:34:34.83ID:???MySQLの話だと思ってる?
0965958
2015/01/16(金) 14:02:53.59ID:???思っています。
あと、わざわざこういう言い方するのは悪意を感じて好きではないです。
指摘したいことがあるなら、指摘してください。
0966NAME IS NULL
2015/01/16(金) 14:17:51.50ID:???MySQL以外のDBだと発生しないという事を確認すること
その上で、他の人が再現する上で必要な情報を書くこと
例えばテーブルの定義、インサートするサンプルデータ
VBでやらないといけないなら、その部分のソースも
最低限、ここまでは書かないと誰もコメントくれないと思う。
0967958
2015/01/16(金) 14:19:03.87ID:???サーバのコマンドラインから、MySQLに入り
INSERT INTOで、double型に71.4という値をセットしてレコード登録
INSERT INTO ***_*** set seqno = 1, **** = 71.4;
端末(Win 2K)からAccess2000で、該当のテーブルのリンクを表示(ODBC5.1)
ACCESS上から登録した71.4の値を変更しようとすると、「このレコードは他のユーザーによって変更されています」
カーソルロケーションを見失った時のような動きになります。
0968958
2015/01/16(金) 14:44:35.77ID:???サンプルですか。
では、現象が発生するデータを作ります。
環境は>>958の前提で。
DB作成
create database bcd;
テーブル作成
create table xyz_table (seqno integer not null default 0, gaikei double default null, PRIMARY KEY (seqno) );
レコード登録
insert into xyz_table set seqno = 1 , gaikei = 71.4;
このデータを、PC側の端末(Win2k Pro)からAccess2000でリンク(ODBC5.1)
ACCESS上からgaikei項目の71.4を変更しようとすると、
「このレコードは他のユーザーによって変更されています」
となり、自分の環境では958で起こった現象が再現できます
0969NAME IS NULL
2015/01/16(金) 16:52:24.90ID:???0970958
2015/01/16(金) 17:24:07.00ID:???調べてはみました。
INSERT INTO で、double型に「71.4」をセットしてレコードを登録したときのみ発生するのかは分かりませんでした。
自分には見つけられそうに無いので、申し訳ないですが原因を教えてください。
0971NAME IS NULL
2015/01/16(金) 20:10:24.21ID:???なんでも人に頼るのはよくないよ。googleったら俺もすぐ見つけられたし。
http://bugs.mysql.com/bug.php?id=38147
これに載ってるところだとODBCドライバを更新するといいんじゃないのかな。
0972958
2015/01/19(月) 08:28:20.33ID:???>なんでも人に頼るのはよくないよ。googleったら俺もすぐ見つけられたし。
調べた上で、分からなかったので質問しています。
ありがとう御座いました。
0973958
2015/01/19(月) 09:43:24.47ID:???ODBCを更新してみました。
紹介していただいたサイトでは ODBC 5.1.9で正常動作すると書かれています。
ODBC5.1.9、5.1.12、51.1.13ドライバにアップグレードしたところ、
新規にDSNを作成しようとするとサーバのDBを取得できなかったため、接続はやめました。
最新のODBC 5.3.4では、DSNの作成に失敗するため、接続はやめました。
ODBC5.1.8に戻しています。
端末環境 Win2k Pro
教えていただきありがとう御座いました。
0974NAME IS NULL
2015/01/20(火) 04:40:23.64ID:???>>973が事実なら相当ひどいが。
0975NAME IS NULL
2015/01/21(水) 19:26:12.66ID:???0976NAME IS NULL
2015/01/26(月) 13:21:58.44ID:???表に内容が違うカラムがあった場合に、変数的に同じ名前になってしまいます。
テーブルA、テーブルBに果物というカラムがあって
それぞれ、りんご、みかんだった場合
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$result["果物"]はみかんになってしまいます。
foreachで回してみても、りんごはどこにも居ないわけですが
これはテーブル設計が駄目で
対応はテーブルAにテーブルBを内部結合、またはテーブルBにテーブルAを内部結合といった
対策をとるしかないのでしょうか。
0977NAME IS NULL
2015/01/26(月) 14:10:59.34ID:???0978NAME IS NULL
2015/01/26(月) 14:12:00.55ID:???0980NAME IS NULL
2015/02/05(木) 01:49:01.97ID:???5.5 にアップデートしようと思っています。
1つのメジャーバージョンの間であれば、データベースファイルが
自動的にアップグレードできるようですが、そのバージョンは
4.0.30、4.1.25、5.0.96、5.1.73、5.5.42
で最適ですか? 間に挟むべきバージョンはありますか?
mysqldump を使う方法も検討していますが、文字コードがまちまちで
sjis を無理矢理バイナリとして格納している古いデータベースとかが
あるので、できれば避けたいです。
環境は Windows 2000 SP4 で、サーバー、クライアントは同じマシン、
主に使用しているクライアントは PHP 5.3.29、Perl 5.12.5 です。
用途は Web の開発用で、ODBC は使用していません。
もっとこうした方がいいとか、助言があればよろしくお願いします。
0981NAME IS NULL
2015/02/05(木) 06:46:52.04ID:???どんなパッケージでもいえることだけど、こういうのを順に追っかけるのが一番の近道だと思う。
互換性のない変更もあるから、アップグレードするたびにチェックすること。
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
windowsならこれも。
やったことはないけど細かく手順を書いてくれててやさしさを感じた。
http://dev.mysql.com/doc/refman/5.5/en/windows-upgrading.html
あとWindows2000なんてすっかりサポート対象外だろうから、いろいろ覚悟したほうがいいかと。
0982NAME IS NULL
2015/02/05(木) 10:54:14.89ID:???> 文字コードがまちまちで
> sjis を無理矢理バイナリとして格納している
4.1以上へのアップグレードはこういうの直さないとうまくいかないから
アプリ修正も視野に入れた方がいいです
0983NAME IS NULL
2015/02/05(木) 12:47:30.50ID:???そう?
Win2kは、まだ10台くらいある
Xpは30台くらい
うちは全部で200台くらいだけど、そのくらいの規模で一々MSのご都合に合わせてPC全部買い換えるとこがどれくらいあるんだろ。
0984NAME IS NULL
2015/02/05(木) 12:52:30.24ID:???まあそれでもクライアントならパフォーマンスやハードのサポート切れたりするから
Win2kはないなあさすがに
0985NAME IS NULL
2015/02/05(木) 12:58:34.59ID:???975の話しの流れは、クライアントの話しだよ
クライアントがWin2kで、ODBC接続する話しの流れからだから。
0986NAME IS NULL
2015/02/05(木) 15:27:18.93ID:???いろいろ言いたいけど、ピンポイントでいうなら、なぜ買い換えるという発想になるの?
0987NAME IS NULL
2015/02/05(木) 17:12:45.31ID:???なんでこんな関係ない話しを広げようとするのか分からないけど・・・
買い換えるという発想にならないから、Win2kやXPも残っているという話しなんですが。
どうして、これに食いつくのか理解出来ない。
0988NAME IS NULL
2015/02/05(木) 18:32:48.73ID:???食いついたとか、広げようとか、そんな豪勢なもんじゃないよ。
何でPCを買い換えるんだろうなって思っただけで。
管理者じゃないんだろうし、どうでもいい話でした。
0989NAME IS NULL
2015/02/06(金) 00:14:36.22ID:???0990980
2015/02/06(金) 01:55:35.44ID:???どうもありがとうございます。
今日確認したところ、Windows 2000 は安定してますが CRT がそろそろ
逝ってしまいそうな感じでしたので、当初予定していたアップデートを
あきらめて、現行のサイトを保管しているマシンにデータベース単位で
同居させることにしました。
移転先は Windows 7 に MySQL 4.1.25 がインストール済みです。
ここは慎重に data ディレクトリ丸ごとのコピーはせずに mysqldump を
使うやり方を採用することにしました。
いざダンプした取り込もうとしたところ sjis のテーブルの取り込みで
いきなりエラーが出てうまくいきませんでした。
エラーが出る箇所を見ると '十' とか2バイト目が 0x5C になる文字の
後ろに \ が入って '十\' になってるんですよね。
確か 3.23.58 のころは INSERT INTO t VALUES ('十\') にするのが
正解だった気がするので、これが入らないとなるとコードの方もかなり
直す必要が出てきそうです。
最近は 4.1.25 で utf8 しか使ってないので、こういう不自然な処理を
普通にしてたのを久しぶりに思い出しました。
まあ、とりあえず叩けば映るので、必要に迫られるかさくっと挿入できる
いい案が浮かぶまで温存させておくことにします。
0991958
2015/02/06(金) 08:25:23.01ID:???CSVに落して、CSVファイルをインポートするっていう形はどうですか?
テーブル名が日本語の場合、エンコードが違うことでSQL文の実行で失敗することもありますが、半角英数のテーブル名であれば、これで移行できるかもしれません。
CSVにエクスポート
str = "select * from " & TableName(cnt) & " "
str = str & "into outfile 'C:\" & TableName(icnt) & ".csv' "
str = str & "fields terminated by '\,' "
str = str & "enclosed by '\'' ;"
''SQL実行
ado.Execute str, result
CSVからインポート
str = "load data "
str = str & "infile 'C:\" & TableName(cnt) & ".csv' "
str = str & "into table " & TableName(cnt) & " "
str = str & "fields terminated by '\,' "
str = str & "enclosed by '\'' ;"
''SQL実行
v_ado_conn.Execute str, result
0992958
2015/02/06(金) 18:15:22.05ID:???手持ちのソースからコード抜粋したので余計な部分も載ってます。
SQL文だけ参考にしてみてください
0993NAME IS NULL
2015/02/07(土) 04:42:09.46ID:???文字コードはmysqlもphpもsshも全部utf8なんだけど。。。
http://i.imgur.com/DEvIins.jpg
0994NAME IS NULL
2015/02/07(土) 04:57:35.88ID:???0995NAME IS NULL
2015/02/07(土) 22:44:08.84ID:???0996NAME IS NULL
2015/02/07(土) 22:46:56.41ID:???ならmysqlの出力設定になんかあるんでないの
0997NAME IS NULL
2015/02/08(日) 01:21:41.58ID:???そうなんですよ。mysqlの出力の表が日本語が含まれてるとずれるんです
この設定であってますよね?
http://i.imgur.com/SzMcSA5.jpg
0998NAME IS NULL
2015/02/09(月) 00:41:09.64ID:???確かMySQL 5.6で直った気がする
0999NAME IS NULL
2015/02/10(火) 00:14:24.43ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。