Time of Update: 2017-01-18
innodb表正好相反;行級鎖表 互連網服務,不算支付性的服務外,互動產品,新聞系統等等一般都是讀多,寫少。用myisam表比較合適。 表的設計 定長表:所有列的欄位長度都是定長的。可以去查mysql的手冊不定長欄位是VARCHAR、BLOB或TEXT。int char都是定長的,定長表佔用空間會大。 動態表:就是欄位不是都定長的。 定長表要比動態表檢索速度快。
Time of Update: 2017-01-18
外聯結。外聯結可以是左向外聯結、右向外聯結或完整外部聯結。 在 FROM 子句中指定外聯結時,可以由下列幾組關鍵字中的一組指定: LEFT JOIN 或 LEFT OUTER JOIN。 左向外聯結的結果集包括 LEFT OUTER 子句中指定的左表的所有行,而不僅僅 是聯結列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中 右表的所有挑選清單列均為空白值。 RIGHT JOIN 或 RIGHT OUTER JOIN。
Time of Update: 2017-01-18
create database mytest default charset=utf8 //建立資料庫 create table users //建立表 ( user_id int not null auto_increment, user_name varchar(20) not null, description varchar(200), primary key PK_userid(user_id) ); show create table users;//查看建立表的sql語句
Time of Update: 2017-01-18
複製代碼 代碼如下: <? $dbh = @mysql_connect("localhost:3306","root","000000"); /* 定義變數dbh , mysql_connect()函數的意思是串連mysql資料庫, "@"的意思是屏蔽報錯 */ if(!$dbh){die("error");} /* die()函數的意思是將括弧裡的字串送到瀏覽器並中斷PHP程式 (Script)。括弧裡的參數為欲送出的字串。 */ @mysql_select_db("ok", $dbh)
Time of Update: 2017-01-18
相對來說,將資料裝入資料庫是直截了當的。然而,也存在可用來改善資料裝載操作效率的策略,其基本原理如下: 成批裝載較單行裝載更快,因為在裝載每個記錄後,不需要重新整理索引快取;可在成批記錄裝入後才重新整理。 在表無索引時裝載比索引後裝載更快。如果有索引,不僅必須增加記錄到資料檔案,而且還要修改每個索引以反映增加了的新記錄。 較短的SQL 陳述式比較長的SQL
Time of Update: 2017-01-18
這裡是一個使用日期函數的例子。下面的查詢選擇了所有記錄,其date_col的值是在最後30天以內: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於ODBC標準。 mysql> select DAYOFWEEK('1998-02-03'); -
Time of Update: 2017-01-18
from http://www.devshed.com/c/a/MySQL/Error-Handling-Examples/ Error Handler Examples Here are some examples of handler declarations: If any error condition arises (other than a NOT FOUND ), continue execution after setting l_error=1 : DECLARE
Time of Update: 2017-01-18
不過最近發現這個可視化操作有點點問題,就是當資料條數超過一定數目EMS SQL Manager就掛了,也不知道是否是軟體問題……當然該開始我是將大的資料庫檔案分拆成小份小份的,多次匯入。 剛才發現同事用了mysql 內建的mysqldump 工具就不存在這個問題。 (羞愧,不過我平時極少接觸資料庫) 這裡記錄下操作方式: 1. 進入bin目錄,執行命令: mysqldump -hlocalhost -uroot -padmin local_db > a.sql 2.
Time of Update: 2017-01-18
兩個MySql服務的應用 一、如何在同一系統中安裝兩個MySql服務。 安裝一個5.0版本的,再安裝一個5.1版本的就可以了。我用的是mysql-5.0.45-win32.zip和mysql-5.1.28-rc-win32。其中注意的是,把後安裝的配置連接埠號碼碼改成不是3306,不然會和前一版本的連接埠號碼衝突。 二、應用:
Time of Update: 2017-01-18
一、環境 OS:Linux myhostname 2.6.9-42.ELsmp #1 SMP Sat Aug 12 09:39:11 CDT 2006 i686 i686 i386 GNU/Linux CentOS release 4.4 (Final) Oracle:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod,資料庫已經安裝好 mysql:5.1.34-community for windows
Time of Update: 2017-01-18
如果2張表的欄位一致,並且希望插入全部資料,可以用這種方法: Code: 複製代碼 代碼如下: INSERT INTO 目標表 SELECT * FROM 來源表; 比如要將 articles 表插入到 newArticles 表中,則是: 複製代碼 代碼如下: INSERT INTO newArticles SELECT * FROM articles; 如果只希望匯入指定欄位,可以用這種方法: 複製代碼 代碼如下: INSERT INTO 目標表 (欄位1, 欄位2, ...)
Time of Update: 2017-01-18
第一步——安裝MySQL 到http://dev.mysql.com/downloads/ 下載這個伺服器、MySQL GUI工具和MySQL ODBC驅動。你可以選擇的伺服器有:5.0, 5.1或6.0。然後安裝它們。 安裝過程中的注意事項: 你的防火牆應該設定為允許通過3306連接埠串連。 將MySQL作為一個服務來運行(可以選擇命令列方式)。 MySQL安裝預設username/login = root和server = localhost。
Time of Update: 2017-01-18
批量替換的具體文法是: 複製代碼 代碼如下: UPDATE 表名 SET 指定欄位 = replace(指定欄位, '要替換的字串', '想要的字串') WHERE 條件; 如果你想把 article 表中 ID 小於5000的記錄,content 欄位中“解決”替換成“解放”,那麼文法就是: 複製代碼 代碼如下: UPDATE article SET content = replace(content, '解決', '解放') WHERE ID<5000; 是不是很方便 :)
Time of Update: 2017-01-18
目錄 1. 字元集的選擇 1 2. 主鍵 1 3. 外鍵 2 4. 索引 2 4.1. 以下情況適合於建立索引 2 4.2. 以下的情況下不適合建立索引 3 4.3. 聯合索引 3 4.4. 索引長度 4 5. 特殊欄位 4 5.1. 冗餘欄位 4 5.2. 分割欄位 4 5.3. BLOB和CLOB 5 6. 特殊 5 6.1. 表格分割 5 6.2. 使用非事務表類型 5 1. 字元集的選擇 如果確認全部是中文,不會使用多語言以及中文無法表示的字元,那麼GBK是首選。
Time of Update: 2017-01-18
解決方案如下: 1、先刪除mysql服務 控制台->管理工具->服務,先停止mysql服務 開始->運行->輸入cmd->sc delete mysql 服務刪除 2、修改my.ini 如果沒將其建立(以下設定可以參考http://hi.baidu.com/chuyanwu/blog/item/98142a2e7d448d564ec2262c.html一般這個設定都不會錯誤) [mysqld] # set basedir to your installation
Time of Update: 2017-01-18
一. PHP對串連資料庫的步驟: 1 與資料庫建立串連: $conn = mysql_connect("localhost:3306","username","pass"); 三個參數:第一個是資料庫伺服器主機名稱及連接埠localhost:3306,如果主機名稱或連接埠預設將使用php.ini中設定的值,後面兩個分別為串連資料庫伺服器的使用者名稱和口令,同樣預設為php.ini中設定的值。 2 提交查詢語句: a. 使用函數mysql_select_db()來選擇要訪問的資料庫 eg:
Time of Update: 2017-01-18
mysql>prompt \u@\h(\d) \r:\m:\s> \u:串連使用者 \h:串連主機 \d:串連資料庫 \r:\m:\s:顯示目前時間 mysql>prompt \u@\h(\d) \r:\m:\s> root@localhost(mysql) 08:55:21> status -------------- mysql Ver 14.14 Distrib 5.1.33, for Win32 (ia32) Connection id: 2
Time of Update: 2017-01-18
1、執行個體 複製代碼 代碼如下:DELIMITER // DROP PROCEDURE IF EXISTS `test`.`p_getvalue` // CREATE DEFINER=`root`@`localhost` PROCEDURE `p_getvalue`( in id varchar(20),out s varchar(20) ) begin if (length(id)=11) then select 'A_B_C_D' into s; elseif(length(id)=8)
Time of Update: 2017-01-18
使用方法,在select語句前加上explain就可以了: 如:explain select * from test1 EXPLAIN列的解釋: table:顯示這一行的資料是關於哪張表的 type:這是重要的列,顯示串連使用了何種類型。從最好到最差的連線類型為const、eq_reg、ref、range、indexhe和ALL possible_keys:顯示可能應用在這張表中的索引。如果為空白,沒有可能的索引。可以為相關的域從WHERE語句中選擇一個合適的語句 key:
Time of Update: 2017-01-18
可將如下語句 query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576 存放到/etc/my.cnf檔案的[mysqld]下 然後重啟mysql資料庫 service mysqld restart 就會啟動mysql的緩衝機制Query Cache。 在使用中,查詢快取會儲存一個 SELECT 查詢的文本與被傳送到用戶端的相應結果。