首页 > 数据库 >sql的优化经验

sql的优化经验

时间:2024-05-09 21:44:35浏览次数:21  
标签:语句 经验 join union 索引 sql 优化

sql的优化经验

sql优化会从这几方面考虑,比如建表的时候、使用索引、sql语句的编写、主从复制,读写分离,还有一个是如果数据量比较大的话,可以考虑分库分表。

创建表如何优化

主要参考的《阿里开发手册(嵩山版)》,比如,在定义字段的时候需要结合字段的内容来选择合适的类型。
如果是数值的话,像tinyint、int、bigint这些类型,要根据实际情况选择。
如果是字符串类型,也是结合存储的内容来选择char和varchar或者text类型。

使用索引如何优化

参考索引创建原则

sql语句优化

  • SELECT语句务必指明字段名称,不要直接使用select*。
  • 注意sql语句避免造成索引失效的写法。
  • 如果是聚合查询,尽量用union all代替union,union会多一次过滤,效率比较低。
  • 如果是表关联的话,尽量使用inner join,不要使用用left join或者right join,如必须使用,一定要以小表为驱动。

标签:语句,经验,join,union,索引,sql,优化
From: https://www.cnblogs.com/worshipone/p/18183124

相关文章

  • mysql面试
    001Mysql如何实现索引机制MySQL中索引分三类:B+树索引,Hash索引,全文索引InnoDB索引和MySAM索引实现的区别是什么?MySAMMySAM索引文件和数据是分离的,使用B+树实现,主键索引和辅助索引实现一致,索引文件仅保存记录所以在页的指针(物理地址),通过这些地址来读取页,进而读取被索引的行 ......
  • SQL练习之打卡记录数据统计类问题
    最近老婆的公司,关闭了OA系统中,各类打卡时间数据统计的功能,为了不麻烦老婆手算,就做了一个简单的打卡系统,方便自动统计老婆想要知道的各类数据。做的过程中就遇到了几个还挺有意思的SQL,这里写成一篇博文,方便后期练习~Tip:需要答案的盆友可以访问参考答案的链接,密码是123456~建表......
  • 优化建图
    写\(2-SAT\)时刷到的,发现好像一点不会,学习下。1.线段树优化建图当一个点与一段区间连边时,暴力连是\(O(n^2)\)的。因为线段树有一个肥肠优秀的性质,一个区间最多被分为\(O(logn)\)个节点。so,我们可以把区间当成放到线段树上,这样是\(O(nlogn)\)的。具体的,我们建立一个......
  • MySQL 创建数据库使用 UTF-8 问题
    问题描述将emoji符号(如......
  • mysql - mysql 命令行的使用
    1.Mysql管理连接数据库--连接本地数据库mysql-uroot-p--连接远程数据库mysql-h192.168.0.105-uroot-p--连接远程指定数据库并设置字符集mysql-h192.168.0.105-uroot-p--default-character-set=utf8test修改root密码,直接修改配置文件[mysql]......
  • SQL——连续出现的数字
    SQL三个排序函数ROW_NUMBER()、RANK()、DENSE_RANK()ROW_NUMBER()不并列连续的RANK()分组不连续排序(跳跃排序)DENSE_RANK()并列连续创建实例表:点击查看代码DROPtableIFEXISTScon;CreateTableIFNOTEXISTScon(idint,Numint);INSERTINTOconVALUES(1,1);INS......
  • 【转】[MySQL] 忘记密码的处理之 Windows 篇
    来自:阿里的通义灵码在Windows环境下,如果你忘记了MySQL的root密码,可以通过以下步骤重置:停止MySQL服务:打开“服务”管理工具(可以通过运行 services.msc 或搜索“服务”找到)。找到名为 MySQL 或 MySQL80(根据你的版本)的服务,然后右键选择“停止”。找到MySQ......
  • 【转】[MySQL] 忘记密码的处理之 Linux 篇
    来自:阿里的通义灵码如果你忘记了MySQL的root用户密码,可以按照以下步骤重置:方法1:使用 mysqld_safe 跳过授权表停止MySQL服务:bash sudoservicemysqlstop启动MySQL并跳过授权表:bash sudomysqld_safe--skip-grant-tables&登录到MyS......
  • mysql8.0数据库添加用户和授权
    MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作1.创建新用户createuser'username'@'host'identifiedby'password';其中username为自定义的用户名;host为登录域名,host为'%'时表示为任意IP,为localhost时表示本机,或者填写指......
  • 平时开发的优化代码:
    第一:检验,报错直接抛出异常: Objects.requireNonNull(contactId);第二:方法名,检查是否需要输出日志:if(printLogIfNeeded)//对于sql查询方法、java中的方法名字的命名定义推荐:find..By/query..By/get..By//检验查询结果是否业务需要返回的codeCustomerBuPOcustomerBu......