読者です 読者をやめる 読者になる 読者になる

日に日に分からんことが増えていく…

プログラマー初心者としての日々を学んでいることを記録していく。

マルチインデックスという考え方

SQL

MySQLで大量データに対してクエリを投げる時、WHERE配下のカラム名にマルチインデックスを適応すればサクサクいく。 これ関してはEXPLAIN句で確認すればいい。 mysql> ALTER TABLE landing_pages ADD INDEX index_name(user_id, created) qiita.com phpjavas…

処理中のプロセスをバックグラウンドで回す

「Ctr + z」で一時停止をし、jobsで確認し、bg %~で対応する。 $ zcat db.sql.gz | mysql -u root db ^Z [1]+ 停止 zcat db.sql.gz | mysql -u root db $ jobs [1]+ 停止 zcat db.sql.gz | mysql -u root db $ bg %1 [1]+ zcat db.sql.gz | mysql -u root db…

BOLB/TEXTでインデックスを貼る。

SQL

最初の100文字のみインデックスとして使うみたいな指定が必要。 ERROR 1170 (42000): BLOB/TEXT column 'text_field' used in key specification without a key length create index new_index on table_name(text_field(100)); www.deftrash.com

MySQL5.6から5.7に変更する際に起こったエラーについて

vagrantsで今までMySQL5.6を使ってたが、速度が3倍になるということで5.7に変更。 はじめ以下の手順で確かめていた。うまくインストールできない。 # エラーの出る手順 [root # ] yum remove mariadb-libs [root # ] rm -rf /var/lib/mysql/ [root # ] yum l…

MYSQLを勉強するときに便利なサイト

SQL

www.dbonline.jp

references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use themが出た

SQL

このメッセージが出た場合は最初のcreatetableの際に変な設定が入っていることがある。 具体的に言うと後で全部の権限をuserに付与しても中のテーブルは特定のユーザしか見れなくなっている。 dumpしてloadした後にこのようなメッセージが出れば、以下の動作…

ミドルウェアとは何か

ミドルウェアって何って思って検索した。DBサーバとして動かすときに使うMySQLや Webサーバとして使うapacheなどらしい。 qiita.com

Mysqlのデータを変更する(MySQL-python==1.2.5)

データベースのqueryを整形する。データベースに突っ込む前に"をつけるのが必要なのとないのがあって訳わからん。 ついでにutf-8に変換しないといけないのと、conn.commit()しないとinsertが反映されないということでばりつまづいた。 # -*- coding: utf-8 -…

SQLとSolrの情報を削除する方法

簡単な処理をバッチ化した。MySQLにアクセスする方法がわかったことが大きな収穫。 # -*- coding: utf-8 -*- # vim:tabstop=4:shiftwidth=4:expandtab import sys import MySQLdb import json import urllib2 import argparse from datetime import datetime…

インデックスを理解する。

SQL

MySQLはインデックスを使うとうまくチューニングできるらしい。 なんかいいサイトないかと探していると発見。 qiita.com リンク先に一つずつアクセスして行って、学んでいこうとしてる。

mysqldump: [Warning] unknown variable 'loose-local-infile=1'について

SQL

以下のERROR、、ではなくてWarningが出たので、対処した。 mysqldump: [Warning] unknown variable 'loose-local-infile=1' 以下のサイトを読むと、これは[Error] unknown variableを出さないための裏技っぽい。 んなこと知らんがな。どうなっとんじゃ。 gih…

課題もらっちゃった。。

SQL

これについて解いていこうと思っている。 何か処理したレコード群を、既存のテーブルにon duplicateでinsertする課題。 1. バルクinsert 2. tsvに一旦出力して、ローカルload dataとリモートload data 3. tsvに一旦出力して、csv engineでtableに見せかけて…

SQLの集約化した後の合計値

SQL

こんな感じでまとめられる。 SELECT sum(conversions.value)*count(DISTINCT conversions.id)/count(*) as conversion_value FROM links LEFT OUTER JOIN stats ON links.id = stats.parent_id LEFT OUTER JOIN conversions ON links.id = conversions.link_…

MySQLのDATETIMEにNULLが入力されない場合について

csvをインポートしてmysqlのtableに入れた際、エラーが出た。 どうもsql_mode = STRICT_ALL_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATEの設定がかかっているらしい。 テストデータの際はDATETIMEだけ適当な日付を入力すればいいのかも。 fanblogs.jp あと、新たに…

DictCursorについて(MySQL-python)

DictCursorはCursorと違って、dictをreturnするらしい。 なので、 import MySQLdb.cursors from django.db import connection conn = connection.connection cur = conn.cursor(MySQLdb.cursors.DictCursor) の場合は、DictCursorを引き継いだdjangoのcursor…

djangoのローカル開発環境を作るためのsqlのDB登録方法

ただ、utf-8で行うだけ。create tableを本番と合わしたいなら確認すればいい。 mysql> show variables like "chara%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------…

SQLのdump,loadの話(付録:データ型)

SQL

dumpとはメモリやDISKのデータをファイル形式に出力することらしい。 # dump $ mysqldump -u username -ppassword database_name | gzip > dumpfile.sql.gz # load $ zcat dumpfile.sql.gz | mysql -u username -ppassword database_name qiita.com あとはデ…

git cloneのブランチ指定とSQL集約とline_profiler(バラバラ)

git cloneのブランチ指定 $ git clone -b ブランチ名 https://リポジトリのアドレス $ git commit -a -m "任意のコメント" //コミット (-aオプションは変更を自動検出してくれる) $ git branch //今いるブランチを確認 $ git checkout ブランチ名 *ブランチ…

SQLの複製

SQL

sqldump→CREATE構文→ファイル反映 この流れ

改行の削除とテーブルの結合(SQL)

SQL

改行の削除(SQL) UPDATE TAB_A SET COL01 = REPLACE(REPLACE(COL01 , CHAR(13), ""), CHAR(10) , "") ; テーブルの結合 SELECT * FROM TAB_A INNER JOIN TAB_B ON TAB_B.columnb = TAB_A.columna;

signedとtsvについて

SQL

ただ、わからなかったことを書いていく signed データ型の修飾子らしい。intやlongの上に省略されているが、signed int となることで、 符号つき…負の値も扱えるということらしい。 tsv これはcsvがカンマだとしたら、tsvはtabで区切られているファイルらし…

LibreOfficeやSequel

SQL

GUIにて管理できる。