以下分享一點我的經驗 一般剛開始學SQL的時候,會這樣寫 複製代碼 代碼如下: SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在資料達到百萬級的時候,這樣寫會慢死 複製代碼 代碼如下: SELECT * FROM table ORDER BY id LIMIT 1000000, 10; 也許耗費幾十秒 網上很多最佳化的方法是這樣的 複製代碼 代碼如下: SELECT * FROM table WHERE id >= (SELECT
怎麼進入mysql命令列呢? mysql的安裝目錄下面有個bin目錄,先用命令列進入該目錄,然後用 mysql -uroot -p123456 來登入(注意:使用者名稱和密碼不用包含“”) 命令: show processlist; 如果是root帳號,你能看到所有使用者的當前串連。如果是其它普通帳號,只能看到自己佔用的串連。 show processlist;只列出前100條,如果想全列出請使用show full processlist; mysql> show processlist;
--按某一欄位分組取最大(小)值所在行的資料 複製代碼 代碼如下: /* 資料如下: name val memo a 2 a2(a的第二個值) a 1 a1--a的第一個值 a 3 a3:a的第三個值 b 1 b1--b的第一個值 b 3 b3:b的第三個值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ --建立表並插入資料: 複製代碼 代碼如下: create table tb(name varchar(10),val int,memo varchar(20
今天在使用mysql語句的時候老是報錯,語句如下: Sql代碼 複製代碼 代碼如下: SELECT sapcle FROM SellEnterpriseBaseInfor sebie,SellEnterpriseBaseInforVer sebive,SellApplyPermitChangeList sapcle WHERE 1=1 AND sebie.iVerID = sebive.id AND sapcle.iEnterpriseBaseInforID=sebive.id AND
建立測試表 複製代碼 代碼如下: CREATE TABLE t ( v VARCHAR(100) NOT NULL ) ENGINE INNODB DEFAULT CHARSET=utf8; 建立定時器 調用的預存程序 DELIMITER $$ DROP PROCEDURE IF EXISTS e_test $$ CREATE PROCEDURE e_test() BEGIN INSERT INTO t VALUES('1'); END $$ DELIMITER ; 要使定時起作用
找到自己的mysql資料庫的安裝位置,如下 C:\Program Files\MySQL\MySQL Server 5.1,在它裡面有個的my.ini檔案,尋找如下行: [mysqld] 複製代碼 代碼如下: # The TCP/IP Port the MySQL Server will listen on port=3306 #Path to installation directory. All paths are usually resolved relative to this.
解決這個問題的辦法有三種: 1. 增加 MySQL 的 wait_timeout 屬性的值。 修改 /etc/mysql/my.cnf檔案,在 [mysqld] 節中設定: # Set a connection to wait 8hours in idle status. wait_timeout =86400 相關參數,紅色部分 mysql> show variables like '%timeout%'; +--------------------------+-------+ |
查詢當前這周的資料 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now()); 查詢上周的資料 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1; 查詢當前月份的資料