標籤彙整為 'mysql'

Mysql 即時自動同步兩個不同的table (自訂) 不需要binlog

我們有時需要即時自動同步兩個不同的table 而binlog未能自訂由master 的atable sync to slave 的b table  因此我們需要使用TRIGGER。
以下為一sample

mysql> CREATE TABLE t1 ( a INT, b CHAR(5) );
Query OK, 0 rows affected (0.02 sec)
mysql> CREATE TABLE t2 ( a INT, b CHAR(5) );
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TRIGGER trg1 AFTER INSERT ON t1 FOR EACH ROW
-> INSERT INTO t2 VALUES [...]

Install MySQL Performance Tuning Primer Script

 
HomePage : https://launchpad.net/mysql-tuning-primer
Tuning the performance of MySQL can be a really hard job to do.
There are many thinks to consider and no two servers are identical so there is no universal solution.
Tuning Primer is a script that will help you tune your mysql installation by providing very healthy recommendations based on past mysql records.
For the [...]

Mysql Cluster 個人實作心得筆記

I am going to talk about three servers,
manage.domain.com                 192.168.20.10
ndb1.domain.com                 192.168.20.20
ndb2.domain.com                 192.168.20.30
STAGE 1: Install mysql on the first two servers:
Complete the following steps on both ndb1 and ndb2:
groupadd mysql
useradd -g mysql mysql
cd /usr/local/
wget http://dev.mysql.com/get/Downloa … //mysql.isu.edu.tw/
tar -zxvf mysql-max-5.0.19-linux-i686-glibc23.tar.gz
rm mysql-max-5.0.19-linux-i686-glibc23.tar.gz
ln -s mysql-max-5.0.19-linux-i686-glibc23 mysql
cd mysql
scripts/mysql_install_db –user=mysql
chown [...]

CentOS下用yum 安裝 php+mysql+apache

 
1. 安裝Apahce, PHP, Mysql, 以及php連接mysql庫組件。
yum -y install httpd php mysql mysql-server php-mysql

2. 配置開機啓動服務
 /sbin/chkconfig httpd on             [設置apache服務器httpd服務開機啓動]
 /sbin/chkconfig –add mysqld         [在服務清單中添加mysql服務]
 /sbin/chkconfig mysqld on             [設置mysql服務開機啓動]

 /sbin/service httpd start            [啓動httpd服務,與開機啓動無關]
 /sbin/service mysqld start           [啓動mysql服務,與開機無關]

3.設置mysql數據庫root帳號密碼。
mysqladmin -u root password ‘newpassword’           [引號內填密碼]

4. 讓mysql數據庫更安全
mysql -u root -p
mysql> DROP DATABASE test;                            [刪除test數據庫]
mysql> DELETE FROM mysql.user WHERE user = ”;        [刪除匿名帳戶]
mysql> FLUSH PRIVILEGES;                              [重載權限]

5. 按照以上的安裝方式, 配置齣來的默認站點目錄為/var/www/html/
新建一個php腳本:
<?php
   phpinfo();
?>
6. [...]

Mysql 只保留七天的 mysql-bin log

my.cnf
log-bin = /var/log/mysql/mysql-bin.log => 存放位置
expire-logs-days = 7 => 保存天數
max_binlog_size = 104857600 => 單一記錄檔最大容量
重新啟動 mysql 之後,將會只保留七天份的 log 檔案。
mysql-bin.log 目的可以幫你恢復 mysql 某點狀態,或者查看過去 mysql 的 sql 記錄。
參考資料 Restoring lost data from the Binary Upate Log
參考資料 mysql binary log 超佔空間~ 導致 /var 分割區爆滿
分享此文章

MySQL使用rand函數實現隨機數

有朋友問到如何在mysql中使用隨機數
如何寫一個語句能一下更新幾百條MYSQL數據!
需要測試MYSQL數據庫,裡面有一個上萬條數據的數據庫,如何寫一個PHP文件一下每次更新幾百條信息,我都是寫一個循環一次更新一條信息,這樣我知道用WHILE寫就可以了,要是一次更新好比100條數據改如何寫呢!
謝謝
正確答案是:UPDATE cdb_posts  SET  views = rand();
順便給你找了點關於mysql rand函數的實例,如下:
那就在insert 命令中,value()裡面用rand(),注意字段寬度是否夠一直以為mysql隨機查詢幾條數據,就用

SELECT * FROM `table` ORDER BY RAND() LIMIT 5

就可以了。
但是真正測試一下才發現這樣效率非常低。一個15萬餘條的庫,查詢5條數據,居然要8秒以上
查看官方手冊,也說rand()放在ORDER BY 子句中會被執行多次,自然效率及很低。

You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.
搜索Google,網上基本上都是查詢max(id) * rand()來隨機獲取數據。

SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2
WHERE t1.id [...]

Mysql 中文search

select name from detail where name like ‘%a%’

會出現英文以外的中文字.例如: “新”而且效能不好所以不建議用。

SELECT * FROM table WHERE locate(substr,str)>0 ;

這個是不包括大小階但沒有剛才的問題

SELECT * FROM TABLE WHERE FIELDS LIKE BINARY ‘%FIND%’

這是有區別大小階的 需要使用lower,upper來轉換

select field from detail where binary ucase(field) like concat(’%’,ucase(’a’),’%’)

這個沒有search英文出中文的問題,而且沒有大小階的問題。但因為使用like 所以速度較慢。

最好的方法是使用正則表達式方法如下:

分享此文章