这一篇就够啦,带你了解MySQL的常用技巧

    科技2026-02-12  18

    前言

    相关mysql 博客链接

    这一篇就够啦,带你了解MySQL,SQL层面的优化

    https://blog.csdn.net/qq_42292373/article/details/108916171

    这一篇就够啦,带你了解MySQL,应用层面的优化

    https://blog.csdn.net/qq_42292373/article/details/108958966

    这一篇就够啦,带你了解MySQL的锁

    https://blog.csdn.net/qq_42292373/article/details/108960072

    这一篇就够啦,带你了解MySQL的常用技巧

    https://blog.csdn.net/qq_42292373/article/details/108966446

    文章目录

    前言1. SQL执行顺序2. 正则表达式使用3. MySQL 常用函数4.查询表,内存占用空间

    1. SQL执行顺序

    编写顺序

    SELECT DISTINCT <select list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_by_condition> LIMIT <limit_params>

    执行顺序

    FROM <left_table> ON <join_condition> <join_type> JOIN <right_table> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> SELECT DISTINCT <select list> ORDER BY <order_by_condition> LIMIT <limit_params>

    2. 正则表达式使用

    正则表达式(Regular Expression)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。

    符号含义^在字符串开始处进行匹配$在字符串末尾处进行匹配.匹配任意单个字符, 包括换行符[…]匹配出括号内的任意字符[^…]匹配不出括号内的任意字符a*匹配零个或者多个a(包括空串)a+匹配一个或者多个a(不包括空串)a?匹配零个或者一个aa1|a2匹配a1或a2a(m)匹配m个aa(m,)至少匹配m个aa(m,n)匹配m个a 到 n个aa(,n)匹配0到n个a(…)将模式元素组成单一元素 select * from emp where name regexp '^T'; select * from emp where name regexp '2$'; select * from emp where name regexp '[uvw]';

    3. MySQL 常用函数

    数字函数

    函数名称作 用ABS求绝对值SQRT求二次方根MOD求余数CEIL 和 CEILING两个函数功能相同,都是返回不小于参数的最小整数,即向上取整FLOOR向下取整,返回值转化为一个BIGINTRAND生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列ROUND对所传参数进行四舍五入SIGN返回参数的符号POW 和 POWER两个函数的功能相同,都是所传参数的次方的结果值SIN求正弦值ASIN求反正弦值,与函数 SIN 互为反函数COS求余弦值ACOS求反余弦值,与函数 COS 互为反函数TAN求正切值ATAN求反正切值,与函数 TAN 互为反函数COT求余切值

    字符串函数

    函数名称作 用LENGTH计算字符串长度函数,返回字符串的字节长度CONCAT合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个INSERT替换字符串函数LOWER将字符串中的字母转换为小写UPPER将字符串中的字母转换为大写LEFT从左侧字截取符串,返回字符串左边的若干个字符RIGHT从右侧字截取符串,返回字符串右边的若干个字符TRIM删除字符串左右两侧的空格REPLACE字符串替换函数,返回替换后的新字符串SUBSTRING截取字符串,返回从指定位置开始的指定长度的字符换REVERSE字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串

    日期函数

    函数名称作 用CURDATE 和 CURRENT_DATE两个函数作用相同,返回当前系统的日期值CURTIME 和 CURRENT_TIME两个函数作用相同,返回当前系统的时间值NOW 和 SYSDATE两个函数作用相同,返回当前系统的日期和时间值MONTH获取指定日期中的月份MONTHNAME获取指定日期中的月份英文名称DAYNAME获取指定曰期对应的星期几的英文名称DAYOFWEEK获取指定日期对应的一周的索引位置值WEEK获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1〜53DAYOFYEAR获取指定曰期是一年中的第几天,返回值范围是1~366DAYOFMONTH获取指定日期是一个月中是第几天,返回值范围是1~31YEAR获取年份,返回值范围是 1970〜2069TIME_TO_SEC将时间参数转换为秒数SEC_TO_TIME将秒数转换为时间,与TIME_TO_SEC 互为反函数DATE_ADD 和 ADDDATE两个函数功能相同,都是向日期添加指定的时间间隔DATE_SUB 和 SUBDATE两个函数功能相同,都是向日期减去指定的时间间隔ADDTIME时间加法运算,在原始时间上添加指定的时间SUBTIME时间减法运算,在原始时间上减去指定的时间DATEDIFF获取两个日期之间间隔,返回参数 1 减去参数 2 的值DATE_FORMAT格式化指定的日期,根据参数返回指定格式的值WEEKDAY获取指定日期在一周内的对应的工作日索引

    聚合函数

    函数名称作用MAX查询指定列的最大值MIN查询指定列的最小值COUNT统计查询结果的行数SUM求和,返回指定列的总和AVG求平均值,返回指定列数据的平均值

    4.查询表,内存占用空间

    select TABLE_NAME, concat(truncate(data_length/1024/1024,2),'MB') as data_size, concat(truncate(index_length/1024/1024,2),'MB') as index_size from information_schema.tables where TABLE_SCHEMA = 'process-log' (仅更改你的数据库名即可) group by TABLE_NAME order by data_length desc;

    Processed: 0.015, SQL: 9