MySQL 优化系列 --2.常见SQL技巧

本文介绍MySQL数据库中的实用技巧,如重置auto_increment值的方法、正则表达式的使用、随机抽样及分组统计技巧,并讨论了不同表类型的外键支持情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 重排 auto_increment 的值
-1. 清空表时候用 truncate  table_name  会自动将auto_increment 恢复为1;(不用delete  from  table_name)
-2. 或者清空表后用 alter   table    table_name   auto_increment-1; //将表auto_increment设置为1;

2.1  正则表达式的使用
-1.    $ 在字符串的末尾处进行匹配.
-2.    . 匹配任意单个字符,包括换行符
-3.    [....]匹配括号内任意的字符.
-4     a*匹配零个或多个a(包括空串)
-5.    a+匹配1个或多个(不包括空串)
-6.    a?匹配零个或1个a
-7.    a1|a2 匹配a1或a2
-8.    a(m) 匹配m个a 
-9.    a(m,)匹配至少m个a
-10.   a(m,n)匹配m到n个a
-11.   a(,n)匹配0到n个a
-12    (...)将模式元素组成单一元素
eg:    select  *  from  t1  where  name  regexp"[,.]@126.com$";  //查询t1表中name以.@126.com或,@126.com结尾的列.
等价于
eg:    select   *  form  t1  where  name  like"%.@126.com"   or  name   like"%,@126.com";          
   //  注意使用正则表达式会增加消耗,所以建议使用  like

2.2 巧用rand()提取随机行
select  *  from  t1  order  by  rand()   limit   0 , 3;   //随机抽取3条数据样本.  注意是随机哟.

2.3 利用group by 的with rillup 子句统计 , 会把每个分组再次统计和.

2.5 外键问题
注意: innodb类型的表可以支持外键,myisam类型的不支持外键.(不建议在MySQL中使用外键)






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值