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

2016年6月3日 星期五

[MySQL] MySQL Group Replication講座小整理

以下整理一些參加 MySQL Group Replication的摘要:

MySQL Group Replication是一套可以使MySQL有 High Availability的plugin,有以下特點


2016年4月20日 星期三

[MySql] 刪除重複資料

有兩種方式   一種是直接對該重複資料的欄位建立uniqle index

ALTER IGNORE TABLE `資料表名稱` ADD UNIQUE INDEX(`欄位1`,`欄位2`...);

還有另一種個人覺得比較好的做法  可以去決定要保留哪一筆資料下來

delete from table_name where id in (select id from people group by id having count(*) > 1)

或是用

DELETE FROM table_name WHERE pk NOT IN (SELECT MAX(pk) From table_name GROUP BY id)

2013年10月18日 星期五

[mysql]SQL_CALC_FOUND_ROWS 使用

我們一般用COUNT() 或者mysql_num_rows() 來獲取查詢的行數;在MySQL4,5裡面,有SQL_CALC_FOUND_ROWS 可以在查詢的同時,計算行數:$query = "SELECT SQL_CALC_FOUND_ROWS * FROM title WHERE ID >1000 LIMIT 10;";$result = $db->query($query);$line = $db->fetch_row($db->query("SELECT FOUND_ROWS();"));print_r($line);此時,不用額外的查詢,即可得到SELECT count(id) FROM tabled WHERE id>1000;這樣子的結果了。不過,http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#limit-optimization 說:只要MySQL已經發送了需要的行數到客戶,它將放棄查詢,除非你正使用

2013年10月7日 星期一

[php]mysqli函式簡介

 mysqli 分為以下三個類別
   mysqli:負責控制與mysql的連線,執行SQL查詢,執行select後會得到查詢結果
          之mysql_result物件
   mysqli_result:內含select的查詢結果
   mysqli_stmt:用來定義執行參數化的SQL指令,需透過$mysqli->perpare建立mysql_stmt

2013年10月1日 星期二

[MySQL] VIEW簡介

MySQL資料庫的VIEW是可重組映射的表格,
好處:
  1. 資料雙向自動映射, 不管在原始表格或VIEW中有資料改變, 兩邊同步異動.
  2. 可以從多個表格關聯選取產生一個VIEW.
  3. VIEW與表格一樣都會保持存在狀態, 除非被  DROP 掉.
  4. VIEW可以如同表格一樣INSERT, UPDATE, DELETE
  5. VIEW佔用硬碟空間比表格小.

2013年9月10日 星期二

[PHP]儲存html原始碼進Mysql

在需要將html原始碼存進資料庫時,會因為許多的標籤或是其他符號而發生錯誤
這時需要用到mysql_real_escape_string($string)這個函數,
http://tw2.php.net/manual/en/function.mysql-real-escape-string.php
即可以順利存入。

但是這個函數最常被使用的情況是防止網站被SQL injection,基於會幫你檢查分號之類的功用可以做很好的防範。
 

2011年10月5日 星期三

PHP 對 MYSQL 交易(Transaction)

MYSQL 中只有 INNODB 和 BDB 類型的資料表才能執行交易處理!一般 MYSQL 資料庫預設的引擎是 MyISAM,這種引擎不能執行交易!如果要讓 MYSQL 執行交易,可以自己手動修改:

方法如下(Windows):
1.修改 c:\appserv\mysql\my.ini 文件,找到 skip-InnoDB ,在前面加上#,後存檔。
2.在執行中輸入:services.msc,重啟 mysql服務。
3.到 phpmyadmin 中,mysql->show engines;(或執行mysql->show variables like 'have_%'; ),查看 InnoDB 為 YES,即表示資料庫執行 InnoDB 了。也就說明能執行交易 Transaction 了。
4.在建資料表時,就可以為S torage Engine 選擇 InnoDB 引擎了。如果是以前建的,可以使用 mysql->alter table table_name type=InnoDB; 或 mysql->alter table table_name engine=InnoDB; 來改變資料表的引擎。
MySQL 預設都會啟動 Auto Commit, 要在 InnoDB 做 Transaction 有分兩種方法:
1. begin 直到 commit, rollback 結束
2. set autocommit=0 直到 set autocommit=1 結束

2011年4月28日 星期四

Google Analytics初學者入門簡介