標籤彙整為 'mysql'
9月 11th, 2008 由 傻仔仔 發表 於 11:09 am
我們有時需要即時自動同步兩個不同的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 [...]
9月 10th, 2008 由 傻仔仔 發表 於 04:09 pm
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 [...]
9月 8th, 2008 由 傻仔仔 發表 於 07:09 pm
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 [...]
8月 30th, 2008 由 傻仔仔 發表 於 12:08 pm
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. [...]
7月 21st, 2008 由 傻仔仔 發表 於 12:07 pm
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 分割區爆滿
分享此文章
5月 7th, 2008 由 傻仔仔 發表 於 03:05 pm
有朋友問到如何在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 [...]
10月 10th, 2007 由 傻仔仔 發表 於 11:10 pm
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 所以速度較慢。
最好的方法是使用正則表達式方法如下:
分享此文章