March 23, 2010
Posted by funa : 11:38 PM | Column | Comment (0) | Trackback (0)
March 15, 2010
バイクTIPS
//フォークの油面調整
1)トップブリッジのアッパの上側ボルトを緩める
2)フォークをタイダウンで軽く保持する感じに
3)フォークのキャップを緩める
4)タイダウンでフォークを縮めてキャップを浮かせ隙間を作る
5)フォークオイルを入れる
//フロントホイールのセンター出し
1)トップブリッジのアッパとボトムのボルト、ステムナットを緩め、目方でセンターを出す
2)ボトムのボルトをほぼ緩める、アッパのボルトをボトミングでもフォークが動かない程度に緩める
3)ボトミングさせてセンターを出す
4)ボトムのボルトを締める
5)アッパのボルトを一応緩めてネジれを取ったあと締める
//タイヤのバランス
黄マーク:軽点バランスマーク
赤マーク:高剛性点。カーカスが重なっている、重い
1)リムロックと黄マークを合わせる
2)リムロックと赤マークを対極にする
Posted by funa : 01:18 PM | Gadget | Comment (0) | Trackback (0)
March 11, 2010
Ora Ora Ora Ora Oraの続きは、MySQLで。
■インデックス
カーディナリティ度が低いとは、カラムの値の種類がレコード数に比べて少ないことをあらわす。性別や血液型など
カーディナリティ度が高いとは、カラムの値の種類がレコード数に比べて多いことをあらわす。身長や体重など
インデックスの付け方 カーディナリティ(一意な値の個数)が高いものに付ける
create index index_name on table(column);
show index from テーブル名;
インデックスを使用して検索しているかの確認
explain select * from table where インデックスを持つカラム名="値";
■トランザクション
InnoDBのときトランザクション可能、Commitしない場合Rollbackされる
$query = 'START TRANSACTION';
$result = mysql_query ($query);
$query = 'INSERT INTO test_rollback (stock_no) VALUE ('あ')';
$result = mysql_query ($query);
$query = 'COMMIT';
//$result = mysql_query ($query);
■ユニオン
--Viewを作るか、Mergeテーブルを作るか
create view viewX(varx,vary,varz)
as
SELECT * FROM table1
union
select * FROM table2
CREATE TABLE total (
a INT NOT NULL AUTO_INCREMENT,
message CHAR(20), KEY(a)
)TYPE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
■月間、日付について
月間のSQL betweenの方が処理は早い
reg_date >= '2010-02-01' AND reg_date < '2010-3-01'
reg_date between 2010-02-01 and 2010-02-28 23:59:59
→これだと59から00の1秒が抜ける?
reg_dateがdate型であれば
between reg_data '2010-02-01' and '2010-02-28'で十分
datetime型なら
between reg_data '2010-02-01 00:00:00' and '2010-02-28 23:59:59'で十分
MySQLの最適化
http://slashdot.jp/journal.pl?op=display&uid=4&id=26710
http://txqz.net/blog/2006/12/13/0943
MySQLマイスターに学べ! 即効クエリチューニング 記事一覧
SQL実行計画の疑問解決には「とりあえずEXPLAIN」しよう
Posted by funa : 12:25 AM | Web | Comment (0) | Trackback (0)
March 9, 2010
■結局どう設定する?
作成時:CREATE DATABASE aaa DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
アプリ:SET NAMES utf8mb4; あるいは mysql_set_charset('utf8mb4');
↑
DB作成時とアプリ使用時でutf8かutf8mb4で最低限統一する
utf8mb4とは文字コードの一種で、UTF8で4バイト文字を扱う事が出来るもの
絵文字や中国漢字、日本語でも特殊漢字などは4バイトが含まれている
MySQLでは5.5からこのutf8mb4に対応している
utfmb3は3バイト、MySQLは3バイトは非推奨
照合順序 は utf8_general_ci >新バージョンで変わっているので要確認
_ci はcase insensitive、_cs は case sensitive、_bin はバイナリ
_ci がパフォーマンスがいい、
SET NAMES より mysql_set_charsetがverによってはいい、またPDOが推奨されているが
https://techracho.bpsinc.jp/baba/2010_02_17/1133
https://www.php.net/manual/ja/function.mysql-set-charset.php
絵文字で上手くいかないと行が途切れる等があるらしい、utf8が良い?
作成時:CREATE DATABASE aaa DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
アプリ:SET NAMES utf8; あるいは mysql_set_charset('utf8');
-----------------------------------------
■DBのバックアップ(MySQLのダンプ)
バージョンでコマンドが違う場合がある、古いやつの場合↓
DB設定の文字コード、DBの運用文字コード、サーバOSの文字コード、SQLクライアントの文字コードの間で自動変換が掛かり面倒
http://kgbu.hateblo.jp/entry/20081226/1230259302
バイナリでダンプし、バイナリでインポートすると問題はない
しかしバイナリのバイトシーケンスが付与されるので気持ち悪い
Blobのような特殊なカラムがなく文字コードが統一されていればそれでやりたい(utf8)
https://ngyuki.hatenablog.com/entry/2018/06/21/220624
cp932: MS win/IBM/NEC98のSJIS、各社独自に拡張している、ほぼWin用
mysqldump -Q --host=192.168.1.2 --user=oreore --password=**** --default-character-set=binary name_db >$DBDUMP_FILE
-Qはquickオプション、通常はダンプ時に一気にテーブルデータをメモリへバッファしますがq指定で1行ごとに処理し大きなテーブルに有用
オプションはハイフン2つはフル表記で=で値を付与、ハイフン一つで短縮形でスペースを付けた上で値を付与
--host=host_name -h host_name
???mysqldump-4.0が通らない、mysqldumpバイナリ/utf8オプションも使えない
Putty(SSH)等で入り sh db_backup.sh で実行しエラーを見る、無変換だと出せるが文字コードが混合している
ps -aux あるいは ps aux でプロセスを見て、駄目なら殺す kill [pid]
phpmyadminで手動でエクスポート(無変換)で全テーブルを出し新DBにのせかえるしか
→それまでは念のため通常Backupに加えて手動で時々保存すれ
→MySQLadmin>エクスポート>テーブル選択(同じ文字コードのもの)>実行
ps -aux
kill pid
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
KEEPDAY=25
TODAY=`date +'%y%m%d'`
DBDUMP_FILE1=mysql.$TODAY
DBDUMP_FILE2=mysql_utf8.$TODAY
RMFILE1=mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
RMFILE2=mysql_utf8.`date -v -"$KEEPDAY"d +%y%m%d`.gz
HOME_DIR=/hamehame/
BACKUP_DIR=$HOME_DIR/db_backup
cd $BACKUP_DIR
mysqldump -Q --host=192.168.1.2 \
--user=oreore --password=**** --default-character-set=binary name_db >\
$DBDUMP_FILE1
gzip $DBDUMP_FILE1 >/dev/null 2>&1
if [ $? != 0 -o ! -e $DBDUMP_FILE1 ]; then
echo "SUCCESS! MAYBE!"
rm -f $RMFILE1
exit 0
fi
Bシェルの記事も
https://www.bangboo.com/cms/blog/page_97.html
-----------------------------------------
■2010-03-09投稿
Like句ではバイナリか正規表現の検討
MySQLのLIKE文による抽出で期待通りの検索結果を出してくれなかった。
「絵コンテ」でヒットするのに「コンテ」ではヒットしなかった。
(原因)
MySQL4.0以下では日本語は単なるバイナリ列と同程度の扱いだった。MySQL4.1以上では正式に多言語に対応したようである。EUC-JPでも問題が出にくいみたいだ。
1)LIKEで検索したいフィールドに「BINARY」を付加する
SELECT a FROM b LIKE BINARY 'ABC';
2)CREATE TABLE 時に varchar(255) BINARY と指定しておく
(簡単な回避方法)
3)バイナリが嫌ならLIKEの代わりにREGEXPを使う。これがオススメ
SELECT a FROM b WHERE target LIKE '%~%'
ではなくて、
SELECT a FROM b WHERE target REGEXP '~'
他には文字コードを明記しておいた方がよいかも
CREATE TABLE `tablename` (
`id` int(11) NOT NULL auto_increment,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-----------------------------------------
■2007-05-24投稿
HTML出力、PHP、MySQL、全部UTF-8
その時、??と文字化けが起こったぁぁ
//mySQLの文字コード
照合順序 : utf8_general_ci
//mysqlクライアント。コマンドラインからチェック
mysql> SHOW VARIABLES LIKE 'char%';
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
//phpソースコード・文字コード設定
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
//phpソースコード・PHP内部文字コードとクエリ文字コード設定
<?php //charactor code for php internal
mb_language("uni");
mb_internal_encoding("utf-8");
mb_http_input("auto");
mb_http_output("utf-8");
// database connection
if (!mysql_connect("localhost", "id", "pswd"))
{
die("Couldn't connect to MySQL");
}
if (!mysql_select_db("dbname"))
{
die("Couldn't connect to the database");
}
//charactor code for query
$sql = mysql_query("SET NAMES utf8");
$result = mysql_query($sql);
?>
Set Names文のクエリ発行がミソ。PHPで発行してみる
Posted by funa : 05:02 AM | Web | Comment (0) | Trackback (0)
March 1, 2010
■* 全称セレクタ
すべての要素
h3 * em { color: red }
■ 子孫セレクタ
孫やそれ以下の要素に対しても有効
h1 em { color: blue }
<h1>携帯電話、<i>特に<em>i-mode</em></i>の爆発的な普及について</h1>
em要素 は青く表示、樹構造内で h1要素 に入れ子になっている em要素 はすべて対象
■> 子セレクタ
ある要素の直接の子供要素だけ
body > p { line-height: 1.3pt }
<body>
<ul>
<li>
<p>適用外</p>
</li>
</ul>
<p>適用</p>
</body>
■+ 隣接セレクタ
兄弟関係の要素、ある要素より前に登場する要素を兄要素、後に登場する要素を弟要素
p + div { margin-top: 0.7em }
<p>段落です。</p>
<div>レイアウトコンテナです。</div>
<div>二つ目のレイアウトコンテナです。</div>
この宣言が適用されるのは、一つ目のdiv要素だけ
■[] 属性セレクタ
そこに書かれた属性を持つ要素にマッチします
p[class] { margin-top: 0.7em }
<p class="tomato>
class属性 がある p要素 にマッチします(この場合class属性値は何でも良い)。
img[align=left] { margin-left: 3em }
align属性 の値が left の img要素 にマッチ
table[class~=favorite] { margin: 0em 3em }
<table class="favorite second under">
class属性値の一覧にfavoriteという値を含むtable要素
span[lang|=en] { font-style: italic }
ハイフン(-)で区切られた属性値のリストに対応したセレクタです
<span lang="en-US">アメリカ英語</span>
<span lang="fr, en">フランス語のような英語のような。</span>
■, セレクタのグループ化
同じ宣言を持つ複数のセレクタをグループ化したもの
h1, h2, h3 { font-family: sans-serif }
■: フィルタ セレクタの状態を表す
:ルート要素とは最上位階層に位置する要素のことで、HTML文書では全体をマークアップしている がルート要素
:root p { color:#FF0000; }
:not(~)は、指定した条件と一致しない要素にスタイルシートを適用するためのセレクタだ
html:not(:target)
html:not(:only-child:only-child) p { color:#FF0000; }
html:not([lang*=""]) p { color:#FF0000; }
:first-child その要素内の初めの子のみ
:last-child その要素内の最後の子のみ
:nth-child() 任意の数字番目の子、oddなら奇数、evenなら偶数番目など
:nth-last-child()
:before その要素の前に何かを追加する
:after その要素の後ろに何かを追加する
.clearfix:after{
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
} /*IE7以外のモダンブラウザ向け*/
■. クラスセレクタ
class属性の値がwarningであるdiv要素にマッチ
DIV.warning { color:#FF0000; }
■# IDセレクタ
一意(ID型)属性の値がmyidであるp要素にマッチ
p#myid { color:#FF0000; }
======================
■疑似要素
セレクターに付与し要素の特定の部分にスタイル付けができる、CSS2文法では:だったがCSS3で::になったものも
疑似要素の例 (::first-letter, ::first-line, ::before, ::after etc.)
疑似クラスの例 (:link, :hover, :visited, ,:active, nth-child(n), nth-of-type(n), :not() etc.)
a::after {
content: "→";
}
Posted by funa : 01:29 AM | Web | Comment (0) | Trackback (0)
< March 2010 > | ||||||
Sun | Mon | Tue | Wed | Thi | Fri | Sat |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |