个人设计网站佛山高端网站设计

张小明 2026/1/11 11:29:51
个人设计网站,佛山高端网站设计,加强普法网站建设的通知,什么网站必须要flash1. 写完SQL先explain查看执行计划#xff08;SQL性能优化#xff09;日常开发写SQL的时候#xff0c;尽量养成这个好习惯呀#xff1a;写完SQL后#xff0c;用explain分析一下#xff0c;尤其注意走不走索引。explain select * from user where userid 10086 or age 18;2…1. 写完SQL先explain查看执行计划SQL性能优化日常开发写SQL的时候尽量养成这个好习惯呀写完SQL后用explain分析一下尤其注意走不走索引。explain select * from user where userid 10086 or age 18;2、操作delete或者update语句加个limit(SQL后悔药在执行删除或者更新语句尽量加上limit以下面的这条 SQL 为例吧delete from euser where age 30 limit 200;因为加了limit 主要有这些好处防止误删大量数据, 你在命令行执行这个SQL的时候如果不加limit执行的时候一个不小心手抖可能数据全删掉了如果删错了呢加了limit 200就不一样了。删错也只是丢失200条数据可以通过binlog日志快速恢复的。SQL效率很可能更高你在SQL行中加了limit 1如果第一条就命中目标return 没有limit的话还会继续执行扫描表。避免了长事务delete执行时,如果age加了索引MySQL会将所有相关的行加写锁和间隙锁所有执行相关行会被锁住如果删除数量大会直接影响相关业务无法使用。数据量大的话容易把CPU打满,如果你删除数据量很大时不加 limit限制一下记录数容易把cpu打满导致越删越慢的。分批删除数据避免锁表问题在大表上执行大规模DELETE操作可能长时间持有表锁尤其在 MyISAM 引擎中导致事务日志暴涨InnoDB引起主从复制延迟消耗大量内存和 CPU。3. 设计表的时候所有表和字段都添加相应的注释SQL规范优雅这个好习惯一定要养成啦设计数据库表的时候所有表和字段都添加相应的注释后面更容易维护。正例CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键Id, name varchar(255) DEFAULT NULL COMMENT 账户名, balance int(11) DEFAULT NULL COMMENT 余额, create_time datetime NOT NULL COMMENT 创建时间, update_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (id), KEY idx_name (name) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT1570068 DEFAULT CHARSETutf8 ROW_FORMATREDUNDANT COMMENT账户表;反例CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, balance int(11) DEFAULT NULL, create_time datetime NOT NULL , update_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_name (name) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT1570068 DEFAULT CHARSETutf8;4. SQL书写格式关键字大小保持一致使用缩进。SQL规范优雅正例SELECT stu.name, sum(stu.score) FROM Student stu WHERE stu.classNo 1班 GROUP BY stu.name反例SELECT stu.name, sum(stu.score) from Student stu WHERE stu.classNo 1班 group by stu.name.显然统一关键字大小写一致使用缩进对齐会使你的SQL看起来更优雅~5. INSERT语句标明对应的字段名称SQL规范优雅反例insert into Student values (123,张三,100);正例insert into Student(student_id,name,score) values (123,张三,100);6. 变更SQL操作先在测试环境执行写明详细的操作步骤以及回滚方案并在上生产前review。SQL后悔药变更SQL操作先在测试环境测试避免有语法错误就放到生产上了。变更Sql操作需要写明详细操作步骤尤其有依赖关系的时候如先修改表结构再补充对应的数据。变更Sql操作有回滚方案并在上生产前review对应变更SQL。7.设计数据库表的时候加上三个字段主键create_time,update_time。SQL规范优雅反例CREATE TABLE account ( name varchar(255) DEFAULT NULL COMMENT 账户名, balance int(11) DEFAULT NULL COMMENT 余额, ) ENGINEInnoDB AUTO_INCREMENT1570068 DEFAULT CHARSETutf8 ROW_FORMATREDUNDANT COMMENT账户表;正例CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键Id, name varchar(255) DEFAULT NULL COMMENT 账户名, balance int(11) DEFAULT NULL COMMENT 余额, create_time datetime NOT NULL COMMENT 创建时间, update_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (id), KEY idx_name (name) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT1570068 DEFAULT CHARSETutf8 ROW_FORMATREDUNDANT COMMENT账户表;理由主键一定要加上的没有主键的表是没有灵魂的创建时间和更新时间的话还是建议加上吧详细审计、跟踪记录都是有用的。阿里开发手册也提到这个点如图8. 写完SQL语句检查where,order by,group by后面的列多表关联的列是否已加索引优先考虑组合索引。SQL性能优化反例select * from user where address 深圳 order by age ;正例添加索引 alter table user add index idx_address_age (address,age)9.修改或删除重要数据前要先备份先备份先备份SQL后悔药如果要修改或删除数据在执行SQL前一定要先备份要修改的数据万一误操作还能吃口后悔药~10. where后面的字段留意其数据类型的隐式转换SQL性能优化反例//userid 是varchar字符串类型 select * from user where userid 123;正例select * from user where userid 123;理由因为不加单引号时是字符串跟数字的比较它们类型不匹配MySQL会做隐式的类型转换把它们转换为浮点数再做比较最后导致索引失效11. 尽量把所有列定义为NOT NULLSQL规范优雅NOT NULL列更节省空间NULL列需要一个额外字节作为判断是否为 NULL 的标志位。NULL列需要注意空指针问题NULL列在计算和比较的时候需要注意空指针问题。12.修改或者删除SQL先写WHERE查一下确认后再补充 delete 或 updateSQL后悔药尤其在操作生产的数据时遇到修改或者删除的SQL先加个where查询一下确认OK之后再执行update或者delete操作13.减少不必要的字段返回如使用select 具体字段 代替 select * SQL性能优化反例select * from employee;正例select idname from employee;理由节省资源、减少网络开销。可能用到覆盖索引减少回表提高查询效率。14.所有表必须使用Innodb存储引擎SQL规范优雅Innodb 支持事务支持行级锁更好的恢复性高并发下性能更好所以呢没有特殊要求即Innodb无法满足的功能如列存储存储空间数据等的情况下所有表必须使用Innodb存储引擎15.数据库和表的字符集统一使用UTF8SQL规范优雅统一使用UTF8编码可以避免乱码问题可以避免不同字符集比较转换导致的索引失效问题如果是存储表情的可以考虑 utf8mb416. 尽量使用varchar代替 char。SQL性能优化反例deptName char(100) DEFAULT NULL COMMENT 部门名称正例deptName varchar(100) DEFAULT NULL COMMENT 部门名称理由因为首先变长字段存储空间小可以节省存储空间。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费建站微信自己建一个影视网站要怎么做

Excalidraw 中的网格与参考线:如何让手绘风格也能精准对齐 在远程协作越来越普遍的今天,团队沟通早已不再局限于文字和语音。一张随手画出的架构草图,往往比千言万语更能快速传递思路。正因如此,像 Excalidraw 这类具备“手绘感”…

张小明 2026/1/6 7:02:56 网站建设

保定网站建设电话响应式视频网站

学生成绩管理 目录 基于springboot vue学生成绩管理系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue学生成绩管理系统 一、前言…

张小明 2026/1/10 23:40:08 网站建设

百度网盘app官网十条网站建设的seo策略

企业微信会话存档终极指南:5步高效实现合规数据管理 【免费下载链接】WeWorkFinanceSDK 企业微信会话存档SDK(基于企业微信C版官方SDK封装) 项目地址: https://gitcode.com/gh_mirrors/we/WeWorkFinanceSDK 企业微信会话存档作为企业合…

张小明 2026/1/6 7:53:40 网站建设

做网站要用到什么软件做网站网络

Boss直聘批量投递工具使用指南与实战技巧 【免费下载链接】boss_batch_push Boss直聘批量投简历,解放双手 项目地址: https://gitcode.com/gh_mirrors/bo/boss_batch_push 在竞争激烈的就业市场中,如何高效利用Boss直聘平台成为每个求职者必须面对…

张小明 2025/12/31 23:29:54 网站建设

移动深圳网站商城站

M9A终极自动化助手:重返未来1999高效游戏完整指南 【免费下载链接】M9A 重返未来:1999 小助手 项目地址: https://gitcode.com/gh_mirrors/m9a/M9A M9A作为《重返未来:1999》玩家的智能游戏伴侣,通过先进的图像识别与智能操…

张小明 2025/12/31 16:21:50 网站建设

去除 做网站就用建站之星wordpress 安装权限

3步实现深度学习模型75%体积压缩:飞桨INT8量化实战指南 【免费下载链接】models PaddlePaddle/models: PaddlePaddle是百度研发的开源深度学习框架,该项目提供了基于PaddlePaddle的各种预训练模型示例、教程及可直接使用的模型库,方便开发者快…

张小明 2026/1/1 9:23:30 网站建设