数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)数据库对象的命名要能做到见名识意,并且最后不要超过32个字符临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀所有存储相同数据的列名和列类型必...
常见SQL错误用法1.LIMIT语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般DBA想到的办法是在type,name,create_time字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT*FROMoperationWHEREtype='SQLStats'ANDname=...
MySQLcount(1)真的比count(*)快么?反正同事们都是这么说的,我也姑且觉得对吧,那么没有自己研究一下究竟?如果我告诉你他们一样,你信么?有Where条件的count,会根据扫码结果count一下所有的行数,其性能更依赖于你的Where条件,所以文章我们仅针对没有Where的情况进行说明。MyISAM引擎会把一个表的总行数记录了下来...
一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列...
DROPTABLEIFEXISTS`t_user`;CREATETABLE`t_user`(`userId`bigint(20)NOTNULL,`fullName`varchar(64)NOTNULL,`userType`varchar(16)NOTNULL,`addedTime`datetimeNOTNULL,PRIMARYKEY(`userI...
sql命令:用于清空某表的数据且让自增的id重新从0开始truncatetable你的表名
为了测试,表中仅添加了两列,分别是主键id和name列,两列都为varchar类型。备注:id内容格式为BHXXXX,如:BH0001因为主键id不是int类型,想实现自动自增功能,使用内置的方法肯定是行不通的,所以,使用了复杂的查询方法及拼接方式,此方法虽然比较笨,但测试还是可以通过的。大致思路:在MySQL中新建表时,可以创建触发器为id进行...
在MySQL中,下表中的字词显式被保留。其中大多数字进制被标准SQL用作列名和/或表名(例如,GROUP)。少数被保留了,因为MySQL需要它们,保留字被引起来后可以用作识别符。ADDALLALTERANALYZEANDASASCASENSITIVEBEFOREBETWEENBIGINTBINARYBLOBBOTHBYCALLCASCADECAS...