MySQL 総合 Part26 [無断転載禁止]©2ch.net

1NAME IS NULL2017/07/13(木) 21:39:55.28ID:n0Ab2lD/
オラクル社によるオープンソースのRDBMS、MySQLの総合スレです。

MySQL 総合 Part25 [転載禁止](c)2ch.net
http://mevius.2ch.net/test/read.cgi/db/1424001054/

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

2NAME IS NULL2017/07/13(木) 21:46:34.96ID:???
テンプレに追加しといて

MySQL 5.7 マニュアル (E) https://dev.mysql.com/doc/refman/5.7/en/
MySQL 5.6 マニュアル (J) https://dev.mysql.com/doc/refman/5.6/ja/

3NAME IS NULL2017/07/16(日) 23:20:15.80ID:huxGrA6+
my.cnfやmy.cnf.d以下のファイルを少しでも編集すると、
ERROR 2002
/var/lib/mysql/mysql.sock(13)や(2) (111)

となります。
それらは編集してはいけないものだとすれば、
どれを編集すべきなのでしょうか?

CentOS7.3 MariaDB 5.5.52です。

4NAME IS NULL2017/07/19(水) 13:49:59.05ID:???

5NAME IS NULL2017/07/20(木) 05:57:44.06ID:???
テラタームで一画面に表示できないような、縦にも横にも長いテーブルを表示させると、
どこかに変な改行が入った様な画面になることが有ります。変な改行をなくす事はできますでしょうか。

具体的には、100列全てテキスト型のテーブル(20万行程度)が綺麗に表示できません。
「どこかに変な改行が入った様な画面」というのはこんな画面です。

※下記の例は、イメージを伝えるために、適当なサイトから引っ張ってきたもので、
  実際のテーブルは異なります。

mysql> select * from eiga;
+----+--------------------+-------------+------+
| id  | title             | genre        | year  |
+----+--------------------+-------------+------+
| 1 | Star Wars           | SF        | 2015 |
                                          ←変な改行
| 2 | Back To The Future    | SF         | 2015 |
                                           ←変な改行
| 2 | City Of God         | SF         | 2015 |
+----+--------------------+-------------+------+

pagerはlessを使っています。(SQL>pager less -F)の設定で使っています。

また、ページャのpager less -S -Fの設定で確実にずれるのは、先頭列をを含む表示をさせているときです。
→を押して、画面を横にめくっていくと、ずれたりずれなかったりします。

テーブルで最も長いフィールドは、1バイト文字だと、40文字〜50文字ぐらい
2バイト文字だと、20文字ぐらいです。元データ自体に変な改行が入っているのではないかと、
20万行の元データを確認しましたが、改行が入っていたり、フィールドの値に、\rや\r\n等の変な文字もありませんでした。
各フィールドに、余計なフィールド区切り文字が入っている事もありませんでした。
テーブルはlaod data infile 〜〜で改行コードも、フィールド区切り文字も指定しました。

確認した範囲は以上です。他にお伝えすべき情報がございましたら、ご指示ください。
宜しくお願いいたしします。

652017/07/20(木) 06:00:18.62ID:???
すみません、一部訂正があります。推敲が足りませんでした。

テラタームで一画面に表示できないような、縦にも横にも長いテーブルを表示させると、
どこかに変な改行が入った様な画面になることが有ります。変な改行をなくす事はできますでしょうか。

具体的には、100列全てテキスト型のテーブル(20万行程度)が綺麗に表示できません。
「どこかに変な改行が入った様な画面」というのはこんな画面です。

※下記の例は、イメージを伝えるために、適当なサイトから引っ張ってきたもので、
  実際のテーブルは異なります。

mysql> select * from eiga;
+----+--------------------+-------------+------+
| id  | title             | genre        | year  |
+----+--------------------+-------------+------+
| 1 | Star Wars           | SF        | 2015 |
                                          ←変な改行
| 2 | Back To The Future    | SF         | 2015 |
                                           ←変な改行
| 2 | City Of God         | SF         | 2015 |
+----+--------------------+-------------+------+

pagerはlessを使っています。(SQL>pager less -F)の設定で使っています。

また、ページャのpager less -S -Fの設定で確実にずれるのは、先頭列をを含む表示をさせているときです。
→を押して、画面を横にめくっていくと、ずれたりずれなかったりします。

テーブルで最も長いフィールドは、1バイト文字だと、40文字〜50文字ぐらい
2バイト文字だと、20文字ぐらいです。元データ自体に変な改行が入っているのではないかと、
20万行の元データを確認しましたが、行末以外に改行が入っていたり、フィールドの値に、\rや\r\n等の変な文字もありませんでした。
各フィールドに、余計なフィールド区切り文字が入っている事もありませんでした。
テーブルはcreate tableをして、laod data infile 〜〜で改行コードも、フィールド区切り文字も指定し、データを流しました。

確認した範囲は以上です。他にお伝えすべき情報がございましたら、ご指示ください。
宜しくお願いいたしします。

7NAME IS NULL2017/07/22(土) 11:11:12.83ID:???
>>6
ターミナルなんか捨てれば。
MySQL Workbenchがオススメ。

8NAME IS NULL2017/08/04(金) 18:42:54.02ID:???
columnstore使ってる人いますか?
200万件ぐらいだと集計めっちゃ早かったんだが

9NAME IS NULL2017/08/04(金) 20:05:12.88ID:???
>>8
いらない

10NAME IS NULL2017/08/05(土) 09:33:15.12ID:JqaOw3r6
「データベース」って一体何なの?
俺ん中でDB言うたらMySQLのイメージなんだよね。
DBエンジンがあって、ディレクトリ構造持ってて、
データはバイト化されて格納されてるって感じなのよ。
ところが、テキストファイル1枚あって、「これがDBです。」って
いわれても、「は?」ってなるわけよ。
あとなんでDBって絵だとタルみたいな形してんの?

11NAME IS NULL2017/08/05(土) 10:01:35.02ID:???
は?

12NAME IS NULL2017/08/05(土) 13:07:28.25ID:???
>>10
データのいれもの

13NAME IS NULL2017/08/05(土) 13:31:28.92ID:JqaOw3r6
>>12 「ファイル」との違いは?
なんでタルなの?

14NAME IS NULL2017/08/05(土) 13:35:53.33ID:???
MySQLに関する質問ならここで良いですが
データベース一般についての質問はこちらでどうぞ

http://mevius.2ch.net/test/read.cgi/db/1056957157/

15NAME IS NULL2017/08/12(土) 17:31:09.03ID:5UgoGcDX
>>10
mysqlはdbmsやぞ、壮大な勘違いしとるなお前w

16NAME IS NULL2017/08/14(月) 23:41:17.80ID:???
>>15
> オラクル社によるオープンソースのRDBMS、MySQLの総合スレです。
の解釈次第だな。

ID:JqaOw3r6

が、データベース一般の質問なのか、MYSQLとして答えてほしいのかがわからんからな。

17NAME IS NULL2017/08/15(火) 12:20:32.96ID:tj6bL878
>>16
わからんなら答えんでもいいんやで
お前にはその自由があるんや

18NAME IS NULL2017/08/15(火) 13:03:18.87ID:???
>>17
お前にもその自由があるんやで
おまえやて、わからんから答え書いてへんのやろ

19NAME IS NULL2017/08/15(火) 18:52:32.45ID:W7PU5Teu
>>18
なんでエセ関西弁使うの?
気持ち悪いよお前、関西弁関係ないけどw

20NAME IS NULL2017/08/15(火) 19:06:36.16ID:???
>>19
あそれあそれガイジが出た出たよよいのよいw

212017/08/25(金) 12:01:38.70ID:j5rZoTgy
こりゃあ面白いわ!!
https://blogs.yahoo.co.jp/antseq01/15073181.html

22NAME IS NULL2017/08/30(水) 09:57:38.84ID:???
メンテナンスのために一時的にトリガーの動作を停止させたいんだけど、そういう時は一旦dropして終了後にまたcreate…
ですかね。

23NAME IS NULL2017/08/30(水) 21:01:45.64ID:???
設定か権限かなかったっけ?
権限を外したらエラーになる?

24NAME IS NULL2017/08/30(水) 21:04:30.40ID:???
トリガーだけ止めて、不整合発生しないの?

25NAME IS NULL2017/08/30(水) 21:31:49.64ID:???
>>22です。
今回考えているのは日付の修正なんだけど、トリガーがその日付の更新時に
その日付データの更新前の日付を別テーブルにinsertするもので、つまり
insertはしないようにしたいということなんですね。

対象データが履歴テーブルに書き込まれないようにすれば良いので。

権限とかはどうなんだろう。同じユーザーで作業するので、それはいじりたく
ないんですが。

26NAME IS NULL2017/09/08(金) 19:29:16.84ID:ON9HZoGm
今の職場の制作してるサイトのMYSQLのバージョンが5.6.10であることが判明したが
これってヤバイ?

2013年2月にリリースされたバージョンで
mysqltunerで脆弱性の数を見ると
200以上ある

4年半以上も前のなら
そらそうなるか

27NAME IS NULL2017/09/08(金) 19:57:36.21ID:???
ヤバイー♭ヤバイー♭

28NAME IS NULL2017/09/08(金) 20:22:02.27ID:x+O6E/JX
でも今まで攻撃受けた事無いし大丈夫じゃね?

29NAME IS NULL2017/09/08(金) 22:58:07.84ID:???
まさかMySQL自体は外に晒してないやろ?
そうでなければ、MySQLの脆弱性を突かれるときには、すでにサーバーに侵入されとるやないか。
心配する意味があんの?

30NAME IS NULL2017/09/09(土) 08:43:25.44ID:vfK0dlGP
>>29
Amazon RDSってサーバーらしいけど
これ使ってても手動アップデートが必要なのかね

外に晒してないって
同じサーバーに立ててlocalhostだけから接続するようにするか
違うサーバーでも接続出来るIPを制限するとか?
mysqltunerの警告に

User 'foobaruser@%' hasn't specific host restriction.

ともあるから接続IPは制限されてないと思われる
ヤバイ?

31NAME IS NULL2017/09/09(土) 08:54:20.65ID:vfK0dlGP
RDSのインスタンスが動いてるホスト名が分かれば外からでも接続出来そうだが
関係者しか分かんないよな?

もしホスト名が漏れたら
脆弱性でデータが流出したり書き換えられたり
サーバーが止まったり等の被害が予想されるが・・・

32NAME IS NULL2017/09/09(土) 13:01:58.77ID:???
MySQL以前に、そのサーバーにはファイアウォールがないのか?
ないんだったら、そっちのほうが問題じゃないか?

33NAME IS NULL2017/09/09(土) 13:54:55.67ID:FSblmZFH
ファイアウォールあれば
アップデートの適用は不要・・・な事は無いよね?

34NAME IS NULL2017/09/09(土) 21:19:43.89ID:???
程度問題だろ。
完璧じゃなきゃイカンのか?

アップデートしたいならすればいい。

35NAME IS NULL2017/09/09(土) 23:27:20.07ID:???
>>29
多段防御はセキュリティの基本

36NAME IS NULL2017/09/09(土) 23:28:01.36ID:???
ちゃんとファイアーウォールが設定してあればmysqlに直接侵入は出来ないだろう

アプリケーションサーバー側の防護が不十分で
侵入できればmysqlにもアクセス出来るだろうけど
そっちに侵入できた時点でもう色々終わってるよね

脆弱性にはroot取得を可能にする物とかあるっぽいけど
root取得してまで仕込みたいウイルスって何だ

37NAME IS NULL2017/09/09(土) 23:29:26.74ID:???
まあ何層も防護があれば全て破られる可能性は低くなるな

38NAME IS NULL2017/09/09(土) 23:44:59.38ID:???
>>36
アプリサーバーへ侵入してDBサーバーへのアクセス権を入手できたからといって
DBサーバーのデータすべてを抜いたり改ざんしたり管理者権限を奪取できるとは限らない
だから被害の度合いが違ってくる

単に侵入を防ぐだけでなく被害を抑えるためにも多段防御+早期検知が重要

39NAME IS NULL2017/09/10(日) 14:37:40.04ID:???
そもそも、そこまで心配しなければいけないものなのか?ということは、立ち止まって考えてみよう。
アップデート作業やそのあとの動作検証など、いろいろやらないといけないことがあるんだから。

40NAME IS NULL2017/09/10(日) 16:00:45.25ID:???
会社で使ってる場合は>>39さんの言うようにやることが沢山あるから気軽に出来るものではないけど、
個人で使ってる人はバージョンアップよくする?
自分は現在5.6.20のままで次バージョンアップするのはPC買い換える時にと思ってるけど。

41NAME IS NULL2017/09/10(日) 16:53:32.97ID:???
そろそろMariaDBに乗り換えたら?

42NAME IS NULL2017/09/10(日) 21:25:57.44ID:???
MariaDBとMySQLって、結局どうなるの?
やっぱMariaDBが主流になるのかな

43NAME IS NULL2017/09/10(日) 23:34:15.81ID:???
Oracleに飼い殺しされるとか危惧されてたけど
8.0も出るみたいだし、このまま使い続けそう

44NAME IS NULL2017/09/11(月) 03:53:57.54ID:???
Oracleを信じていいのか?
Java、Solaris、Sunの現状を知っているか?

45NAME IS NULL2017/09/11(月) 13:25:33.28ID:???
知らない

46NAME IS NULL2017/09/11(月) 13:27:57.48ID:???
去年のなつだったか、脆弱性の問題が出て
Mariaは即時対応したけれど
Oracleはしばらく放置していなかったよね

47NAME IS NULL2017/09/11(月) 15:01:21.10ID:???
>>45
知れよ!w
端的な印象を言えば、飼い殺しだ。

48NAME IS NULL2017/09/13(水) 14:26:05.32ID:???
Auroraって言うのを使えば良くね?
あれもMySQL互換でしょ

49NAME IS NULL2017/09/16(土) 13:15:09.87ID:RoqLXZZ0
なんだかんだ言っても結局、一番まともなのはOracleだから仕方ない。

50NAME IS NULL2017/09/16(土) 13:27:21.17ID:WoxB6uSt
危険な自民党の言論弾圧. 

http://www.data-max.co.jp/280113_ymh_02/

↑ 自民改正案の真の狙いは言論の自由を奪うこと!

http://blog.goo.ne.jp/kimito39/e/ec37220f64a8e1d6ed732dd0ab95cbf0

↑超危険な緊急事態条項で人権無視の内閣独裁に!

https://www.youtube.com/watch?v=h9x2n5CKhn8

↑ 自民党は 国民に基本的人権はないと断言!

http://xn--nyqy26a13k.jp/archives/31687

↑ 小池都知事も安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻す民主主義破壊論者!

http://www.mdsweb.jp/doc/1488/1488_03f.html

↑”9条自衛隊明記”は 9条無効化だった!

http://blog.goo.ne.jp/ngc2497/e/8899f65988fe0f35496934dc972e2489

↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。

https://dot.asahi.com/aera/2016071100108.html?page=3
http://blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674

↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。
国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。

51NAME IS NULL2017/10/12(木) 22:16:34.05ID:AkIhUXcP
innodb_log_buffer_size
innodb_log_file_size
この項目を入れるとエラーになるようになりました。

今、サーバーが死んでしまい、新たに1から構築し直しています。
バックアップしてあったmy.cnfファイルを使っていますが、
各種設定ファイルはバックアップから引き継いで(もしくは目視で見ながら書き写し)で設定しているので、
ほとんどの設定は同じに近いと思います。
サーバーに触れるのは初めてでなんとか構築した状態で、
もはやその時何をやったか記憶が曖昧です。
my.cnf.d内の各ファイルは未編集で、編集したのはmy.cnfだけでした。
php.iniもバックアップからの復元です。

何か違う場所で編集することがあるのでしょうか?

MariaDB 5.5.56です。

52NAME IS NULL2017/10/12(木) 22:58:36.49ID:+PtNHGsI

カラムが3つある簡単なテーブルに
INSERT INTO table () VALUES ("1","2","3"),("4","5","6")
のように、カラムを空にして値をINSERTしても
正しく実行出来たのですが、これはそういう仕様になっているのでしょうか?

できたんじゃったらそうなんじゃろ。
気になるならドキュメントを読むがよい。

55名無しさん@そうだ選挙に行こう! Go to vote!2017/10/22(日) 13:55:09.94ID:xw+GeB6/
>>53
標準SQLでもカラム数と値が同じなら、そのカラム順にinsertする仕様になっている。ただし勧めない。

56NAME IS NULL2017/11/02(木) 02:03:57.40ID:???
INSERT INTO .. ON DUPLICATE KEY UPDATE
を実行した時に、insert, updateがそれぞれ何件あったのかを一緒に取得したいのですが、上のsqlの後にどんなsql文を追加すれば可能でしょうか?

57NAME IS NULL2017/11/02(木) 03:23:54.71ID:???

58NAME IS NULL2017/11/02(木) 03:33:41.58ID:???

59NAME IS NULL2017/11/02(木) 07:20:25.26ID:???
>>57>>58
ありがとうございました。

60NAME IS NULL2017/11/03(金) 23:55:58.81ID:???
Character set 'utf-8' is not a compiled character set and
is not specified in the '/usr/share/mysql/charsets/Index.xml' file

というエラーが出て、Index.xmlを見てみたのですが
utf-8はちゃんとありました
エラーが出た原因がよくわかりません

61NAME IS NULL2017/11/04(土) 11:59:40.93ID:???

62NAME IS NULL2017/11/09(木) 19:58:32.53ID:???
ここの
https://stackoverflow.com/questions/12352471/getting-total-row-count-from-offset-fetch-next
72と言う回答はsql server版なのですが、
MySQLで同じ処理をしたいのですが誰かMySQLに翻訳してくれませんか?
数時間やってもダメでした。

63NAME IS NULL2017/11/11(土) 00:27:14.61ID:???
何がしたいのかイマイチよくわからん。
こういうことか?
====
S ELECT @count := count(*) F ROM table;
S ET @pagesize = 10;
S ET @pagenum = 3;
S ET @offset = @pagesize * (@pagenum-1);

P REPARE STMT F ROM 'S ELECT *, ? count F ROM table LIMIT ? OFFSET ?';
E XECUTE STMT USING @count, @pagesize, @offset;
====

64NAME IS NULL2017/11/11(土) 16:36:01.39ID:???
mysql(5.6 wni)
mysql tuner を使ったところ↓のような状況なんですが、この中で
×の付いている項目(ここでは3つ)について改善するためには
iniファイルでどのような設定にすればいいんでしょ?
ちなみにMyIsamは使う気も無し、使ってるのはInnodbのみです

https://dotup.org/uploda/dotup.org1385446.jpg

65NAME IS NULL2017/11/12(日) 06:21:43.64ID:???
innodb_buffer_pool_sizeとsort_buffer_sizeいくつよ
とりあえず増やしとけって書いてある

66NAME IS NULL2017/11/12(日) 10:07:38.14ID:???
>>65
レスありがと
innodb_buffer_pool_size は mysqld で128Mを指定、sort_buffer_size は見当たらないです

67642017/11/12(日) 10:12:28.96ID:???
show variables like '%sort%';
ではsort_buffer_size は 256kb(?)でした。

68642017/11/12(日) 19:29:28.94ID:???
mysqldセクションでsort_buffer_sizeとinnodb_buffer_pool_sizの値を変えて試してみます。

69NAME IS NULL2017/11/19(日) 13:19:08.18ID:???
>>61
知恵袋(笑)

70NAME IS NULL2017/11/19(日) 13:48:10.06ID:???
>>69
2chで。w

71NAME IS NULL2017/11/26(日) 18:21:11.68ID:1vdKHepF
mysqlなんですが
外部結合などの依存関係を無視して強制的に
データを削除したいんですがどうしたら良いですか?

72NAME IS NULL2017/11/26(日) 18:56:39.09ID:rCRyhJ2E
>>71
どういう状態にしたいのか?

73NAME IS NULL2017/11/26(日) 19:54:33.82ID:UBB1dWaa
drop table

74NAME IS NULL2017/11/26(日) 20:00:08.08ID:???
sudo rm -f t1.idb

75NAME IS NULL2017/11/27(月) 12:42:03.53ID:???
constraintを外すなら
alter table 〜 drop foreign key 〜
で消しちゃえば

76NAME IS NULL2017/12/01(金) 22:03:27.44ID:G85jgK0P
Likeの部分一致使ったり
Join使いまくったり
インデックスろくに使わなかったり
Entity Attribute Valueなるアンチパターンに沿った構造のテーブルを作って
更に大量のデータを入れたら
検索に二時間掛かったりするようになった

ユーザーがページをそっ閉じしても
二時間も忠犬の如く処理し続けるDBのエンジン

77NAME IS NULL2017/12/11(月) 02:46:23.58ID:???
MySQLってGPLなんだな・・・

78NAME IS NULL2017/12/12(火) 00:20:27.50ID:???
正確にはデュアルライセンス。
GPLか独自ライセンスの二択。

79NAME IS NULL2017/12/14(木) 00:37:12.78ID:???
innodbが壊れたのでinnodb_force_recovery = 1で修復したけど
データが失われていないかどうかが気になる
壊れてたのはインデックスだけなのか?
データが消えてたらやばいよね

80NAME IS NULL2017/12/18(月) 00:37:06.65ID:???
innodbが壊れる環境自体がヤバい気もする。
システムとかハードウェアとか運用とか。

まあ、うちはそういう目にあったことがないから。

81NAME IS NULL2017/12/18(月) 21:09:25.59ID:???
>innodbが壊れる環境

メモリが足りないのでスワップが発生しまくりでそこに負荷が生じた…とか?

82NAME IS NULL2017/12/29(金) 11:05:31.92ID:dtNZwIie
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

NVRTDIY5WF

83NAME IS NULL2018/01/01(月) 22:16:22.06ID:???
utf8mb4でもINSERTできない文字があるのですが、どのようにすればINSERTできるようになりますか?

例えば
?( 'ω' )?

84NAME IS NULL2018/01/01(月) 22:23:12.86ID:???
文字化けしたのでリンクはります
下のページにでてくる顔文字の左右の文字?記号?です

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14167096474

85NAME IS NULL2018/01/01(月) 23:23:09.91ID:???
insert into tt value ('\\\\?( ''ω'' )? ////');

86NAME IS NULL2018/01/01(月) 23:24:39.56ID:???
文字化けしているけど、
目の所のシングルコーテーションを二つにすれば上手く行きそう

87NAME IS NULL2018/01/01(月) 23:49:53.28ID:???
あ、そういうことですか。。。
すいません、初心者なもので
ありがとうございます
もうすこしがんばってみます

88NAME IS NULL2018/01/05(金) 22:07:11.67ID:???
MySQLのデータベースをWordPressで使っています。
Web上のレンタルサーバに置いているWordPressのミラーをローカルなサーバ上に作っています。
ただ、データベースの同期の方法がわからず、定期的に丸ごとコピーしていて、非常に時間がかかります。
変更のあった部分だけをミラーリングする方法について、
何かヒントや参考になるサイトをご紹介いただけないでしょうか。
よろしくお願いします。

89NAME IS NULL2018/01/06(土) 00:12:58.08ID:???
>>88
丸ごととは?
ファイルコピー?mysqldump?

90882018/01/06(土) 00:20:57.52ID:???
>>89
ありがとうございます。
mysqldumpそのものを知らなかった、というレベルでして…。
日付指定のバックアップ、リストアができるんでしょうか?

91NAME IS NULL2018/01/06(土) 02:38:33.79ID:???
cronで吐かせるしかないからWPスレへどうぞ

92NAME IS NULL2018/02/09(金) 16:12:34.84ID:QcCNqhyV
素朴な疑問ですが、MySQLのSET型は、
1つのカラムにカンマ区切りでデータを格納できます。

しかし、カンマ区切りでデータを格納するのはバッドノウハウだと
データベース関連の書籍などで表示されています。
どうしてSET型があるのでしょうか?

93NAME IS NULL2018/02/09(金) 19:32:45.76ID:???
理想だけでは食っていけない

94NAME IS NULL2018/02/09(金) 19:58:49.60ID:symdYl6j
>>92
無能な著者が覚えたてのバッドノウハウという単語を使いたかっただけだから気にすんな
あとその本は自治体の古紙回収にだせば再生紙として価値があたえられるからオススメする

95NAME IS NULL2018/02/10(土) 13:11:41.37ID:???
>>92
その本は、MySQL限定ではなく、データベース一般についてだったのでは?

一般論としては、複数の値の記録にカンマ区切りテキストは使うな、正規化して別テーブルに割れ、となるはず。

MySQLには、SETとかENUMとかC言語っぽい特殊な型がある。便利だったり効率的だったりするので、MySQLべったりでよければ検討するべき。

96NAME IS NULL2018/02/11(日) 00:34:10.26ID:UNyAzKgh
いくらバカがマジョリティーだからといって
バカ向けの戒めを一般論とうそぶくのは図に乗り過ぎだと思うよ

97NAME IS NULL2018/02/11(日) 02:00:50.43ID:???
まぁ何でもメリットとデメリットを比較検討した上で使う分には問題ない
アンチパターンってのは何も考えずにやるのは止めとけってこと

98NAME IS NULL2018/02/11(日) 13:38:47.77ID:???
>>96
> バカ向けの戒めを一般論とうそぶく
意味不明。
何が言いたいのか?

99NAME IS NULL2018/02/11(日) 15:13:31.90ID:UNyAzKgh
>>98
何か裏の意味があるんじゃないかとか気になっちゃってるの?
例えばキミがバカだとか?
まあそれは俺には否定できないけどw
安心しな>>96に書いてある通りだよw

100NAME IS NULL2018/02/11(日) 17:05:51.69ID:???
なお意味不明。
おまえがバカであることはわかったので、会話終了。

101NAME IS NULL2018/02/11(日) 17:50:40.33ID:UNyAzKgh
>>100
あらそうおめでとう
また一つ勘違いが増えたねw

102NAME IS NULL2018/02/14(水) 13:24:20.43ID:???
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆

103NAME IS NULL2018/04/04(水) 13:25:37.90ID:???
MysqlがすぐおちるのですがMariaDBにすれば改善されるのでしょうか?

よく出るエラーメッセージはこんなやつです。
mysqli_set_charset(): Error executing query in DBのURL

MariaDBはMysqlに比べてどのぐらい優れているのかもわからないので教えていただければ幸いです。

104NAME IS NULL2018/04/04(水) 13:26:46.04ID:???
MysqlがすぐおちるのですがMariaDBにすれば改善されるのでしょうか?

よく出るエラーメッセージはこんなやつです。
mysqli_set_charset(): Error executing query in DBのURL

MariaDBはMysqlに比べてどのぐらい優れているのかもわからないので教えていただければ幸いです。

105NAME IS NULL2018/04/04(水) 16:19:47.28ID:???
黙ってプログラミングやめろ

106NAME IS NULL2018/04/04(水) 21:28:12.87ID:jrbAzYZz
>>104
設定がおかしいからだと
どういう設定しているか詳細を晒してみると良いかも

107NAME IS NULL2018/04/05(木) 01:41:41.55ID:l3AE4+ue
エラーが出るから他のRDBMSに乗り換えるという発想が大胆!

108NAME IS NULL2018/04/23(月) 22:23:31.79ID:nKpwF7rJ
8.0は性能二倍だって
MariaDBいらなくね?

MySQL 8.0正式版がリリース。性能が最大で2倍、JSONデータや地理情報などサポート。ロールによるユーザー権限の管理も可能に
http://www.publickey1.jp/blog/18/mysql_802json.html

109NAME IS NULL2018/04/24(火) 05:12:07.24ID:???
>ロールによるユーザー権限の管理も可能に

これが出来るようになるのか。

110NAME IS NULL2018/04/24(火) 12:35:15.85ID:7E4WXijX
【マイトLーヤと不正義】 テロリストが天国を求めるのは、中東が地獄だから、犯人は誰か、G7の国々
http://rosie.5ch.net/test/read.cgi/liveplus/1524536573/l50

111NAME IS NULL2018/05/10(木) 12:03:19.38ID:???
mysql8とmariadb
どんどん差が開くな

112NAME IS NULL2018/05/10(木) 19:51:31.54ID:???
MySQLは、コミュニティ版でもスレッドプールが使えるようになった?

113NAME IS NULL2018/05/12(土) 07:22:25.90ID:???
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/

114NAME IS NULL2018/05/12(土) 21:49:10.91ID:???
チューニングって、どのくらいやってる?

115NAME IS NULL2018/05/16(水) 15:27:03.17ID:ol9m4woT
varcharの文字列の途中にタブコード(\t : 0x09)を入れたいのですけど、
例えば、'aaa\tbbb'というふうにタブコードを入れて、
読みだしてみたら、'aaa bbb'というふうにタブコードが2つの半角スペースに
置き換わっているような気がします。
タブコードを文字列の間に入れられないんでしょうか?

ちなみにタブコードで区切られたvarcharっをキーにして
利用するつもりです。

116NAME IS NULL2018/05/16(水) 19:42:47.03ID:ol9m4woT
自己レスです。
文字列のなかにタブコードがあっても
全く同じように、普通に処理できました。
お騒がせしました。

117NAME IS NULL2018/05/18(金) 06:05:59.48ID:???
https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html
MySQLの公式リファレンスは一部和訳されてるけど、この和訳って正しいの?

例えば
The mysqldump client utility performs logical backups,

mysqldump クライアントは、論理バックアップ を実行するユーティリティーで、

こういう翻訳になるのはisが入っているときだけだよね?

118NAME IS NULL2018/05/18(金) 08:19:37.74ID:???
>>117
そういう機械翻訳じみた発想は捨てろ
一般動詞だから絶対こうなるとかないから

119NAME IS NULL2018/05/18(金) 08:34:58.35ID:???
そんなにおかしい和訳だとは思わないが。

120NAME IS NULL2018/05/18(金) 09:12:28.23ID:???
>>117
www

121NAME IS NULL2018/05/18(金) 18:17:27.24ID:???
>>117
信用できないなら原文だけ読んでたほうが幸せになれるよ

122NAME IS NULL2018/05/19(土) 12:23:22.88ID:???
>>118
mysqldump クライアントユーティリティーは論理バックアップ を実行し、

普通に翻訳するとこうなると思うんだけど>>117の和訳は何か意図があるの?

123NAME IS NULL2018/05/19(土) 14:35:18.88ID:???
>>122
どっちも同じ意味だろ?翻訳ってそういうもんだとしか言えん

124NAME IS NULL2018/05/19(土) 14:56:50.44ID:???
翻訳者に自由はないのか?
せっかく訳してくれてるのに。

そこまでいうなら、おまえが正確無比な翻訳を公開してもいいよ。

125NAME IS NULL2018/05/19(土) 16:58:08.73ID:???
>>122
日本語とえいごが一対一対応する訳ねぇだろ

126NAME IS NULL2018/05/19(土) 18:27:50.68ID:a79jEGWC
技術系の書籍の日本語訳に文句を言って自分の無能を棚にあげている奴は多いが
その中の決して少くない数の人々は>>122のようなガチアスペだという事実

127NAME IS NULL2018/05/19(土) 20:58:48.15ID:R16XYZ3x
Windows10で、MySQL5.6.40を使ってます。
Pythonから利用しています。

連続して10万件ほどデータを書き込みしたいのですけど、
1つのデータをinsertしたらcommitしたほうがいいのでしょうか?
それとも10万件insertしたあとで1回だけcommitしたほうがいいのでしょうか?

128NAME IS NULL2018/05/19(土) 22:24:08.70ID:???
その10万件のデータが全部Insertされないと整合性がとれないなら、最後に1回Commitで医院で内科医

129NAME IS NULL2018/05/19(土) 22:49:27.66ID:???
適度に分割するのがいいと思う。
あんまりメモリもディスクもムダに使わないように。

130NAME IS NULL2018/05/19(土) 23:06:35.14ID:???
あんまり詳しくないんだけど、commitするってことはトランザクション貼るんだよね?
トランザクション貼る必要があったら分割できないし、途中で別処理が乱入してきてデータ不整合になることがないってわかってるならそもそもトランザクション貼らないでinsertすれば良くない?

131NAME IS NULL2018/05/19(土) 23:33:45.59ID:R16XYZ3x
>>128
>>129
>>130
コメントありがとうございます。
10万件が揃ってないと次の処理に行けないので、
全くわかってないんですけど、beginでロックして
トランザクションにして最後にcommitしてみます。

実行時にディスクやメモリをチェックしてみて
かなり消費しているようでしたら、1万件ずつとかで
commitしてみます。

132NAME IS NULL2018/05/20(日) 00:57:54.21ID:???
処理に順番があるだけなら、外部でロックして、後続の処理を待たせることも考えたら。
10万レコードを1トランザクションでコミットしなければいけないことなんかそうそうないんじゃないかとも思うので。

133NAME IS NULL2018/05/20(日) 01:03:32.50ID:???
>>132
これが普通だよな
不要なのにトランザクション使ってるだけならパフォーマンス落ちるだけですむけど、一万件でコミットして次のトランザクション入るまでに割り込まれたらマズいなら作りが悪い

134NAME IS NULL2018/05/20(日) 14:47:26.65ID:WSY7vKF/
>>132
>>133
ありがとうございます。
実は大きな勘違いがありまして10万件はサンプルであって、
本番用は4000万件が29ファイルの12億件ぐらいあることがわかりました。

1ファイルの4000万件をMySQLに書き込んでみたら4000万件ちょっとで、
2時間かかりましたけど、14Gほどディスク容量を使ってしまって、
Cドライブの残り200Gには入りそうにないことがわかってきまして、
ちょっと呆然としてます。

どうしたらいいか、ちょっと落ち着いて考えてみます。

135NAME IS NULL2018/05/20(日) 15:19:31.36ID:???
innodb_file_format = Barracuda
を指定して節約するとか
ま、そんな量じゃ小手先だろなw

136NAME IS NULL2018/05/20(日) 15:30:13.98ID:???
4T位のHDDを4台使ったRAIDで増設しよう
今時1万くらいで買える

137NAME IS NULL2018/05/20(日) 16:33:21.75ID:WSY7vKF/
>>135
>>136
ありがとうございます。

CドライブがSSDで速いのでいいかなと思っているのですけど、
外付けのハードディスクを使わざるを得ないと思っています。

そこで簡単に外付け(Eドライブ)に移動する方法ですけど、
一度、MySQLを停止しておいて、my.iniのdatadirを指定して、
そこに現在のCドライブのmysql\dataフォルダをコピーしてやって
再起動すれば、そのまま使えるのでしょうか?

138NAME IS NULL2018/05/20(日) 18:17:26.61ID:???
>>137
135だけど
Barracudaの指定後それだけでは駄目でテーブル定義に
ROW_FORMAT=COMPRESSEDを付け加えないといけないから、そこら辺はいろんな
サイトで確認してくれ
くれぐれも慎重に

139NAME IS NULL2018/05/20(日) 19:27:27.29ID:???
>>137
問題ない。

しかし、何億件て。w
しかるべき筋に業務として発注したほうがいいんじゃないか。

自前でやっていいのなら、そもそもその全レコードが必要なのかを考えるところからだろ。
サマリ処理ではいかんのかとか。

140NAME IS NULL2018/05/20(日) 20:00:42.13ID:WSY7vKF/
>>138
>>139
ありがとうございます。
データを調べていたら、不必要なものが15%ぐらいあるようですし、
重複したデータがあって、それは件数さえわかればいいので、
countで件数数えてひとつにまとめます。

他のソフトの結果と連動して使うので、
サマリ処理だけでは済みそうにないんです。

141NAME IS NULL2018/05/20(日) 20:27:59.02ID:???
それは理由としてまだあやしい。
ま、ここで正確に回答する必要なんかないんだけど。w

とにかく、そんなに簡単な案件ではなさそうなので、あきらめることもあわせてよーく考えるべき。

全レコードが記録されたデータファイルだけが目的なら別だけど、そうでなければ、時間をかけてつくったのにまともに検索できないデータベースができてしまう可能性も高い。
データ構造とかインデックスとかチューニングとか、いろいろあるからね。

142NAME IS NULL2018/05/20(日) 20:45:20.08ID:WSY7vKF/
>>141
ご指摘ありがとうございます。まさにそのとおりです。
まともに検索できるのかとか心配事は山ほどあります。
ただ、検索するときにはヒット件数が多くありませんので、
なんとかならないかなーと思っています。

とりあえず、やれるところまでやってみようと思います。

143NAME IS NULL2018/05/20(日) 21:12:44.83ID:WSY7vKF/
1Tの空きのあるEドライブにdataを移動して正常に起動できました。

最初、うまく起動できなかったのですけど、
フォルダのプロパティのnetwork serviceの
フルコントロール権限を与えないといけない、
というのをググって見つけて、そのとおりしたらうまくいきました!

新着レスの表示
レスを投稿する