MySQL²éѯ¼¼ÇÉ£ºÇáËÉ»ñȡǰһСʱµÄÊý¾Ý¼Ç¼

×ÊÔ´ÀàÐÍ£ºiis7.top 2025-06-05 13:34

mysql ȡǰһСʱ¼ò½é£º



MySQLȡǰһСʱÊý¾Ý£º¸ßЧ²éѯÓëʵս½âÎö ÔÚÊý¾Ý¿â¹ÜÀíºÍÊý¾Ý·ÖÎöÁìÓò£¬¸ßЧµØ»ñÈ¡ÌØ¶¨Ê±¼ä¶ÎÄÚµÄÊý¾ÝÊÇÖÁ¹ØÖØÒªµÄ

    ÌرðÊÇÔÚ´¦Àíʵʱ»ò½üʵʱÊý¾Ýʱ£¬Äܹ»¿ìËÙ׼ȷµØ´ÓMySQLÊý¾Ý¿âÖÐÌáÈ¡¹ýȥһСʱµÄÊý¾Ý£¬¶ÔÓÚ¼à¿Ø¡¢ÈÕÖ¾·ÖÎö¡¢ÒµÎñ±¨±íÉú³ÉµÈ¶àÖÖÓ¦Óó¡¾°¶¼¾ßÓм«ÆäÖØÒªµÄÒâÒå

    ±¾ÎĽ«ÉîÈë̽ÌÖÈçºÎÔÚMySQLÖÐʵÏÖÕâһĿ±ê£¬Í¨¹ýÀíÂÛ½²½â¡¢²éѯÓÅ»¯²ßÂÔ¼°ÊµÕ½°¸Àý·ÖÎö£¬°ïÖúÄúÕÆÎÕÕâÒ»¹Ø¼ü¼¼ÄÜ

     Ò»¡¢Àí½âʱ¼ä´ÁÓëÈÕÆÚº¯Êý ÔÚMySQLÖд¦Àíʱ¼äÏà¹ØµÄ²éѯ£¬Ê×ÏÈÐèÒªÊìϤÈÕÆÚºÍʱ¼äº¯Êý

    MySQLÌṩÁËÒ»Ì׷ḻµÄÈÕÆÚºÍʱ¼ä´¦Àíº¯Êý£¬Ê¹µÃÎÒÃÇÄܹ»¸ù¾ÝÐèÒª¶Ôʱ¼äÊý¾Ý½øÐмӼõ¡¢¸ñʽ»¯¡¢±È½ÏµÈ²Ù×÷

    ¶ÔÓÚ¡°È¡Ç°Ò»Ð¡Ê±¡±µÄÐèÇ󣬺ËÐÄÔÚÓÚÄܹ»È·¶¨µ±Ç°Ê±¼ä£¬²¢´ÓÖмõȥһСʱ£¬È»ºóÀûÓÃÕâ¸öʱ¼ä·¶Î§½øÐвéѯ

     -NOW()£º·µ»Øµ±Ç°µÄÈÕÆÚºÍʱ¼ä

     -DATE_SUB()£º´ÓÖ¸¶¨ÈÕÆÚ¼õÈ¥Ò»¸öʱ¼ä¼ä¸ô

     -INTERVAL£º¶¨Òåʱ¼ä¼ä¸ôµÄµ¥Î»£¬ÈçÃ루SECOND£©¡¢·ÖÖÓ£¨MINUTE£©¡¢Ð¡Ê±£¨HOUR£©µÈ

     -UNIX_TIMESTAMP()£º½«ÈÕÆÚ»òʱ¼äת»»ÎªUNIXʱ¼ä´Á

     -FROM_UNIXTIME()£º½«UNIXʱ¼ä´Áת»»ÎªÈÕÆÚ»òʱ¼ä¸ñʽ

     ¶þ¡¢¹¹½¨²éѯ£ºÈ¡Ç°Ò»Ð¡Ê±µÄÊý¾Ý ¼ÙÉèÎÒÃÇÓÐÒ»¸öÃûΪ`logs`µÄ±í£¬ÓÃÓڼǼÓû§µÄ²Ù×÷ÈÕÖ¾£¬ÆäÖаüÀ¨Ò»¸öÃûΪ`log_time`µÄ×ֶΣ¬¸Ã×ֶδ洢ÿÌõÈÕÖ¾¼Ç¼µÄʱ¼ä´Á

    ÎÒÃǵÄÄ¿±êÊDzéѯ¹ýȥһСʱÄÚµÄËùÓÐÈÕÖ¾¼Ç¼

     2.1 »ù±¾²éѯ Ò»¸ö»ù´¡µÄ²éѯÓï¾ä¿ÉÄÜÈçÏÂËùʾ£º sql SELECT FROM logs WHERE log_time >= NOW() - INTERVAL1 HOUR; ÕâÌõSQLÓï¾äµÄÂß¼­·Ç³£Ö±¹Û£ºËüʹÓÃ`NOW()`º¯Êý»ñÈ¡µ±Ç°Ê±¼ä£¬È»ºóͨ¹ý`INTERVAL1 HOUR`¼õȥһСʱ£¬×îÖÕɸѡ³ö`log_time`×Ö¶ÎÖµÔÚÕâ¸öʱ¼ä·¶Î§ÄÚµÄËùÓмǼ

     2.2 ¿¼ÂÇÊ±Çø ÖµµÃ×¢ÒâµÄÊÇ£¬`NOW()`º¯Êý·µ»ØµÄÊÇ·þÎñÆ÷µÄµ±Ç°Ê±¼äºÍÊ±Çø

    Èç¹ûÄúµÄÓ¦ÓóÌÐò»òÊý¾Ý¿â·þÎñÆ÷ÉèÖÃÔÚ²»Í¬µÄÊ±Çø£¬ÕâÒ»µãÓÈÎªÖØÒª

    Èç¹ûÐèÒª´¦ÀíÌØ¶¨Ê±ÇøµÄʱ¼ä£¬¿ÉÒÔʹÓÃ`CONVERT_TZ()`º¯ÊýÀ´×ª»»Ê±Çø

     sql SELECT FROM logs WHERE log_time >= CONVERT_TZ(NOW(), @@session.time_zone, +00:00) - INTERVAL1 HOUR; ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃÇÊ×ÏȽ«`NOW()`·µ»ØµÄʱ¼äת»»ÎªUTCÊ±Çø£¨`+00:00`£©£¬È»ºóÔÙ¼õȥһСʱ

    µ±È»£¬ÕâÀïµÄ`+00:00`Ó¦¸ÃÌæ»»ÎªÄú¹ØÐĵľßÌåÊ±Çø

     Èý¡¢²éѯÓÅ»¯²ßÂÔ ¾¡¹ÜÉÏÊö²éѯÔÚ´ó¶àÊýÇé¿ö϶¼ÄÜÂú×ãÐèÇ󣬵«ÔÚÃæ¶Ôº£Á¿Êý¾Ýʱ£¬ÐÔÄÜÎÊÌâ¿ÉÄÜ»á³ÉΪƿ¾±

    ÒÔÏÂÊÇһЩÓÅ»¯²ßÂÔ£¬°ïÖúÄúÌáÉý²éѯЧÂÊ

     3.1Ë÷ÒýÓÅ»¯ È·±£`log_time`×Ö¶ÎÉÏÓÐË÷ÒýÊÇÌáÉý²éѯÐÔÄܵĹؼü

    Ë÷Òý¿ÉÒÔ¼«´óµØ¼Ó¿ìÊý¾Ý¼ìË÷ËÙ¶È£¬ÓÈÆäÊÇÔÚ´¦Àí´óÁ¿Êý¾Ýʱ

     sql CREATE INDEX idx_log_time ON logs(log_time); ´´½¨Ë÷Òýºó£¬MySQLÄܹ»¸ü¿ìµØ¶¨Î»µ½·ûºÏʱ¼äÌõ¼þµÄÊý¾ÝÐУ¬¼õÉÙÈ«±íɨÃèµÄ¿ªÏú

     3.2 ·ÖÇø±í ¶ÔÓÚÈÕÖ¾ÀàÊý¾Ý£¬ÆäÌØµãÊÇÊý¾ÝÁ¿ËæÊ±¼ä¿ìËÙÔö³¤£¬ÇÒ²éѯÍùÍù»ùÓÚʱ¼ä·¶Î§

    Õâʱ£¬¿ÉÒÔ¿¼ÂÇʹÓ÷ÖÇø±íÀ´¹ÜÀíÊý¾Ý

    °´Ê±¼ä·ÖÇø¿ÉÒÔʹµÃMySQL½öɨÃè°üº¬ËùÐèÊý¾ÝµÄ·ÖÇø£¬½øÒ»²½¼õÉÙI/O²Ù×÷

     sql ALTER TABLE logs PARTITION BY RANGE(YEAR(log_time) - 10000 + MONTH(log_time) 100 + DAY(log_time))( PARTITION p0 VALUES LESS THAN(20230101), PARTITION p1 VALUES LESS THAN(20230102), -- ¸ü¶à·ÖÇø¸ù¾ÝÐèÒª¶¨Òå ); ×¢Ò⣬·ÖÇø²ßÂÔÓ¦¸ù¾Ýʵ¼ÊÊý¾ÝÁ¿ºÍ²éѯģʽÁé»îµ÷Õû

     3.3 ²éѯ»º´æ ËäÈ»MySQLµÄ²éѯ»º´æ×ÔMySQL8.0ÆðÒѱ»·ÏÆú£¬µ«ÔÚÔçÆÚ°æ±¾ÖУ¬ºÏÀíÀûÓòéѯ»º´æ¿ÉÒÔÏÔÖø¼Ó¿ìÖØ¸´²éѯµÄËÙ¶È

    ¶ÔÓÚÆµ·±Ö´ÐеÄÀàËÆ²éѯ£¬¿ÉÒÔ¿¼ÂÇÔÚÓ¦ÓòãÃæÊµÏÖ»º´æ»úÖÆ

     ËÄ¡¢ÊµÕ½°¸Àý·ÖÎö ΪÁ˸üºÃµØÀí½âÈçºÎ½«ÉÏÊöÀíÂÛÓ¦ÓÃÓÚʵ¼Ê³¡¾°£¬ÒÔÏÂÊÇÒ»¸ö»ùÓÚµçÉÌÆ½Ì¨µÄÈÕÖ¾·ÖÎö°¸Àý

     4.1 °¸Àý±³¾° ¼ÙÉèÎÒÃÇÓÐÒ»¸öµçÉÌÆ½Ì¨£¬ÐèҪʵʱ¼à¿Ø¹ýȥһСʱÄÚµÄÓû§ÐÐΪÈÕÖ¾£¬ÒÔ±ã¿ìËÙÏìӦϵͳÒì³£¡¢·ÖÎöÓû§»îÔ¾¶ÈµÈ

    ÈÕÖ¾±íÖаüº¬Óû§ID¡¢²Ù×÷ÀàÐÍ¡¢²Ù×÷ʱ¼äµÈÐÅÏ¢

     4.2 ±í½á¹¹Éè¼Æ sql CREATE TABLE user_logs( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, action_type VARCHAR(50), log_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 4.3 ²éѯʵÏÖ ¿¼Âǵ½Ê±ÇøÒòËØºÍÐÔÄÜÓÅ»¯£¬ÎÒÃǵIJéѯÓï¾ä¿ÉÄÜÈçÏ£º sql SELECT user_id, action_type, FROM_UNIXTIME(UNIX_TIMESTAMP(log_time)) AS formatted_log_time FROM user_logs WHERE log_time >= CONVERT_TZ(NOW(), @@session.time_zone, +08:00) - INTERVAL1 HOUR ORDER BY log_time DESC; ÕâÀÎÒÃǽ«Ê±¼äת»»Îª±±¾©Ê±¼ä£¨`+08:00`£©£¬²¢ÇÒΪÁ˿ɶÁÐÔ£¬½«`log_time`¸ñʽ»¯Îª¸üÒ×¶ÁµÄ×Ö·û´®¸ñʽ

    Í¬Ê±£¬Í¨¹ý`ORDER BY log_time DESC`È·±£½á¹û°´Ê±¼äµ¹ÐòÅÅÁÐ

     4.4 ½á¹û·ÖÎö Ö´ÐÐÉÏÊö²éѯºó£¬ÎÒÃÇ¿ÉÒԵõ½¹ýȥһСʱÄÚµÄÓû§ÐÐΪÈÕÖ¾£¬°üÀ¨Óû§ID¡¢²Ù×÷ÀàÐÍÒÔ¼°¾ßÌåµÄ²Ù×÷ʱ¼ä

    »ùÓÚÕâЩÊý¾Ý£¬¿ÉÒÔ½øÒ»²½·ÖÎöÓû§»îÔ¾¶È¡¢ÈÈÃŲÙ×÷ÀàÐ͵ÈÐÅÏ¢£¬ÎªÔËÓª¾ö²ßÌṩ֧³Ö

     Îå¡¢×Ü½á ´ÓMySQLÖиßЧÌáÈ¡¹ýȥһСʱµÄÊý¾Ý£¬²»½öÊÇÊý¾Ý¿â¹ÜÀíµÄ»ù±¾¼¼ÄÜ£¬Ò²ÊÇÊý¾Ý·ÖÎö¡¢ÊµÊ±¼à¿ØµÈÁìÓò²»¿É»òȱµÄÄÜÁ¦

    Í¨¹ýÀí½âMySQLµÄÈÕÆÚºÍʱ¼äº¯Êý£¬¹¹½¨ºÏÀíµÄ²éѯÓï¾ä£¬½áºÏË÷ÒýÓÅ»¯¡¢·ÖÇø±í²ßÂÔÒÔ¼°Ó¦ÓòãÃæµÄ»º´æ»úÖÆ£¬ÎÒÃÇ¿ÉÒÔÏÔÖøÌáÉý²éѯÐÔÄÜ£¬Âú×ã¸÷ÖÖ¸´ÔÓÓ¦Óó¡¾°µÄÐèÇó

    ÎÞÂÛÊǵçÉÌÆ½Ì¨ÈÕÖ¾·ÖÎö¡¢ÏµÍ³¼à¿Ø±¨¾¯£¬»¹ÊÇÒµÎñ±¨±íÉú³É£¬ÕÆÎÕÕâÒ»¼¼Äܶ¼½«ÎªÄúµÄ¹¤×÷´øÀ´¼«´óµÄ±ãÀûºÍ¼ÛÖµ

    Ï£Íû±¾ÎĵÄÄÚÈÝÄܹ»°ïÖúÄú¸üºÃµØÀí½âºÍÓ¦ÓÃÕâÒ»¼¼Êõ£¬ÊµÏÖ¸ü¸ßЧµÄÊý¾Ý¹ÜÀíºÍ·ÖÎö

    

ÔĶÁÈ«ÎÄ
ÉÏһƪ£ºMySQLÊý¾Ý¿â·ÃÎÊʵսָÄÏ

×îÐÂÊÕ¼£º

  • ÕÆÎÕMySQL JDBCÁ¬½Ó£¬Êý¾Ý¿â²Ù×÷ÎÞÓÇ
  • MySQLÊý¾Ý¿â·ÃÎÊʵսָÄÏ
  • CentOSϵͳÏÂMySQL 5.8°²×°Ö¸ÄÏ£ºÏêϸ²½Öè½âÎö
  • MySQLÁ¬½ÓÓ뽨±íʵ²ÙÖ¸ÄÏ
  • ¾«Í¨MySQLÓÅ»¯¼¼ÇÉ£¬ÌáÉýÊý¾Ý¿âÐÔÄÜ
  • MySQL±¾µØµÇ¼ʧ°Ü½â¾ö·½°¸
  • MySQL°²×°°æ±¾ºº»¯½Ì³Ì
  • MySQL±íÉè¼ÆÊµÕ½¼¼ÇɽâÎö
  • MySQLÊý¾Ý»Ö¸´Ö¸ÄÏ£º¸ßЧÀûÓÃBinlog½øÐл¹Ô­
  • MySQLÖÐÕûÐÎÓë×Ö·ûÐÍÊý¾Ý²îÒì½âÎö
  • MySQL´æ´¢ÁÄÌì¼Ç¼µÄ¸ßЧ²ßÂÔ
  • Oracle±¸·ÝÇ¨ÒÆÖÁMySQL»¹Ô­Ö¸ÄÏ
  • Ê×Ò³ | mysql ȡǰһСʱ£ºMySQL²éѯ¼¼ÇÉ£ºÇáËÉ»ñȡǰһСʱµÄÊý¾Ý¼Ç¼