版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、前 二、数据库设计规 索引SET规 数据库SQL开发规 一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等32tmp_bak_为前缀并以日期(时间戳)为后缀。MySQLInnoDB没有特殊要求(InnoDB无法满足的功能如:列存储,存储空间数据等)的情况下,MySQL所有表必须使用InnoDB存储引擎(MySQL5.5之前默认使用Myisam,5.6以后默认的为InnoDB)InnoDB支持事务,支持行级数据库和表的字符集统一使用MySQLcomment从句添加表和列的备注从一开始就进行数据字典的维护。尽量控制单表数据量的大小,建议控制在500500MySQL数据库的限制,过大会造成修改表结构、备份、恢复MySQLMySQL限制每个表最多存储409665535IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大,IO)更有效的利用缓存,避免读入无用的冷数据经常一起使用的列放到一个表中(避免更确认存储的数据类型,所以无法选择合适的类型对预留字段类型的修改,通常会进行大量的随机IO操作,文件很大时,IO操作很耗时通常存储于多,索引的性能也就越差IPMySQLIPinet_atonip转为无符号整型(4-8位)inet_ntoaip转为地址inet_atonIP地址转为整型,可以节省空间。显示数据时,使用inet_ntoa把整型的IP地址转为地址显示即可。对于非负型的数据(如自增ID、整型IP)SIGNEDINT-2147483648~2147483647UNSIGNEDINTVARCHAR(N)NUTF8存255Varchar(255)=765个字节。过大的长度会消耗更多的内TEXTBLOBTEXT64k的数据,建议把BLOBTEXT列分离到单独的扩展表中MySQLTEXT、BLOB这样的大数据类型,如果查而且对于这种数据,MySQL还是要进行二次查询,会使SQL性能变如果一定要使用,建议把BLOB或是TEXT列分离到单独的扩展表select*TEXTTEXTBLOB因为MySQL对索引字段长度是有限制的,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值的。ENUMENUMALTERENUMORDERBY操作效率低,需要额外操作禁止使用数值作为ENUM的枚举值NOTNULL列需要额外的空间来保存,所以要占用更多的空间。进行比较和计算时要对NULL值做特别的处理。TIMESTAMP(4个字节)DATETIME类型(8个字节) 存储的时间范 TIMESTAMP占用4字节和INT相同,但比INT可读性高,超出TIMESTAMPDATETIME缺点1:无法用日期函数进行计算和比较。缺点2decimal类型Decimal类型为精准浮点数,在计算时不会丢失精度。占用空间由定义49位数字,并且小数点要占用一个字节。可用于存储比bigint更大的整型数据。限制每张表上的索引数量,建议单张表索引不超过5MySQL优化器在选择如何优化查询时,会根据统一信息,对每一MySQL优化器生成执行计5.6SQL只能使用到一个表中的一个索引,5.6以后,MySQLInnoDBInnoDB是一种索引组织表:数据的存储的逻辑顺序和索引的顺序是相InnoDB要使用UUID、MD5、HASH、字符串列作为主键(序增长)ID值。SELECT、UPDATE、DELETEWHEREORDERBY、GROUPBY、DISTINCT121、2中的字JOIN建立索引的目的是:希望通过索引进行数据查找,减少随机IO,增加查询性能,索引能过滤出越少的数据,则从磁盘中读入的数据也就越少。区分度最高的放在联合索引的最左侧(=/列的存储的数据量越大,IO性能也就越好)。使用最频繁的列放到联合索引的左侧(这样可以比较少的建立一些索引)重复索引示例:primarykey(id)、index(id)、unique覆盖索引:就是包含了所有查询字段(where,select,orderyby,groupby包含的避免InnoDBInnoDB是以聚集索引的顺序来存储InnoDB来说,二级索引在叶子节点中所保存的是行的主键信息,IO操作,IOIOIO密集型的范围查找来说,对IO也可以把磁盘的随机读取的IO转变成索引查找的顺序IO。SET不建议使用外键约束(foreignkey),但一定要在表与表之间的关联键上建SQLSQL解决动态SQL所带来的SQL注入的问题只传参数,比传递SQL语句更高效selectname,phonefromcustomerwhereid=alike'%123%',(如果无前置%,只有后置%,是可以用到列上的索一个SQLa,b,cab,c就要把a列放到联合索引的右侧。leftjoinnotexistsnotin因为notin也通常会使用索引失效。SELECT*SELECT字段列表>查询CPUIOINSERT语句insertintovalues('a','b','c');insertintot(c1,c2,c3)valuesJOINinSQLunion、groupby、orderby、limitCPUIOJOINjoin_buffer_size参数进行设置。MySQLSQL(join)一个表,就会多分配一个关联缓存,如果在一个SQL中关联的表越多,所占用的内存也就越大。join_buffer_sizeMySQL许关联61个表,建议不超过5个。MySQL数据库中对同一列进行or判断时,使用in代替In500inororderbyrand()的数据集非常大,就会消耗大量的CPU和IO及内存资源。WHEREwheredate(create_time)='20190101'wherecreate_time>='20190101'andcreate_time<UNIONALLUNIONUNIONALL不会再对结果集进行去重操作。SQL为多个小SQL:CPUSQLMySQL:一个SQL只能使用一个CPU进行计算。SQL100万行的批量写(UPDATE、DELETE、INSERT)操作,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年驾驶员试用期间聘用合同版B版
- 17 记金华的双龙洞(说课稿)-2023-2024学年统编版语文四年级下册
- 专业康复服务协议样式2024版A版
- 20XX年航空货运代理合作合同(2024版)一
- 2024法律规定离婚合同书样例版B版
- 专业化冷冻仓库施工合同合同下载版
- 2024汽车展场地租赁及品牌赞助商权益合作协议3篇
- 福建省南平市五夫中学2020-2021学年高二数学文模拟试题含解析
- 福建省南平市渭田中学2020-2021学年高二语文月考试卷含解析
- 2024月子中心消防报警系统采购与安装服务合同3篇
- 化妆品不良反应监测培训课件
- 中建项目实施策划书编制指南(附表)
- 餐饮服务投标文件
- 水果知识培训06车厘子
- 城投公司的债务风险及化解方式
- 设备运行售后故障响应方案
- 亚马逊品牌授权书(英文模板)
- 污水处理厂新建项目工程监理实施细则
- DB52∕T 046-2018 贵州省建筑岩土工程技术规范
- 压力容器壁厚计算软件
- 红色简约年终工作总结新征程再出发PPT模板
评论
0/150
提交评论