SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
18.
Norikra SQL
SELECT
COUNT(1, status like "5%")/COUNT(1)*100 AS rate_5xx,
COUNT(1, status like "4%")/COUNT(1)*100 AS rate_4xx,
COUNT(1, status like "3%")/COUNT(1)*100 AS rate_3xx,
COUNT(1, status like "2%")/COUNT(1)*100 AS rate_2xx
FROM
access_log.win:time_batch(1 min)
WHERE
ua NOT LIKE '%some_bot%'
1分間のtime window毎に集計
22.
MySQL 5.7
•Multi-Source Replication
•Trigger で書き換え
23.
Master
Slave Backup
Master Backup Master Backup
Main Cluster Sub Cluster Sub2 Cluster
table A,B,C table D table E,F,G,H
Multi-Source Replication
analyze-db
table A,B,C,D,E,F,G,H...
24.
Multi-Source Replicationの
使い方
CHANGE MASTER TO MASTER_HOST='db1',.. FOR CHANNEL 'db1';
START SLAVE FOR CHANNEL ‘db1’;
STOP SLAVE FOR CHANNEL ‘db1’;
SHOW SLAVE STATUS FOR CHANNEL ‘db1’G
FOR CHANNEL をつけるだけ。問題なく動作している
25.
Triggerで書き換え
CREATE TRIGGER insert_user_address
BEFORE INSERT ON user_address
FOR EACH ROW
BEGIN
SET NEW.family_name = MD5(concat(NEW.family_name,'secret_key'));
SET NEW.first_name = MD5(concat(NEW.first_name,'secret_key'));
END;
CREATE TRIGGER update_user_address
BEFORE UPDATE ON user_address
FOR EACH ROW
BEGIN
SET NEW.family_name = MD5(concat(NEW.family_name,'secret_key'));
SET NEW.first_name = MD5(concat(NEW.first_name,'secret_key'));
END;
MD5でhashに変更
ユニーク性は確保
34.
[kazeburo@kazeburomba2-2 /tmp]% php -v
PHP 5.6.5 (cli) (built: Jan 28 2015 16:00:57)
$ php hoge.php
PHP Warning: PDO::commit(): MySQL server has gone away
in /private/tmp/hoge.php on line 14
PHP Warning: PDO::commit(): Error reading result set's
header in /private/tmp/hoge.php on line 14
Hello!!
$
37.
$ php hoge.php
PHP Fatal error: Uncaught exception 'PDOException'
with message 'There is no active transaction' in /
private/tmp/hoge.php:17
Stack trace:
#0 /private/tmp/hoge.php(17): PDO->rollBack()
#1 {main}
thrown in /private/tmp/hoge.php on line 17
$
42.
<?php
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'root', '');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$sth = $pdo->prepare('SELECT * FROM buffer');
$sth->execute();
while ($rows = $sth->fetch(PDO::FETCH_ASSOC)) {
#job($rows)
}
echo “hello!n”;
十分に大きい
テーブル
43.
$ rpm -qa|grep php
php-5.3.3-27.el6_5.x86_64
$ php -i
PDO Driver for MySQL => enabled
Client API version => 5.1.70
$ php fuga.php
hello!
$
44.
$ php -v
PHP 5.6.5 (cli) (built: Jan 28 2015 16:00:57)
$ php fuga.php
PHP Warning: Empty row packet body in /private/tmp/
fuga.php on line 23
Warning: Empty row packet body in /private/tmp/fuga.php
on line 23
$
アイエエエエ!ナンデ!エラーナンデ!