文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySql数据库日常设计和使用需要注意的几点总结

2021-02-15 11:28

关注

MySql数据库日常设计和使用需要注意的几点总结

    a,UTF-8的字符集是⼀一个汉字3个字节:varchar(255) UTF-8 255*3=765字节

    b,禁⽌在表中建立预留字段

    c,尽量避免加⼊外键约束,因为外键写入的时候会降低存储效率,但要给这些关联字段加索引

 2,索引设计方面:

    a,单张表索引数量建议不不超过5个,如果列列多可以适当增加

    b,每个innodb表都必须有一个主键,innoDB表就是一个索引组织表,实际存储顺序只能有一种,innoDB是按照主键进⾏存放的

    c,不能使⽤更新频繁的列和联合索引做主键,主键不断变,数据的存放顺序就会不断变化

    d,不要使⽤UUIDMD5HASH等做主键,不能保证这些值是按顺序增长的。如果⽣成较⼩的 字符串就会导致不断变化数据存储的位置,影响I/O性能

    e,避免建⽴立冗余和重复索引

    f,对于频繁查询的数据列列,优先考虑使⽤用覆盖索引

3,数据库SQL开发方面:

    a,在程序中使用PrepareStatement,#{}。既可以降低词法和语法分析器的重复执行,还能防止SQL注入

    b,合理充分的利用表上的索引,使用left join或not exists来优化not in

    c,连接不同的数据库使用不同的账号,禁止跨库操作。

    d,禁止使用select *,不能使用覆盖索引。

    e,避免使用自查询,可以把自查询优化为join操作。

          因为自查询是结果集,无法使用索引。另外自查询会产生临时表操作,如果查询量大则会严重影响效率。

     f,避免使用join关联太多表。大查询拆成小查询,利用程序来做关联和合并。可以适当的进行表数据的冗余设计。

    g,禁止用order by rand(),同样使用程序来完成。

    h,where中不要对列进行函数计数,因为无法使用索引

    i,UNION ALL 和UNION,如果数据明显不重复,就使用UNION ALL,UNION会增加一次去重复操作。

4,数据库操作行为方面:

    a,对大表结构对操作会导致锁表,使用pt-online-schema-change (PERCONA)

        原理:创建新表结构->复制旧表数据到新表->在原表上加入触发器确保数据同步->所有操作进行完毕后对原表进入一个很短暂的时间锁 ->把原表名修改,再更新新表名->删除原表

    b,数据库出现问题后很多时候无需重启数据库,重启也不能解决实际问题,还是留有隐患。此时需要查找正在执行的语句id,kill掉,即可起死回生,再分析该语句产生问题的原因,解决问题。

mysql> show processlist;
mysql> kill pid;

 

 

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯