MySQL 第九篇:Mysql 与 ORACLE 开发差异、Mysql 优化

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论。 Mysql 与 ORACLE 开发差异 一、 常用的基本数据类型对比 二、 常用 SQL函数以及其它语法差异 Mysql 优化 一、 数据库设计 a) 适当的违反三大范式。

我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论。

Mysql 与 ORACLE 开发差异

一、 常用的基本数据类型对比

76838d15f95c5994afb59540f1143514ad47c2f1

二、 常用 SQL函数以及其它语法差异

ef4fe316c784120407714e3f8b0b0266f60fc8dd

Mysql 优化

一、 数据库设计

a) 适当的违反三大范式。
b) 适当建立索引。
c) 对表进行水平划分(按照一个周期对表数据进行拆分)。
d) 对表进行垂直划分(对字段内容较长的字段进行拆分到一个新表)。
e) 选择合适的字段类型。能占用字节小的字段就不要去大字段。
f) 文件、图片等二进制的文件使用文件系统存储,不用数据库。数据库中只存储文件路径。
g) 宁可集中批量操作 也不要频繁操作。
h) 合适的引擎选择 mysql 的数据库引擎,innodb,myisam,memory 。Myisam 比innodb 的读速度更快。Innodb 是支持事务。Myisam 不支持事务。

二、SQL 语句优化

a. 使用 EXPLAIN 进行 SQL 语句的执行解析。
b. Mysql 慢 日 志 的 功 能 需 要 去 配 置 文 件 修 改 slow_query_log=/usr/xx.txtlong_query_time=2 单位秒。
c. 查询语句尽量避免全表扫描,在 where order by 等涉及的字段建立索引。
d. 尽量避免在 where 子句中对 null 值进行判断,如果进行 null 判断则会放弃索引查询走全表扫描,解决办法:在 null 字段设置一个默认值来代表无值。
e. 尽量避免在 where 子句中使用!= 或 <>操作符,放弃走索引进行全表扫描,解决办法:改为>= <=。
f. Like 查询,使用’%jame’ 不会走索引,使用’jame%’ 会走索引。
g. 尽量避免在 where 子句中使用 or 来连接条件 不会走索引走全表扫描。解决办法:将两个条件作为两条 sql 语句执行 使用 union all 来进行结果集的整合。
h. In 和 not in 也要少用,会导致全表扫描。
i. 尽量避免在 where 子句中对字段进行表达式的操作,不会走索引会走全表扫描。Num/3=100 修改成 num = 3*100。
j. 尽量避免在 where 子句中使用函数对字段进行操作. Substring(name,1,3)=’xzg’ 修改成name like ‘xzg%’。
k. 不要在 Where 字句的 =号的左边进行函数或者其他表达式的运算,数据库可能就无法正确使用索引。
l. 使用 exists 来代替 in。
m. 在代码中尽量避免使用 select * from 而是列出准确的字段名。
n. 尽量避免使用游标。
o. 数据较少的表 尽量让他走全表扫描。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
存储 关系型数据库 MySQL
MySQL 字段类型深度解析:VARCHAR(50) 与 VARCHAR(500) 的差异
在MySQL数据库中,`VARCHAR`类型是一种非常灵活的字符串存储类型,它允许存储可变长度的字符串。然而,`VARCHAR(50)`和`VARCHAR(500)`之间的差异不仅仅是长度的不同,它们在存储效率、性能和使用场景上也有所不同。本文将深入探讨这两种字段类型的区别及其对数据库设计的影响。
29 2
|
25天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
33 7
|
25天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
21 5
|
27天前
|
Oracle 安全 关系型数据库
Oracle与GreatSQL差异:更改唯一索引列
【11月更文挑战第1天】本文介绍了在 Oracle 和 GreatSQL 中更改唯一索引列的方法及差异。Oracle 需要手动删除和重建索引,过程复杂且可能影响数据一致性;而 GreatSQL 可以自动维护索引,直接修改列值即可,操作简便且更安全。
|
1月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
11天前
|
SQL Oracle 关系型数据库
Oracle与GreatSQL差异:更改唯一索引列
【11月更文挑战第11天】本文介绍了在 Oracle 和 GreatSQL 中修改唯一索引列的操作。Oracle 需要先删除索引、修改列值,再重新创建索引,步骤较为繁琐。而 GreatSQL 在满足一定条件下支持在线 DDL 操作,可以直接修改列值,操作相对简单。两者都需要考虑数据完整性和表上的其他约束条件。
|
1月前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
51 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
2月前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
454 2
|
1月前
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
40 0

推荐镜像

更多
下一篇
无影云桌面