[MySQLÓÅ»¯] ÈçºÎ¶¨Î»Ð§Âʽϵ͵ÄSQL
[MySQLÓÅ»¯] -- ÈçºÎ¶¨Î»Ð§Âʽϵ͵ÄSQL
ʱ¼ä:2010-2-28À´Ô´:HaCMS¿ªÔ´ÉçÇø ×÷Õß:zhenpao
Ò»°ãͨ¹ýÒÔÏÂÁ½ÖÖ·½Ê½¶¨Î»Ö´ÐÐЧÂÊ½ÏµÍµÄ SQL Óï¾ä¡£ Âý²éѯÈÕÖ¾ÔÚ²éѯ½áÊøÒÔºó²Å¼Í¼£¬ËùÒÔÔÚÓ¦Ó÷´Ó³Ö´ÐÐЧÂʳöÏÖÎÊÌâµÄʱºò²éѯÂý²éѯÈÕÖ¾²¢²»Äܶ¨Î»ÎÊÌ⣬¿ÉÒÔʹÓà show processlist ÃüÁî²é¿´µ±Ç° MySQL ÔÚ½øÐеÄỊ̈߳¬°üÀ¨Ï̵߳Ä״̬¡¢ÊÇ·ñËø±íµÈ£¬¿ÉÒÔʵʱµØ²é ...
Ò»°ãͨ¹ýÒÔÏÂÁ½ÖÖ·½Ê½¶¨Î»Ö´ÐÐЧÂÊ½ÏµÍµÄ SQL Óï¾ä¡£
Âý²éѯÈÕÖ¾ÔÚ²éѯ½áÊøÒÔºó²Å¼Í¼£¬ËùÒÔÔÚÓ¦Ó÷´Ó³Ö´ÐÐЧÂʳöÏÖÎÊÌâµÄʱºò²éѯÂý²éѯÈÕÖ¾²¢²»Äܶ¨Î»ÎÊÌ⣬¿ÉÒÔʹÓà show processlist ÃüÁî²é¿´µ±Ç° MySQL ÔÚ½øÐеÄỊ̈߳¬°üÀ¨Ï̵߳Ä״̬¡¢ÊÇ·ñËø±íµÈ£¬¿ÉÒÔʵʱµØ²é¿´ SQL µÄ Ö´ÐÐÇé¿ö£¬Í¬Ê±¶ÔÒ»Ð©Ëø±í²Ù×÷½øÐÐÓÅ»¯¡£
ÏÂÃæÎÒÃǾÙÀý˵Ã÷һϣ¬ÈçºÎͨ¹ýÂý²éѯÈÕÖ¾¶¨Î»Ö´ÐÐЧÂÊµ×µÄ SQL Óï¾ä£º
¿ªÆôÂý²éѯÈÕÖ¾ , ÅäÖÃÑùÀý£º
[mysqld]
log-slow-queries
ÔÚ my.cnf ÅäÖÃÎļþÖÐÔö¼ÓÉÏÊöÅäÖÃÏî²¢ÖØÆô mysql ·þÎñ£¬Õâʱ mysql Âý²éѯ¹¦ÄÜÉúЧ¡£Âý²éѯ ÈÕÖ¾½«Ð´Èë²ÎÊý DATADIR £¨Êý¾ÝĿ¼£©Ö¸¶¨µÄ·¾¶Ï£¬Ä¬ÈÏÎļþÃûÊÇ host_name-slow.log ¡£
ºÍ´íÎóÈÕÖ¾¡¢²éѯÈÕÖ¾Ò»Ñù£¬Âý²éѯÈÕÖ¾¼Ç¼µÄ¸ñʽҲÊÇ´¿Îı¾£¬¿ÉÒÔ±»Ö±½Ó¶ÁÈ¡¡£ÏÂÀýÖÐÑÝʾÁËÂý²éѯÈÕÖ¾µÄÉèÖúͶÁÈ¡¹ý³Ì¡£
£¨ 1 £©Ê×ÏȲéѯһÏ long_query_time µÄÖµ ¡£
mysql> show variables like 'long%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| long_query_time | 10 |
+-----------------+-------+
1 row in set (0.00 sec)
£¨ 2 £©ÎªÁË·½±ã²âÊÔ£¬½«ÐÞ¸ÄÂý²éѯʱ¼äΪ 5 Ãë¡£
mysql> set long_query_time=5;
Query OK, 0 rows affected (0.02 sec)
£¨ 3 £©ÒÀ´ÎÖ´ÐÐÏÂÃæÁ½¸ö²éѯÓï¾ä¡£
µÚÒ»¸ö²éѯÒòΪ²éѯʱ¼äµÍÓÚ 5 Ãë¶ø²»»á³öÏÖÔÚÂý²éѯÈÕÖ¾ÖУº
mysql> select count(*) from order2008;
+----------+
| count(*) |
+----------+
| 208 |
+----------+
1 row in set (0.00 sec)
µÚ¶þ¸ö²éѯÒòΪ²éѯʱ¼ä´óÓÚ 5 Ãë¶øÓ¦¸Ã³öÏÖÔÚÂý²éѯÈÕÖ¾ÖУº
mysql> select count(*) from t_user;
+----------+
| count(*) |
+----------+
| 655296
Ïà¹ØÎĵµ£º
USE dxdb;
DELIMITER //
#»ñÈ¡Á÷Ë®ºÅ
DROP PROCEDURE IF EXISTS get_sid;
CREATE PROCEDURE get_sid(para_domain VARCHAR(20), out para_sid BIGINT UNSIGNED)
BEGIN
START TRANSACTION;
UPDATE t_sid SET sID=sID+1 WHERE cDomain=para_domain;
SELECT sID INTO para_sid from t_sid WHERE cDomain=para_domain;
......
¸ñʽ£ºgrant [PRIVILEGES] on [databaseName.tableName] to [userName]@[host] identified by [password] with grant option;
eg1: grant select on mysql.user to wqh@localhost
eg2:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE ......
mysqlÖÐINSTRº¯ÊýµÄÓ÷¨
INSTR(×Ö¶ÎÃû, ×Ö·û´®)
Õâ¸öº¯Êý·µ»Ø×Ö·û´®ÔÚijһ¸ö×ֶεÄÄÚÈÝÖеÄλÖÃ, ûÓÐÕÒµ½×Ö·û´®·µ»Ø0£¬·ñÔò·µ»ØÎ»Ö㨴Ó1¿ªÊ¼£©
SELECT * from tblTopic ORDER BY INSTR( topicTitle, 'ha' ) > 0 DESC
SELECT INSTR( topicTitle, 'ha' ) from tblTopic
mysqlÖÐʹÓÃinstrÅäºÏINÅÅÐò
½«instr½á¹û×÷Î ......
±ÈÈ磺
insert into User values(x1,x2,x3,x4),(x1,x2,x3,x4),(x1,x2,x3,x4)
ÕâÖÖд·¨£¬ÁÐÊýÁ¿±ØÐëºÍ±íÖÐËùÓÐÁб£³ÖÒ»Ö£¬Ò²¾ÍÊÇ˵Áж¼ÒªÁгöÀ´¡£
Õâ¸öuser±íÀïÃæµÄÒ»¸ö×Ö¶Îx1ÊǸö×ÔÔö³¤×ֶΣ¬ÔòÓ¦¸ÃÌînullռλ
insert into User values(null,x2,x3,x4),(null,x2,x3,x4),(null,x2,x3,x4)
·ñÔò»á±¨´í¡£ ......