当前位置: 首页 > news >正文

上海网站建设价钱wordpress 居中

上海网站建设价钱,wordpress 居中,沈阳网站制作联系方式,英国公司注册文章目录命名规范数据库基本设计规范数据库字段设计规范索引设计规范常见索引列建议数据库开发规范数据库操作行为规范命名规范 1.所有数据库对象名称必须使用小写字母并用下划线分割 2.禁止使用 MySQL 保留关键字#xff0c;如果表名中包含关键字查询时#xff0c;需要使用… 文章目录命名规范数据库基本设计规范数据库字段设计规范索引设计规范常见索引列建议数据库开发规范数据库操作行为规范命名规范 1.所有数据库对象名称必须使用小写字母并用下划线分割 2.禁止使用 MySQL 保留关键字如果表名中包含关键字查询时需要使用单引号括起来 3.见名识意 4.名称不要超过 32 个字符 5.临时库表以 tmp_ 为前缀并以日期为后缀备份表以 bak_ 为前缀并以日期为后缀 6.所有存储相同数据的列名和列类型必须一致一般作为关联列如果查询时关联列类型不一致会自动进行数据类型隐式转换会造成列上的索引失效导致查询效率降低 7.列名不要带上表名例如student 表中的列 idname 等不要命名成 student_idstudent_name 数据库基本设计规范 1.没有特殊要求下所有表必须使用 innodb 存储引擎 支付事务、行级锁、更好的恢复性、高并发下性能更好 2.数据库和表的字符集统一使用 utf8 统一字符集可以避免由于字符集转换产生的乱码不同的字符集进行比较前需要进行转换会造成索引失效 3.所有表和字段都需要添加注释 使用 comment 从句添加表和列的备注进行数据字典的维护 4.尽量控制单表数据量的大小建议控制在500万以内 过大的数据量在修改表结构、备份、恢复都会有很大的问题。 5.谨慎使用分区表 分区表在物理上表现为多个文件在逻辑上表现为一个表跨分区查询效率可能更低建议采用物理分表的方式管理大数据 6.尽量做到冷热数据分离减小表的宽度 MySQL 限制每个表最多存储4096列并且每一行数据在大小不能超过65535字节 7.减少磁盘IO 保证热数据的内存缓存命中率避免读入无用的冷数经常一起使用的列放到一个表中避免更多的关联操作。 8.禁止在表中建立预留字段 无法确认存储的数据类型对预留字段类型的修改会对表进行锁定 9.禁止在数据库中存储图片文件等大的二进制数据 IO操作耗时通常存储于文件服务器数据库只存储文件地址信息 10.禁止在线上做数据库压力测试 11.禁止从开发环境、测试环境直接连接生产环境数据库 数据库字段设计规范 1.优先选择符合存储需要的最小的数据类型 字段大建立索引空间大IO次数多索引性能差 2.将字符串转换成数字类型存储 例如IP地址在插入数据前先用 inet_aton() 函数把 IP 地址转为整型节省空间显示数据时使用 inet_ntoa() 函数把二进制整数转成 IP 地址字符串显示即可。 3.对于非负的整数建议使用无符号整数类型存储 例如自增 ID要优先使用无符号整型来存储无符号相对于有符号可以多出一倍的存储空间 SIGNED INT-2147483648~2147483647 UNSIGNED INT0~42949672954.VARCHAR(N) 中的 N 代表的是字符数而不是字节数 使用 UTF8 存储 255 个汉字 varchar(255)765 个字节。过大的长度会消耗更多的内存避免使用 text、blob 数据类型最常见的 text 类型可以存储 64K 的数据可以分离到单独的扩展表中。 MySQL 内存临时表不支持 text/blob 大数据类型如果查询中包含这样的数据在排序等操作时就不能使用内存临时表必须使用磁盘临时表进行MySQL 还要进行二次查询会使 SQL 性能变得很差不需要 text 类型的列的数据时不要对该列进行查询。 text/blob 类型只能使用前缀索引并且text列上是不能有默认值的。 5.避免使用 enum 类型 修改 enum 值需要使用alter语句 enum 类型的order by 操作效率低需要额外操作 禁止使用数值作为enum的枚举值。 6.尽可能把所有列定义为 not null 索引 null 列需要额外的空间来保存所以要占用更多的空间 进行比较和计算时要对 null 值做特别的处理。 7.使用 timestamp 4 个字节 或 datetime 类型 8 个字节存储时间 TIMESTAMP 存储的时间范围 1970-01-01 00:00:01 ~ 2038-01-19-03:14:07 TIMESTAMP 占用 4 字节和 INT 相同但比 INT 可读性高 超出 TIMESTAMP 取值范围的使用 DATETIME 类型存储。 8.同财务相关的金额数据必须使用 decimal 类型 非精准浮点float,double 精准浮点decimal Decimal 类型为精准浮点数在计算时不会丢失精度。占用空间由定义的宽度决定每 4 个字节可以存储 9 位数字并且小数点要占用一个字节。可用于存储比 bigint 更大的整型数据。 索引设计规范 1.限制每张表上的索引数量不超过 5 个索引可以增加查询效率同样也会降低插入和更新的效率有些情况下会降低查询效率 因为 MySQL 优化器在选择如何优化查询时会根据统一信息对每一个可以用到的索引来进行评估以生成出一个最好的执行计划如果同时有很多个索引都可以用于查询就会增加 MySQL 优化器生成执行计划的时间同样会降低查询性能。 2.禁止给表中的每一列都建立单独的索引 使用联合索引查询 每个索引组织表 innodb 必须有个主键–数据的存储的逻辑顺序和索引的顺序是相同的每个表都可以有多个索引但是表的存储顺序只能有一种 innodb 是按照主键索引的顺序来组织表的。 3.不要使用更新频繁的列作为主键 4.不要使用 uuid md5 hash 字符串列作为主键 无法保证数据的顺序增加 6.主键建议使用自增ID值 常见索引列建议 1.出现在 select update delete 语句的 where 从句中的列 2.包含在order by group by distinct 中的字段 3.多表join的关联列 4.建立联合索引效果更好 5.索引列的顺序 区分度最高的放在联合索引的最左侧 区分度 列中不同值的数量 / 列的总行数 尽量把字段长度小的列放在联合索引的左侧 6.避免建立冗余索引和重复索引 重复索引示例primary key(id)、index(id)、unique index(id) 冗余索引示例index(a,b,c)、index(a,b)、index(a)    7.优先考虑覆盖索引 就是包含了所有查询字段where select order by group by 的索引 避免lnnodb表进行索引的二次查询 8.尽量避免使用外键约束 但要在表与表之间的关联键上建立索引外键建议在业务端实现参照完整性 外键会影响父表和子表的写操作从而降低性能 数据库开发规范 1.建议使用预编译语句进行数据库操作 减少编译所需要的时间 还可以解决动态 sql 所带来的 sql 注入问题 只传参数比传递 sql 语句更高效相同语句可以一次解析多次使用提高处理效率。 2.避免数据类型的隐式转换 3.充分利用表上已经存在的索引 避免使用双 % 号的查询条件 4.一个 sql 只能利用到复合索引中的一列进行范围查询 例如有 a、b、c 列的联合索引在查询条件中有 a 列的范围查询则在 b、c 列上的索引将不会被用到在定义联合索引时如果 a 列要用到范围查找的话就要把 a 列放到联合索引的右侧    5.使用 left join 或 not exists 来优化 not in 操作   因为 not in 也通常会使用索引失效。 6.数据库设计要充分考虑扩展性 程序连接不同的数据库使用不同的账号跨库查询 为数据库迁移和分库分表留出余地 降低业务耦合度 7.禁止使用 select *应该使用 select column1, column2,... 查询 8.禁止使用不含字段的 insert into 语句 9.避免使用子查询可以把子查询优化为 join 操作 子查询结果无法使用索引通常子查询的结果集会被存储到临时表中不论是内存临时表还是磁盘临时表都不会存在索引。 10.避免使用 JOIN 关联太多的表 关联缓存大小可以由 join_buffer_size 参数进行设置最多允许关联 61 个表建议不超过 5 个。 11.减少同数据库的交互次数 批量执行脚本语句可以提高处理效率 12.对列的值进行 or 判断时使用 in 代替 or 可以更有效的利用索引or 很少能利用到索引 in 的值不要超过 500 个。 13.禁止使用 order by rand() 进行随机排序 14.where 从句中禁止对列进行函数转换和计算 因为无法使用索引 15.在明显不会有重复值时使用 union all 而不是 union union 会把两个结果集的所有数据放到临时表中后再进行去重操作union all 不会对结果集进行去重操作 16.拆分复杂的大 SQL 为多个小 SQL 大 SQL 逻辑上比较复杂需要占用大量 CPU 进行计算 MySQL 一个 SQL 只能使用一个 CPU 进行计算拆分成多个小 SQL 语句可能通过并行执行来提高处理效率 数据库操作行为规范 1.删除匿名账户并且给 root 账户设置登录密码 刚安装好的 MySQL 包含一个含空密码的 root 帐户和两个匿名帐户这是很大的安全隐患对于一些重要的应用我们应将安全性尽可能提高所以我们要把匿名帐户删除并且为 root 帐户设置密码可用如下命令进行 mysql use mysql; mysql delete from user where user; mysql update user set passwordpassword(newpassword) where userroot;2.超100万行的批量写操作要分批多次进行操作 大批量修改数据一定是在一个事务中进行的这就会造成表中大批量数据进行锁定从而导致大量的阻塞 3.对于大表使用 pt-online-schema-change 修改表结构 避免大表修改产生的主从延迟避免在对表字段进行修改时进行锁表 pt-online-schema-change 首先建立一个与原表结构相同的新表并且在新表上进行表结构的修改然后再把原表中的数据复制到新表中并在原表中增加一些触发器把原表中新增的数据也复制到新表中所有数据复制完成之后把新表命名成原表并把原表删除掉。 4.禁止为程序使用的账号赋予 super 权限 对于程序连接数据库账号遵循权限最小原则。 在进行开发和实际应用中用户不应该只用 root 用户进行连接数据库虽然使用 root 用户进行测试时很方便但会给系统带来重大安全隐患也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。
http://www.huolong8.cn/news/107395/

相关文章:

  • 网站开发经费申请报告长沙房地产价格
  • 网站建设营销推广企业建网站需要准备哪些资料呢
  • 考研培训机构排名前五的机构深圳优化怎么做搜索
  • p2p 金融网站开发郑州百度seo网站优化
  • 网站设计规划信息技术教案项目分享网
  • 电子商务网站创建过程淄博网站优化公司
  • 网站服务器使用怎么建设网站后台
  • 蔡甸网站建设礼品兑换网站怎么做
  • 建国外网站买完域名后怎么做常德百度推广运营
  • 网站用户界面设计重庆邮电大学官网网站
  • 淘宝客建站模板有什么教做维c甜品的网站
  • 不懂代码如何做网站如何建设旅游网站
  • 网站快速排名技术关于网站建设的小故事
  • 网站改版方案原则晋城北京网站建设
  • 说做网站被收债管理咨询公司税收优惠
  • 建一个网站的手机电脑平阳网站建设公司
  • 海南哪家公司做网站做的好网络营销方法案例
  • 做网站找个人企业网络营销策划书
  • 合肥网站优化价格濮阳建设网
  • 启用中文域名大网站百度云资源搜索引擎
  • 域名过期做的网站怎么办百度点击率排名有效果吗
  • php网站的数据库在哪wordpress手动备份
  • 制作网站要找什么公司集团网站设计思路
  • 企业建站 源码wordpress有微信主题吗
  • 学校官网网站建设的现状分析成都网站建设开发
  • 做货代用的网站设计主题网站
  • 诚信档案建设网站有哪些网站做二手房好的
  • 高明网站开发源码制作网站
  • jsp建网站简单项目计划书
  • 网站怎么做友情链接装修网站合作