数据库MySQL规范&&PHP正则

1.所有数据库对象名称必须使用小写字母并用下划线分割

2.所有数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)

3.数据库对象的命名要能做到见名识意,并且最后不要超过32个字符

4.临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀

5.所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索 引失效,导致查询效率降低)

6.使用InnoDB 存储引擎

7.表字符集使用utf8mb4

8.所有表都需要添加注释

9.单表数据量建议控制在500万以内

10.不在数据库中存储图、文件等大的二进制数据

11.尽量做到冷热数据分离,减小表的宽度

12.禁止在线上做数据库压力测试

13.禁止在表中建立预留字段

14.谨慎使用MySQL分区表

15.库名、表名、字段名必须使用小写字母,并采用下划线分割

16.库名、表名、字段名禁止超过32个字符,需见名知意,建议使用名词不是动词

17.库名、表名、字段名禁止使用MySQL保留字

18.符合索引遵循前缀原则

19.like查询%不能再前,否则索引失效。如有需要,使用全文索引

20.column is null可以使用索引

21.如果MySQL估计使用索引比全表扫描慢,则放弃使用索引

22.如果or前的条件中列有索引,后面的没有,索引不会生效。

23.列类型是字符串,查询时,一定要给值加引号,否则索引失效。

24.确定order by 和 group by 中只有一个表的列,这样才能使用索引

普通索引:仅加速查询

唯一索引:加速查询+列值唯一(可以有null)

主键索引:加速查询+列值唯一(不可以有null)+表中只有一个

组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

全文索引:对文本内容进行分词,进行搜索

外键索引:与主键索引形成联系,保证数据的完整性。

正则表达式中包括的元素:

原子(普通字符:a-z A-Z 0-9 、原子表、转义字符)

元字符(有特殊功能的字符)

模式修正符(系统内置部分字符 i 、m、S、U…)

转义字符

d 包含所有数字[0-9]

D 除所有数字外[^0-9]

w 包含所有字符(大小写英文字母、下划线、数字) [a-zA-Z_0-9]

W 除所有字符(大小写英文字母、下划线、数字)外 [^a-zA-Z_0-9]

s 空白区域如回车、换行、分页等 [fnr]

S 非空白区域如回车、换行、分页等 [^fnr]

元字符

. 匹配任意次但不包含回车换行

  • 匹配任意次

? 匹配0次或1次

  • 匹配1次或多次

| 选择匹配(或者)

^ 匹配开头(方括号中表示非)

$ 匹配尾部

{m} 匹配前一个内容的重复次数为m次

{m,} 匹配前一个内容的重复次数大于等于m次

{m,n}匹配前一个内容的重复次数m次到n次

( ) 合并整体匹配,并放入内存,可使用1 2…依次获取

模式修正符: 【/正则/U 】

小写i:不区分大小写

小写m:匹配首内容或尾内容时采用多行识别匹配

小写s:将转义回车取消视为单行匹配

小写x:忽略正则中的空白

大写A:强制从头开始匹配

大写D:强制$匹配尾部无任何内容

大写U:禁止贪婪匹配,只跟踪到最近的一个匹配符并结束,常用在采集程序

小写u:匹配中文

你可能感兴趣的:(php,mysql,数据库,mysql,php)