zoukankan      html  css  js  c++  java
  • mysql常用语句

    一:添加字段:

    ALTER TABLE `jifen_gather` ADD `lo_baidu_valid_uv` INT( 11 ) NOT NULL DEFAULT '0' COMMENT '有效的百度搜索uv' AFTER `lo_baidu_no_xiala` ;

    二:表链接时的事项:

    一般要使得数据库查询语句性能好点遵循一下原则:

    • 在做表与表的连接查询时,大表在前,小表在后
    • 不使用表别名,通过字段前缀区分不同表中的字段
    • 查询条件中的限制条件要写在表连接条件前
    • 尽量使用索引的字段做为查询条件

    笛卡尔积
          笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join)。所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据任意组合,上图中两个表连接即为笛卡尔积(交叉连接)

    http://www.jb51.net/article/28188.htm

    三:mysql中inner join 与使用 where 进行联表查询有什么区别?

    以下两条sql语句有什么差别:  

    select * from a inner join b on a.id = b.id
    select * from a,b where a.id = b.id

    mysql 经过优化器优化后执行以上两条你给出的sql没有任何区别别。

    INNER JOIN和,(逗号)在无联合条件下是语义相同的:两者都可以对指定的表计算出笛卡儿乘积(也就是说,第一个表中的每一行被联合到第二个表中的每一行)。

    请参考mysql手册
    http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#select

    差集:

    NOT IN 表示差集
    SELECT * FROM table1 WHERE name NOT IN (SELECT name FROM table2)

    四:mysql中获取当前使用的数据库:

    使用:

    status;
    或者
    show database;

    五:MySQL 性能 mysql如何优化大数据量情况下的distinct

    回答一:

    在mysql的优化中,有一条是:大量的排序操作影响系统性能,所以尽量减少排序操作。GROUP BY、ORDER BY、 ROLLUP、DISTINCT等都会产生排序。少用DISTINCT!
    至于DISTINCT为什么效率低上面兄弟们说的已经很明白了,我这里不说了。我主要说一下用什么方法尽量替代DISTINCT。用EXISTS代替DISTINCT。EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果。

    低效率:
    select distinct userid,username from user,userinfo where user.userid=userinfo.userid
    高效率:
    select userid,username from user where exists (select 'T' from userinfo where userinfo.userid=user.userid)

    其中T的意思是:
    因为exists只是看子查询是否有结果返回,而并不关心返回的是什么内容,因此通常建议写一个常量,至少性能不可能比select 一个具体的字段出来差,而某些情况下,select具体的字段出来性能可能比select 一个常量出来要差得多。

    你可以在大数据量的数据库里测试一下上面的sql。不过以上方案仅适合userid为唯一主键的情况。

    回答二:

    DISTINCT操作只需要找出所有不同的值就可以了。而GROUP BY操作还要为其他聚集函数进行准备工作。从这一点上将,GROUP BY操作做的工作应该比DISTINCT所做的工作要多一些。但实际上,GROUP BY 效率会更高点,对于DISTINCT操作,它会读取了所有记录,而GROUP BY需要读取的记录数量与分组的组数量一样多,也就是说比实际存在的记录数目要少很多,因此单表查询时建议用group by替换distinct。

  • 相关阅读:
    spring ApplicationListener接口
    spring提供的几个常用可实现的接口
    dubbo源码解析(三) DubboInvoker
    Java生日计算年龄工具
    css实现右尖括号样式
    微信小程序支付开发之申请退款
    微信小程序picker组件
    java 获取用户ip
    spring boot 添加拦截器的简单实例(springBoot 2.x版本,添加拦截器,静态资源不可访问解决方法)
    JVM 组成以及各部分作用
  • 原文地址:https://www.cnblogs.com/Alight/p/3860683.html
Copyright © 2011-2022 走看看