顯示具有 mysql 標籤的文章。 顯示所有文章
顯示具有 mysql 標籤的文章。 顯示所有文章

2014-11-11

MYSQL InnoDB 交易範例

PDF READ:http://download.dbworld.com.tw/mag_article/s030901903.pdf

mysql_query("BEGIN");

$sql="SELECT * FROM test_string2 WHERE id=3 FOR UPDATE ";

$rs= mysql_query($sql,$link);

$row=mysql_fetch_array($rs,MYSQL_ASSOC);

mysql_query("COMMIT");

2011-04-25

mysql_num_rows VS COUNT 效率問題分析

一個直觀的對比 
測試數據: 
條數:139764條 
數據表大小:500M 

結果: 
fetch_num_rows 用時:35.272329092026 
count(*) 用時:0.071956872940063 

如果單純統計數量當然是count(*) 
fetch_num_rows必須遍歷數據庫以後才能得出效率低於count(*)

原文參考:http://jb51.net/article/26935.htm

2011-04-21

Mysql 文字轉日期排序

SELECT STR_TO_DATE(concat(AC_Month,'/', AC_Year + 1911), '%m/%Y') as dd,s. *
FROM tndg_activities_month AS m, tndg_activities_service AS s
WHERE s.A_SERIALNO = m.SERIALNO
AND s.MemberID = '??'
ORDER BY dd

2011-04-18

Mysql數據庫like模糊查詢中文字段不準確的臨時解決辦法


select  *  from test.news where  binary title like  ' % s % '

字母區分大小寫
select  *  from test.news where  binary  ucase ( title )  like   ' % s % '

2010-08-17

強迫移除 MySQL Root 密碼(Linux)

  1. /etc/init.d/mysql stop
  2. /usr/sbin/mysqld --skip-grant-tables --user=root & # 啟動 MySQL
  3. mysql -u root # 已經可以不用密碼進入囉~
  4. mysql> UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root'; # 將 root 密碼清掉, 或於此設定想要的密碼.
  5. mysql> quit
  6. /etc/init.d/mysql restart # 完成.

2010-06-03

MySQL: UNION和UNION ALL

在資料庫中,UNIONUNION ALL關鍵字都是將兩個結果集合並為一個,但這兩者從使用和效率上來說都有所不同。
MySQL中的UNION
UNION在進行錶鏈接後會篩選掉重複的記錄,所以在錶鏈接後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表UNION。如:
select * from users1 union select * from user2
這個SQL在運行時先取出兩個表的結果,再用排序空間進行排序刪除重複的記錄,最後返回結果集,如果表資料量大的話可能會導致用磁片進行排序。
MySQL 中的UNION ALL
UNION ALL只是簡單的將兩個結果合併後就返回。這樣,如果返回的兩個結果集中有重複的資料,那麼返回的結果集就會包含重複的資料了。
從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合併的兩個結果集中不包含重複的資料的話,那麼就使用UNION ALL,如下:
select * from user1 union all select * from user2

2010-02-01

MySQL -- 找出重複資料

SELECT a.ad13_area_code, a.ad13_city_name
FROM ad13 a, ad13 b
WHERE a.ad13_area_code = b.ad13_area_code
GROUP BY 1 , 2
HAVING count( a.ad13_area_code ) >1 

2009-12-07

移除MySQL root密碼

這是給不小心忘記 MySQL root 密碼、不小心刪掉 root 的人, 不需要因此而重灌 MySQL.(只需要依此步驟, 即可重新設定 root 密碼)

環境: Debian / Ubuntu Linux

移除 MySQL Root 密碼步驟

sudo su -
/etc/init.d/mysql stop
/usr/sbin/mysqld --skip-grant-tables --user=root & # 啟動 MySQL
mysql -u root # 已經可以不用密碼進入囉~
mysql> UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root'; # 將 root 密碼清掉, 或於此設定想要的密碼.
mysql> quit
/etc/init.d/mysql restart # 完成.