MySQL 是一套眾所皆知的 Database System,今天來簡介 InnoDB 儲存引擎,在 MySQL 5.5.5 之前預設的儲存引擎是 MyISAM,但是為什麼在 5.5 之後官方要將預設儲存引擎換成 InnoDB 呢?大家都知道 InnoDB 用來交易管理非常方便,因為 InnoDB 透過 row lock,相對於 MyISAM 透過 table lock 來的有效率,也避免大量寫入的時候,造成無法讀取資料,這就是 row lock 的優勢,當然用 InnoDB 最主要的原因還有 Full-text search indexes 功能,但是別擔心 MySQL 5.6.4 之後(含此版本) InnoDB 開始支援 Full-text search 功能,另外在使用 MyISAM 時候,如果資料突然出問題,還必須使用 MySQL Binary Log 來恢復資料,如果用 InnoDB 這就沒關係了。大家還在用 MyISAM 嘛?開始升級伺服器,一起體驗 InnoDB 的功能,如果已經上線很久的網站,作者不建議轉換,因為可能會遇到很多雷。 目前不用太擔心硬體的架構這方面了,隨便都是 64G 記憶體,四核心主機,大家所在意的還是 MySQL 是否 reliability 跟錯誤恢復,所以 MySQL 在 5.5 以後的版本大膽將 InnoDB 儲存引擎,建立資料表不用再加上 ENGINE=InnoDB,但是大家可以發現 MySQL 安裝好後,內建 mysql 和information_schema 資料庫還是用 InnoDB 儲存引擎,請大家不要亂動這兩個資料庫。底下來看看 InnoDB 的優勢。
2014年6月23日 星期一
【MySQL】 預設儲存引擎: InnoDB 介紹
文章出處:小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
MySQL 是一套眾所皆知的 Database System,今天來簡介 InnoDB 儲存引擎,在 MySQL 5.5.5 之前預設的儲存引擎是 MyISAM,但是為什麼在 5.5 之後官方要將預設儲存引擎換成 InnoDB 呢?大家都知道 InnoDB 用來交易管理非常方便,因為 InnoDB 透過 row lock,相對於 MyISAM 透過 table lock 來的有效率,也避免大量寫入的時候,造成無法讀取資料,這就是 row lock 的優勢,當然用 InnoDB 最主要的原因還有 Full-text search indexes 功能,但是別擔心 MySQL 5.6.4 之後(含此版本) InnoDB 開始支援 Full-text search 功能,另外在使用 MyISAM 時候,如果資料突然出問題,還必須使用 MySQL Binary Log 來恢復資料,如果用 InnoDB 這就沒關係了。大家還在用 MyISAM 嘛?開始升級伺服器,一起體驗 InnoDB 的功能,如果已經上線很久的網站,作者不建議轉換,因為可能會遇到很多雷。 目前不用太擔心硬體的架構這方面了,隨便都是 64G 記憶體,四核心主機,大家所在意的還是 MySQL 是否 reliability 跟錯誤恢復,所以 MySQL 在 5.5 以後的版本大膽將 InnoDB 儲存引擎,建立資料表不用再加上 ENGINE=InnoDB,但是大家可以發現 MySQL 安裝好後,內建 mysql 和information_schema 資料庫還是用 InnoDB 儲存引擎,請大家不要亂動這兩個資料庫。底下來看看 InnoDB 的優勢。
MySQL 是一套眾所皆知的 Database System,今天來簡介 InnoDB 儲存引擎,在 MySQL 5.5.5 之前預設的儲存引擎是 MyISAM,但是為什麼在 5.5 之後官方要將預設儲存引擎換成 InnoDB 呢?大家都知道 InnoDB 用來交易管理非常方便,因為 InnoDB 透過 row lock,相對於 MyISAM 透過 table lock 來的有效率,也避免大量寫入的時候,造成無法讀取資料,這就是 row lock 的優勢,當然用 InnoDB 最主要的原因還有 Full-text search indexes 功能,但是別擔心 MySQL 5.6.4 之後(含此版本) InnoDB 開始支援 Full-text search 功能,另外在使用 MyISAM 時候,如果資料突然出問題,還必須使用 MySQL Binary Log 來恢復資料,如果用 InnoDB 這就沒關係了。大家還在用 MyISAM 嘛?開始升級伺服器,一起體驗 InnoDB 的功能,如果已經上線很久的網站,作者不建議轉換,因為可能會遇到很多雷。 目前不用太擔心硬體的架構這方面了,隨便都是 64G 記憶體,四核心主機,大家所在意的還是 MySQL 是否 reliability 跟錯誤恢復,所以 MySQL 在 5.5 以後的版本大膽將 InnoDB 儲存引擎,建立資料表不用再加上 ENGINE=InnoDB,但是大家可以發現 MySQL 安裝好後,內建 mysql 和information_schema 資料庫還是用 InnoDB 儲存引擎,請大家不要亂動這兩個資料庫。底下來看看 InnoDB 的優勢。
2014年6月11日 星期三
【CSS】實現強制不換行、自動換行、強制換行
自動換行
div{ word-wrap: break-word; word-break: normal; }
強制不換行
div{ white-space:nowrap; }
強制英文單詞斷行 (產品名稱有帶型號或是英文時)
div{ word-break:break-all; }
div{ word-wrap: break-word; word-break: normal; }
強制不換行
div{ white-space:nowrap; }
強制英文單詞斷行 (產品名稱有帶型號或是英文時)
div{ word-break:break-all; }
2014年6月9日 星期一
【PHP】過濾字串,防止XSS及SQL Injcettion
addslashes | 過濾危險字元前面加\ 。 |
stripslashes | 還原將\拿掉。 |
htmlspecialchars | 只針對部份特殊字元處理, 所以未指定字串實際編碼時,仍然可以正確運作。 |
htmlentities | 針對全部字元處理,所以若未指定字串正確編碼時,就會出現亂碼,因為預設是 ISO 編碼,修改編碼方式,htmlentities($str, ENT_QUOTES, 'UTF-8')。 |
htmlspecialchars | 解譯htmlspecialchars_decode。 |
mysql_real_escape_string | 轉義SQL 語句中使用的字符串中的特殊字符。 |
過濾掉ch(xx) | preg_replace("/ch(.*?)/","",$str) |
防止 SQL injection 最好的方式是用 PDO ,不用過濾字也不會有這問題,因為他SQL語句跟變數是分開發送,但舊版的程式要全部改成 PDO 工程浩大,所以還是要用上述方法來防範,XSS攻擊可用 htmlspecialchars 、htmlentities 作防範,全過一次過濾可以用 array_walk_recursive、array_map。
2014年6月5日 星期四
2014年6月4日 星期三
2014年5月30日 星期五
2014年5月8日 星期四
訂閱:
文章 (Atom)