タグ

sqlに関するlesamoureusesのブックマーク (18)

  • Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ

    この記事はエムスリー Advent Calendar 2022の30日目の記事です。 前日は id:kijuky による チームメンバーのGoogleカレンダーの休暇予定一覧をスプレッドシート+GASで作った でした。 AI機械学習チームの北川(@kitagry)です。 今回はMySQLへのインサートを20倍以上高速化した話について書きます。 仕事をちゃんとしてるか見張る TL; DR はじめに 今回のテーブル バイナリログを無効化する 追試 LOAD DATA INFILE 追試 テーブルの正規化 インデックスを一時的に剥がす まとめ We are hiring!! TL; DR バイナリログをオフにする LOAD DATA INFILEを使う インデックスを一時的に消す はじめに AI機械学習チームではサイトトップからアプリに至るまで多くの推薦システムがあります。 そこでは推薦ロ

    Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ
    lesamoureuses
    lesamoureuses 2023/01/05
    “ここで10倍以上早くなったことになります。 contentsテーブルへのインサートについては数十秒で終わっていたので、target_userテーブルへ2時間かかっていたということになります”
  • SELECT文で本番環境を落としたお話 - Qiita

    (この記事は 地平線に行く とのマルチポストです) 番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ

    SELECT文で本番環境を落としたお話 - Qiita
    lesamoureuses
    lesamoureuses 2019/12/26
    へー “この SQL には、ロックモードの指定がありません。この場合、PostgreSQL は ACCESS EXCLUSIVE ロックが指定されたものとみなされます”
  • Keyboard Shortcuts

    Get the most out of Sequel Pro by remembering the following keyboard shortcuts. Main Tabs Table Structure

    lesamoureuses
    lesamoureuses 2018/06/01
    結果を列名ごとコピーする方法を覚えたぞ “Copy selected row(s) with column names ”
  • #ronsakucasual DBの論理削除についてひたすら共有する 論理削除 Casual Talks #1 にいってきたまとめ - もぐめぽろぐ

    名前 とりあえず削除フラグ 目的 エンドユーザから見るとデータがないことにしたいけど、実際のデータは消したくない 削除したデータを検索したい データを消さずにログに残したい 誤った操作をなかったことにしたい、直ぐに元に戻したい アンチパターン 例えばis_deletedというカラムがtrueの場合は削除されているとみなす メリット update文ならデータが簡単に元に戻せる気がするのでなんとなく安心 -> 俺のupdate文でなんとかなる!! 起こること SELECTするときには常にWHERE句が追加で必要になり、コードが削除フラグだらけになる 全員テーブル設計に精通してるわけではないので、テーブルによって削除フラグの有無があったりした場合、認識の齟齬を生みやすい 例えばrubyでdefault_scopeを用いて、よかれとおもってコードレベルでデフォルトを変えたらバグがたくさん出てくる

    #ronsakucasual DBの論理削除についてひたすら共有する 論理削除 Casual Talks #1 にいってきたまとめ - もぐめぽろぐ
  • SQLアンチパターン 幻の第26章「とりあえず削除フラグ」

    SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902Read less

    SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
    lesamoureuses
    lesamoureuses 2015/09/01
    これはわかる “「とりあえず」が思考停止 ”
  • VOYAGE GROUP エンジニアブログ : SQLアンチパターンのススメ

    2014年07月10日10:32 カテゴリ勉強会DB SQLアンチパターンのススメ こんにちはシステム部 三浦@hironomiuです。 VOYAGE GROUPでは様々な社内勉強会を開催しているのですが今年の1月からoreillyから出版されているSQLアンチパターン勉強会を三浦@hironomiuが開催していました。 の内容は名前の通りSQLRDBMSまで広げた)を扱う際の「べからず」集です。なかなかの良書なのでまだお読みでない方は一読をおススメします! 勉強会の進め方ですが 週1時間1回あたり2章~3章のペースで進めるベテランと若手を同じぐらいの人数(合計で最大8人)にて進める輪読ではなく三浦@hironomiuがメンターとし進め、適時参加者が経験談を語る形で進めるのような形で進めました。来ですと1章1週でも良い内容なのですが全25章、25週はモチベーションを維持することに不

    VOYAGE GROUP エンジニアブログ : SQLアンチパターンのススメ
    lesamoureuses
    lesamoureuses 2014/07/10
    1周目のときに参加したけど「本にはこう書いてあるけど〜」みたいなアンチパターンアンチパターン話もあって面白かった
  • The JSON SQL Injection Vulnerability

    tl;dr Many SQL query builders written in Perl do not provide mitigation against JSON SQL injection vulnerability. Developers should not forget to either type-check the input values taken from JSON (or any other hierarchical data structure) before passing them to the query builders, or should better consider migrating to query builders that provide API immune to such vulnerability. Note: 問題の発見者による日

    lesamoureuses
    lesamoureuses 2014/07/01
    stringならいいけどobject(?)が来るとそのまま解釈して演算子扱いされるのか “If the supplied input is {"name": {"!=", ""}}, then the query condition becomes name!='' and the database will return all rows with non-empty names.”
  • ORDER BY狙いのキーが何故速いか - 時計を壊せ

    どの最適化が効くんや…とググった。 以前も調べた気がしたが思いだせず、ひたすらググる羽目になったので、 反省してブログに残す。ふつーにmysqlのdocumentに書いてあった。 http://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html If you use LIMIT row_count with ORDER BY, MySQL ends the sorting as soon as it has found the first row_count rows of the sorted result, rather than sorting the entire result. If ordering is done by using an index, this is very fast. バージョン古いけど日語のほ

    ORDER BY狙いのキーが何故速いか - 時計を壊せ
    lesamoureuses
    lesamoureuses 2014/03/24
    かっこいい “this is very fast. と言い切るあたり、かっこいいとおもう。”
  • 「プリペアードクエリが基本だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」

    Kazuho Oku @kazuho ですよね。基プリペアードクエリで良いということ > 「エスケープ処理を省略できるAPIが用意されている場合が〜これらのAPIの利用を推奨して構わない〜その良い例がプリペアードクエリ」 / “IPAの「安全なSQLの呼び出し方」が…” http://t.co/tWIraJ0p1T 2013-12-09 18:21:26 Kazuho Oku @kazuho 「プリペアードクエリが基だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」なら誰も異論はないんじゃないの 2013-12-09 18:22:38

    「プリペアードクエリが基本だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」
    lesamoureuses
    lesamoureuses 2013/12/11
    今までの経験ではプリペアードだけで済んでたのでこれからもしエスケープを使うような場面になったらもう一回読んでみます
  • 寒い冬の過ごし方。 #vgadvent2013 〜アイスクリーム統計学をSQLで書いてみた〜

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    寒い冬の過ごし方。 #vgadvent2013 〜アイスクリーム統計学をSQLで書いてみた〜
    lesamoureuses
    lesamoureuses 2013/12/05
    “こんな寒い冬はこたつに入ってアイスクリームを食べるのが一番です” 以降はスクロールのスピード早くなった
  • Batch and Stream processing with SQL

    1. Batch and Stream processing with SQL 2013/11/07 Cloudera World Tokyo 2013 TAGOMORI Satoshi @tagomoris LINE Corp. 13年11月7日木曜日

    Batch and Stream processing with SQL
    lesamoureuses
    lesamoureuses 2013/11/23
    iPhoneで見てたので18,19のスライドをまじまじと見て気持ち悪くなるというか不安になるというかそういう感じを味わった
  • sqlのwhere in って、複数条件(カラム)を指定できるんですね - end0tknr's kipple - web写経開発

    http://blog.fusic.co.jp/archives/1765 ↑postgresの記事ですが、mysqlでも同様に実行できました。 SELECT * FROM test_table WHERE (col,co2) IN -- 複数のカラムを指定 (SELECT subcol1,subcol2 -- 副問いの戻り値も複数のカラムを指定 FROM subtable WHERE id > 10 ) 知らなかったなんて、お恥ずかしい ※手元にあるmysqlはv.5.1.61ですが、v.4.1から使えるらしい sqlの仕様として、mysqlのdocでは分かりませんでしたが、sql99から利用可らしい http://dev.mysql.com/doc/refman/5.1/ja/comparison-operators.html ↑では、分かりませんでしたが、次のurlよれば、sql99

    sqlのwhere in って、複数条件(カラム)を指定できるんですね - end0tknr's kipple - web写経開発
    lesamoureuses
    lesamoureuses 2013/11/13
    知らなかったー!
  • MySQLのINSERT/UPDATE時におこる不整合対策 - LukeSilvia’s diary

    先日、作っているアプリケーションにバグが発生しました。バグの内容は次のようなものでした。 同時に存在してはいけないはずのデータが、DB に存在する 整合性のチェックはアプリケーションレベルで行っている 一意制約のような単純なものではないので、アプリケーションレベルで実装 整合性のチェックロジックは正しい これに対し、バグは次のような状況で発生したと仮説を立てました。 ユーザがレコードを一括登録しようとする 登録ボタンを押したがレスポンスが遅い この間、整合性チェックが走っている ユーザはもう一度登録ボタンを押した 2回目の登録の整合性チェックが走り始める 1回目の登録の整合性チェックが完了、INSERTが始まる 2回目の登録の整合性チェックが完了、INSERTが始まる 2回目の登録の整合性チェックの間、DBにはまだ1回目の登録によるINSERTが実行されていないので、チェックを通過した 結

    MySQLのINSERT/UPDATE時におこる不整合対策 - LukeSilvia’s diary
    lesamoureuses
    lesamoureuses 2013/02/27
    楽観的ロックとselect for updateをスッカリ忘れてたので見直し
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    lesamoureuses
    lesamoureuses 2009/08/17
    >DBI_PROFILE=2 hoge.pl
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    lesamoureuses
    lesamoureuses 2008/11/17
    >ここで紹介するのは、なるべく DBMS 非依存で、SQL を見直すだけで手軽にできる方法に限りました。
  • はびこる「インジェクション系」のぜい弱性:ITpro

    Webアプリケーションのぜい弱性を示す用語として,クロスサイト・スクリプティング,SQLインジェクションといった言葉の認知度はかなり高まった。ブログ・サイトなどでも活発に議論されている。しかし,Webサイトの実態はどうだろうか。 筆者の所属する京セラコミュニケーションシステムでは昨年(2006年),ぜい弱性診断を実施したWebサイトの統計情報「2007年版 Webアプリケーションぜい弱性傾向」を発表した。これによると,パソコン向けWebサイトの48%に致命的なぜい弱性が見つかった。このうちワースト1位はクロスサイト・スクリプティングで56%,2位はSQLインジェクションで11%と,どちらもインジェクション(注入)系のぜい弱性。これらのぜい弱性を持った危険なサイトは依然として存在するのが実情である。 これらWebアプリケーションのぜい弱性があまりなくならない理由はいくつかあるが,以前は「ぜい

    はびこる「インジェクション系」のぜい弱性:ITpro
    lesamoureuses
    lesamoureuses 2007/04/11
    こういうのやらないとなんだけどやってないや
  • sixnine.net

    sixnine.net 2024 著作権. 不許複製 プライバシーポリシー

    lesamoureuses
    lesamoureuses 2006/12/21
    emacsでsqlいじれるらしい。もうemacs使ってないけどまた使ってみようかな
  • 1