Time of Update: 2017-01-18
類比情境一:給資料庫中的一張表的結構調整,添加幾個欄位,後面對之前的資料進行重新整理,重新整理的內容是對其中的一個已有欄位url進行匹配,然後更新新加的欄位type和typeid。後來就寫了個shell指令碼來刷資料,結果運行shell指令碼後我就懵了,怎麼這麼慢~~~情景再現複製代碼 代碼如下:CREATE TABLE `fuckSpeed` ( `uin` bigint(20) unsigned NOT NULL DEFAULT 0, `id` int(11)
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
複製代碼 代碼如下:DELIMITER $$ CREATE FUNCTION `t_girl` . `func_rand_string` ( f_num tinyint unsigned , f_type tinyint unsigned ) RETURNS varchar ( 32) BEGIN -- Translate the number to letter. -- No 1 stands for string only. -- No 2 stands for number only. -
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
使用方法,在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 查詢的文本與被傳送到用戶端的相應結果。
Time of Update: 2017-01-18
MySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量. 於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等. MySQL Query Profile 詳細介紹可見: Using the New MySQL Query
Time of Update: 2017-01-18
1、將Int 轉為varchar經常用 concat函數,比如concat(8,'0') 得到字串 '80' 2、將varchar 轉為Int 用 cast(a as signed) a為varchar類型的字串 總結:類型轉換和SQL Server一樣,就是型別參數有點點不同 : CAST(xxx AS 類型) , CONVERT(xxx,類型) 可用的類型 二進位,同帶binary首碼的效果 : BINARY 字元型,可帶參數 : CHAR() 日期 : DATE 時間: TIME
Time of Update: 2017-01-18
實體記憶體越大,設定就越大.預設為2402,調到512-1024最佳 innodb_additional_mem_pool_size=4M 預設為2M innodb_flush_log_at_trx_commit=1 (設定為0就是等到innodb_log_buffer_size列隊滿後再統一儲存,預設為1) innodb_log_buffer_size=2M 預設為1M innodb_thread_concurrency=8 你的伺服器CPU有幾個就設定為幾,建議用預設一般為8
Time of Update: 2017-01-18
如 現有字串 "[]aseabcd[12345]ddxabcdsx[]",要截取"abcd[" 和 "abcd["之後的第一個 "]" 之間的內容 "12345",當然當中的內容長度不是固定的,可以是"123456" 或者其他字串。 他問我的時候,我第一反應就是想的indexOf,後來查了下 發現mysql中沒有indexOf 而是 locate。 經過半個多小時的嘗試,最好幫他實現了這個效果。 複製代碼 代碼如下: CREATE PROCEDURE sp_str ( IN p_str
Time of Update: 2017-01-18
廢話不多了,直接貼代碼了一查詢數值型資料:SELECT * FROM tb_name WHERE sum > 100; 查詢謂詞:>,=,<,<>,!=,!>,!<,=>,=<二查詢字串 SELECT * FROM tb_stu WHERE sname = '小劉' SELECT * FROM tb_stu WHERE sname like '劉%' SELECT * FROM tb_stu WHERE sname like