私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part24
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
じゃあ遠慮無く1テーブルで管理するわ。
データベースの種別とかで調べてたら速度云々で色々と描かれてるのを見て不安になってたんでな。
データベースの種別とかで調べてたら速度云々で色々と描かれてるのを見て不安になってたんでな。
データの入れ物や、データ出し入れする行為を意識しなくてよいのがDBMSのよいところの一つなのに、
それを分割してわざわざプログラム側で入れ物を区別するのも滑稽でしょ。
億・兆オーダーになったら、パーティションを検討してみるのがいいと思う。
それを分割してわざわざプログラム側で入れ物を区別するのも滑稽でしょ。
億・兆オーダーになったら、パーティションを検討してみるのがいいと思う。
上記関連事項について質問させてください。
現在、80万レコードで90MBほどのテーブルがあり、一箇月に10万レコードのペースで増えています。
レンタルサーバー(coreserver-mini)のMySQLを利用しているのですが、
どれくらいのレコード数まで順調に動作するものでしょうか?
300万レコードくらいまで快適に動作すればいいと思うのですが、
それまで問題ないでしょうか?よろしくお願いします。
現在、80万レコードで90MBほどのテーブルがあり、一箇月に10万レコードのペースで増えています。
レンタルサーバー(coreserver-mini)のMySQLを利用しているのですが、
どれくらいのレコード数まで順調に動作するものでしょうか?
300万レコードくらいまで快適に動作すればいいと思うのですが、
それまで問題ないでしょうか?よろしくお願いします。
INSERT INTO `tantousya`(`adress`, `namae_kanji`) VALUE ("Tanaka@", "田中")
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@;
二段階に分けて実行した場合は、まずデータが挿入され、
その後挿入されたデータが表示されます。
エラー内容からサブクエリの書き方に
問題があるように見受けられるのですが、
どこが悪いのか見当もつかない状態です…
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@;
二段階に分けて実行した場合は、まずデータが挿入され、
その後挿入されたデータが表示されます。
エラー内容からサブクエリの書き方に
問題があるように見受けられるのですが、
どこが悪いのか見当もつかない状態です…
`adress`か `namae_kanji`で、重複を許さない指定があれば
INSERT IGNORE INTO `tantousya` (`adress`, `namae_kanji`) VALUE ("Tanaka@", "田中");
INSERT IGNORE INTO `tantousya` (`adress`, `namae_kanji`) VALUE ("Tanaka@", "田中");
INSERTにNOT EXISTSは直接使えないので、
一旦NOT EXISTSを条件にSELECTし、レコードがない場合に
INSERTすると言うように書かないと無理じゃないかな
一旦NOT EXISTSを条件にSELECTし、レコードがない場合に
INSERTすると言うように書かないと無理じゃないかな
>>761
こんな感じかw
INSERT INTO `tantousya` SELECT 'Tanaka@' AS `adress`, '田中' AS `namae_kanji` FROM DUAL
WHERE NOT EXISTS (SELECT * FROM `tantousya` WHERE `tantousya`.`adress` = 'Tanaka@');
こんな感じかw
INSERT INTO `tantousya` SELECT 'Tanaka@' AS `adress`, '田中' AS `namae_kanji` FROM DUAL
WHERE NOT EXISTS (SELECT * FROM `tantousya` WHERE `tantousya`.`adress` = 'Tanaka@');
>>200 >>201
先生たち!それが出来ないんですよ('_;)
がんばって
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 |
先生たち!それが出来ないんですよ('_;)
がんばって
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 |
↑先ほど書いたものですけど、
セキュリティーは「MySQLサーバは起動していないか、ファイアウォールでブロックされています!」
と記述されてます。
セキュリティーは「MySQLサーバは起動していないか、ファイアウォールでブロックされています!」
と記述されてます。
au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり塩肉マンつばめの巣担々麺野菜炒めラーメン
au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
ニンニクヤーフォー低額土地NHK名古屋遅延電池切れ福岡損保新規駐車近代ゲームフジワイプ転職提案ラーメン
abk公式漏洩安保険王なにあげてんだよ?「わー!ふーう?」↓↓★★↓↓宿題通調印鑑カウントダウン息子議員国会大学生
au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
au氷水ディレクター戦争タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
ニンニクヤーフォー低額土地NHK名古屋遅延電池切れ福岡損保新規駐車近代ゲームフジワイプ転職提案ラーメン
abk公式漏洩安保険王なにあげてんだよ?「わー!ふーう?」↓↓★★↓↓宿題通調印鑑カウントダウン息子議員国会大学生
質問させてください。
大したアクセス数もないのに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
大したアクセス数もないのに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
続き(長々となってすみません)
[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
[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
ワードプレス?
innodb_buffer_pool_sizeは総メモリの7~8割割り当てろとか言われてる
key_buffer_sizeは64Mぐらいになりそう
sort_buffer_sizeとかが多すぎる
スレッドバッファで調べてみるといい
mysqltuner使ったらだいたい教えてくれる
後エラーログに色々出てるはずだからそれを見る
innodb_buffer_pool_sizeは総メモリの7~8割割り当てろとか言われてる
key_buffer_sizeは64Mぐらいになりそう
sort_buffer_sizeとかが多すぎる
スレッドバッファで調べてみるといい
mysqltuner使ったらだいたい教えてくれる
後エラーログに色々出てるはずだからそれを見る
>>775
いえRuby on Railsというフレームワークを使って自分で1から組んでいます
いえRuby on Railsというフレームワークを使って自分で1から組んでいます
5.5より5.6
5.7はたいした変更ないけど5.5と5.6はクエリによっては大違いだぞ
5.7はたいした変更ないけど5.5と5.6はクエリによっては大違いだぞ
MySQLで大量のデータ計算させるのに適切なアプリケーションに迷っておりアドバイスあれば教えて下さい。
以前Accessに株価データ入れてVBAで分析みたいなことやってたんですがレコード数が150万ぐらいになるので、MySQL5.6+Access2010に作り直してみたんです。
・ODBC接続してリンクテーブルをAccess内に張り、それに対して操作
・VBAのADOでMySQLテーブルをレコードセットして、それに対して操作
・Accessで計算し、結果をSQL文にしてMySQLに投げる操作
・Accessで計算し、結果をローカルテーブルに書いて最後にテーブルを転送
などやってみたんですが、どれもAccessローカルテーブルに直接操作するよりパフォーマンスが落ちます。
MySQLのクエリ自体は高速なのですがInsert/UpdateをODBC経由やADO接続でやりとりするところがボトルネックみたいで。
PHPとかRubyとかで処理するとそういう問題は少ないのでしょうか。
以前Accessに株価データ入れてVBAで分析みたいなことやってたんですがレコード数が150万ぐらいになるので、MySQL5.6+Access2010に作り直してみたんです。
・ODBC接続してリンクテーブルをAccess内に張り、それに対して操作
・VBAのADOでMySQLテーブルをレコードセットして、それに対して操作
・Accessで計算し、結果をSQL文にしてMySQLに投げる操作
・Accessで計算し、結果をローカルテーブルに書いて最後にテーブルを転送
などやってみたんですが、どれもAccessローカルテーブルに直接操作するよりパフォーマンスが落ちます。
MySQLのクエリ自体は高速なのですがInsert/UpdateをODBC経由やADO接続でやりとりするところがボトルネックみたいで。
PHPとかRubyとかで処理するとそういう問題は少ないのでしょうか。
結果セットが大量すぎてコピーが遅いならわかるけど
更新処理が遅いのはよくわからんな。
ADOならちゃんとパラメータのバインドとか使えば
そうそう遅くならない
更新処理が遅いのはよくわからんな。
ADOならちゃんとパラメータのバインドとか使えば
そうそう遅くならない
>>782
自分が素人なのは分かってますが、金出すほど複雑なことじゃないしあとで我流の指標とか色々いじりたいのよね・・・
>>783
それはストアドプロシージャ使ってVBAからはCallするだけって感じでしょうか?
>>784
やっていることを単純化すると下記みたいになります。
下記のプログラムでconnectionをMySQLにして1分43秒、 レコードセットOpenするところのcnnを CurrentProject.Connectionに変えてAccess内のテーブルにすると4秒でした。
銘柄コード1301~1999の149,257レコードに対する更新です。
PC一台(i7-3770@3.4GHz, 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
自分が素人なのは分かってますが、金出すほど複雑なことじゃないしあとで我流の指標とか色々いじりたいのよね・・・
>>783
それはストアドプロシージャ使ってVBAからはCallするだけって感じでしょうか?
>>784
やっていることを単純化すると下記みたいになります。
下記のプログラムでconnectionをMySQLにして1分43秒、 レコードセットOpenするところのcnnを CurrentProject.Connectionに変えてAccess内のテーブルにすると4秒でした。
銘柄コード1301~1999の149,257レコードに対する更新です。
PC一台(i7-3770@3.4GHz, 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
ADOでの更新が遅い理由は判らないけど(ODBCの設定、カーソルタイプ、ロックタイプのどれかが影響?)
提示された処理であれば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
提示された処理であれば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
ごめん、最後エイリアスつけ忘れ
WHERE id BETWEEN 130100000 AND 200000000
↓
WHERE a.id BETWEEN 130100000 AND 200000000
WHERE id BETWEEN 130100000 AND 200000000
↓
WHERE a.id BETWEEN 130100000 AND 200000000
>>785
ループで毎回updateではなく、抜けたあとでUpdateBatchとかダメだろうか?
http://msdn.microsoft.com/ja-jp/library/cc364237.aspx
ループで毎回updateではなく、抜けたあとでUpdateBatchとかダメだろうか?
http://msdn.microsoft.com/ja-jp/library/cc364237.aspx
SQL1発で済むならそれが一番だが、無理なら
http://blog.livedoor.jp/it_ikiru/archives/50422207.html
みたいなやり方てバインド使った方がいいよ
レコードセットは内部的にコピー持ってSQL発行してるだけだから
http://blog.livedoor.jp/it_ikiru/archives/50422207.html
みたいなやり方てバインド使った方がいいよ
レコードセットは内部的にコピー持ってSQL発行してるだけだから
ところでコードを貼るならgist使わね?
gistならログイン不要で匿名でスニペット貼り付けられる。
こっちに貼ると行数制限やらタブが消えるやらの問題があるので見づらいし使いづらい。
ちなみに先のコードならこんな感じ。
http://gist.github.com/anonymous/9c2a408bab050f89469d
例示用に勝手に使ってすまぬ >779
gistならログイン不要で匿名でスニペット貼り付けられる。
こっちに貼ると行数制限やらタブが消えるやらの問題があるので見づらいし使いづらい。
ちなみに先のコードならこんな感じ。
http://gist.github.com/anonymous/9c2a408bab050f89469d
例示用に勝手に使ってすまぬ >779
質問させてください
phpMyAdminで MySQLのデータベースを管理しています。
yumで新しめのphpMyAdminに入れ替えました。
それ以降というもの
20テーブルほど、それぞれ20MB~100MBはあり合計270MBとなっています。
しかし、データベースをまるごとエクスポートすると8MBのサイズになりダウンロード完了と出てしまいます。
なぜでしょうか?
phpMyAdminで MySQLのデータベースを管理しています。
yumで新しめのphpMyAdminに入れ替えました。
それ以降というもの
20テーブルほど、それぞれ20MB~100MBはあり合計270MBとなっています。
しかし、データベースをまるごとエクスポートすると8MBのサイズになりダウンロード完了と出てしまいます。
なぜでしょうか?
775,779の件みなさんありがとうございます。
>>786-782
4秒でした。圧倒的に早いですね。これならAccess単独のVBAループ処理に匹敵できます。
>>789
UpdateBatch1分20秒でした。レコードセットアップデートのループより2,3割早かったです。
非接続にしたレコードセットのループ部分は1秒無いぐらいなのにUpdateBatchでほとんどの時間食ってました。
>>790
パラメーターマーカーの方法も1分20秒でした。
>>791
掲示板でコード示すとき便利そうですね。今後使わせていただきます。
他にも色々やったのですが、ループ毎にUpdate文を文字列で組み立ててcnn.Executeするやり方で1分10秒ほどなのがせいぜいでした。
シーケンシャルにカーソル動かしながら処理していくプログラミングに慣れてたのでSQL一発文組み立てるの苦手だったのですが、これだけ圧倒的パフォーマンスだと使わざるを得ないですね。
なんとかその方向でやってみます。
>>786-782
4秒でした。圧倒的に早いですね。これならAccess単独のVBAループ処理に匹敵できます。
>>789
UpdateBatch1分20秒でした。レコードセットアップデートのループより2,3割早かったです。
非接続にしたレコードセットのループ部分は1秒無いぐらいなのにUpdateBatchでほとんどの時間食ってました。
>>790
パラメーターマーカーの方法も1分20秒でした。
>>791
掲示板でコード示すとき便利そうですね。今後使わせていただきます。
他にも色々やったのですが、ループ毎にUpdate文を文字列で組み立ててcnn.Executeするやり方で1分10秒ほどなのがせいぜいでした。
シーケンシャルにカーソル動かしながら処理していくプログラミングに慣れてたのでSQL一発文組み立てるの苦手だったのですが、これだけ圧倒的パフォーマンスだと使わざるを得ないですね。
なんとかその方向でやってみます。
mysql 5.5.21
select ~ into outfile でテーブルの内容をファイルに書き出せはしますが、その時に
カラム名をヘッダとして先頭に出す…なんてことは出来ないんでしょうか
select ~ into outfile でテーブルの内容をファイルに書き出せはしますが、その時に
カラム名をヘッダとして先頭に出す…なんてことは出来ないんでしょうか
mysql 5.6.20
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
回避しつつバックアップを取る方法とかってありますか?
ちなみに出来たファイルの中身はコメントだけでした
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
回避しつつバックアップを取る方法とかってありますか?
ちなみに出来たファイルの中身はコメントだけでした
ORACLEにはPL/SQLにPACKAGEがありますが、それに相当する機能ってありますか?
ストアド使わないシステムを作ったこと無いんですが、MySQLはストアド使わなくても速いですか
ストアド使わないシステムを作ったこと無いんですが、MySQLはストアド使わなくても速いですか
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- MySQL 総合 Part25 (947) - [94%] - 2017/6/18 6:30
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part23 (992) - [94%] - 2013/8/11 17:00
- MySQL 総合 Part22 (1001) - [94%] - 2012/7/10 16:45
- MySQL 総合 Part26 (860) - [94%] - 2023/2/2 9:30
- MySQL 総合 Part21 (1001) - [94%] - 2011/12/25 22:16
- MySQL 総合 Part20 (995) - [94%] - 2011/10/17 4:48
- MySQL 総合 Part12 (1001) - [89%] - 2008/1/30 17:34 ○
- MySQL 総合 Part18 (986) - [89%] - 2011/1/17 15:46
- MySQL 総合 Part13 (996) - [89%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part15 (1001) - [89%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part17 (1001) - [89%] - 2010/6/10 20:47 ○
- MySQL 総合 Part19 (982) - [89%] - 2011/6/9 2:33
- MySQL vs PostgreSQL Part2 (941) - [36%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について