¸ømysqlÊý¾Ý±í¼ÓË÷ÒýµÄÒ»´Î¾ÑéÓëÌå»á.
×òÌìÓöµ½Ò»¸öÎÊÌâ:
ÔÚÒ»ÕÅÓÐÈýÊ®ÍòÌõ¼Í¼µÄÊý¾Ý±íA£¬ÆäÖ÷¼ü×ÔÔö×Ö¶Îid£¬name×ֶΣ¨varchar)£¬»¹ÓÐtype_id£¨int)£¬ÔÚname×Ö¶ÎÉÏÒѾÌí¼ÓÁËË÷Òý¡£type_idÓÉÓÚÊÇÕûÐÍ×ֶΣ¬ÈÏΪ¼ÓË÷ÒýûÓÐÌ«¶àµÄÒâÒ壬ËùÒÔûÓмÓË÷Òý¡£
±¾´ÎÓÐÒ»¸öÐèÇóÊÇÔÚÒ»¸öÑ»·Öа´type_id²éѯ´Ë±íA£¬½á¹ûÒ»Ö´ÐдËÑ»·£¬mySQLÁ¢¿ÌÕ¼ÓÃCPUµ½200%ÒÔÉÏ£¬µ¼Ö·þÎñÆ÷ÏìÓ¦¼«Âý¡£
¿ªÊ¼Ã»Ïëµ½ÊDzéѯËٶȵÄÎÊÌ⣬ºóÀ´·¢ÏÖ»»Ò»¸ö±í£¬CPUÕ¼ÓÃÂÊÁ¢¿ÌϽµ¡£ÓÚÊÇ·ÖÎöÁ˲éѯ¹ýѯ£¬·¢ÏÖÿ´Î²éѯ¶¼Òª±éÀúÕû±í£¬ËùÒÔÊý¾Ý¿âѹÁ¦·Ç³£´ó¡£ÊÖ¹¤Ö±½ÓʹÓÃsqlÔÚÊý¾Ý¿â²éѯ£º
select * from A where type_id = xxxx
Ö´ÐÐʱ¼äԼΪ0.42s(400ms×óÓÒ£©£¬ËٶȽÏÂý¡£
ÓÚÊÇÔÚtype_idÉÏÌí¼ÓË÷Òý£¬È»ºóÔÙÖ´ÐÐͬÌõÓï¾ä¡£
Ö´ÐÐʱ¼äΪ0.01s(10ms×óÓÒ£©£¬ËÙ¶ÈÃ÷ÏÔÌáÉý£¨40±¶×óÓÒ£©¡£
ÔÙÖ´ÐÐÑ»·£¬·¢ÏÖCPUÕ¼ÓÃ8%×óÓÒ£¬±È½ÏÀíÏë¡£
ÐÔÄÜÌáÉýµÄÔÒò·ÖÎö£º
type_idµÄÖµÓÐÌØÊâÐÔ£º´ó²¿·Ötype_idµÄֵΪ0£¬Ë÷ÒýЧ¹ûÃ÷ÏÔ¡£ÕýºÃ±¾´Î²éѯ²»ÐèÒª²éѯtype_idΪ0µÄ¼Í¼¡£Èç¹ûÒª²éѯtype_idΪ0µÄ¼Í¼£¬ÔòЧ¹ûÌáÉý¿ÉÄܲ»Ã÷ÏÔ¡£
Ìå»á£º
£¨1£©ÔÚÓöµ½²éѯÐÔÄܵÄʱºò£¬Êʵ±µÄ·ÖÎöÊý¾Ý£¬Ìí¼ÓË÷Òý£¬¿ÉÄÜÄÜ´ó·ùÌá¸ßÐÔÄÜ¡£
£¨2£©ÊÇ·ñÌí¼ÓË÷Òý£¬ÐèÒª¿¼Á¿Êý¾Ý×ÜÁ¿¼°Êý¾Ý¸üÐÂƵ¶ÈÔÙ×ö¾ö¶¨¡£
£¨3£©·ÖÎöÒ»ÌõÓï¾äÊÇ·ñʹÓÃÁËË÷Òý¡£¿ÉʹÓà explain sql;
Èçexplain select * from A where type_id = xxxx »áÏÔʾÊÇ·ñʹÓÃË÷Òý¡£
Ïà¹ØÎĵµ£º
MySQLÓÐÒ»¸ö¹¦ÄܾÍÊÇ¿ÉÒÔlogÏÂÀ´ÔËÐеıȽÏÂýµÄsqlÓï¾ä£¬Ä¬ÈÏÊÇûÓÐÕâ¸ölogµÄ£¬ÎªÁË¿ªÆôÕâ¸ö¹¦ÄÜ£¬ÒªÐÞ¸Ämy.cnf»òÕßÔÚMySQLÆô¶¯µÄʱºò¼ÓÈëһЩ²ÎÊý¡£
Èç¹ûÔÚmy.cnfÀïÃæÐ޸ģ¬ÐèÔö¼ÓÈçϼ¸ÐÐ
long_query_time = 1
log-slow-queries =
log-queries-not-using-indexes
long_query_time ÊÇÖ¸Ö´Ðг¬¹ý¶à¾ÃµÄsql»á±»logÏÂÀ´£ ......
Íü¼ÇMySQL(ºÍPHP´îÅäÖ®×î¼Ñ×éºÏ)
ROOTÃÜÂëÊÇÔÚMySQL(ºÍPHP´îÅäÖ®×î¼Ñ×éºÏ)ʹÓÃÖкܳ£¼ûµÄÎÊÌ⣬¿ÉÊÇÓкܶàÅóÓѲ¢²»»áÖØÖÃROOTÃÜÂ룬Äǽпడ£¬ÎÒÓÐÉîÓид¥£¬ÌØд´ËÎÄÕÂÓë´ó¼Ò½»Á÷£º
1¡¢±à¼MySQL(ºÍPHP´îÅäÖ®×î¼Ñ×éºÏ)ÅäÖÃÎļþ£º
windows»·¾³ÖУº%MySQL(ºÍPHP´îÅäÖ®×î¼Ñ×éºÏ)_installdir%\my.ini¡¡//Ò»°ã ......
£¨1£©ÒÔubuntuµÄrootÓû§µÇ½
£¨2£©Í£Ö¹MYSQL·þÎñÆ÷£º
/etc/init.d/mysql stop
£¨3£©Ìø¹ýÊÚȨ±íÖ´ÐÐMYSQL·þÎñÆ÷£º
mysqld_safe --skip-grant-tables --skip-networking &
(×¢£º²ÎÊý--skip-grant-tablesΪÌø¹ýÊÚȨ±í£»--sk ......
DROP PROCEDURE IF exists pro_removeBillRemindByUserId;
create procedure pro_removeBillRemindByUserId(userId int)
begin
declare ts varchar(500);
declare cnt int default 0;
declare f_ID,b int;
DECLARE cur_1 CURSOR ......