美文网首页
2019-01-10 Mysql 记录

2019-01-10 Mysql 记录

作者: rub1cky | 来源:发表于2019-01-10 10:57 被阅读0次
  • 1.根据查询建立合适的索引(单字段索引和联合索引),不要只设置PRIMARY索引,查询其他字段时会进行全表扫描
#查看索引
show  index from tbname;
#修改索引
alter table tbname add index (`字段名`, ...)

  • 2.按照索引书写查询语句,最左前缀原理
# 查看查询语句是全表查询还是索引查询
explain sql;

  • 3.distinct
    mysql 用distinct 来查询出某个字段不重复的记录
select distinct userid from user;

如果同时要查出其他字段,就只能用group by


  • 4.模糊查询
    如果匹配字段前缀字符串, like%, 会采用索引的range查询
    如果匹配字段中间字符串,%like%, 全表查询

  • 5.范围索引
    范围查询只有一个条件可以用到索引查询,同时,索引最多用于一个范围列,因此如果查询条件中有两个范围列则无法全用到索引。

  • 6.查询条件中有表达式
    不会使用索引

  • 7.临时表
  1. 如果GROUP BY 的列没有索引,产生临时表.
  2. 如果GROUP BY时,SELECT的列不止GROUP BY列一个,并且GROUP BY的列不是主键 ,产生临时表.
  3. 如果GROUP BY的列有索引,ORDER BY的列没索引.产生临时表.
  4. 如果GROUP BY的列和ORDER BY的列不一样,即使都有索引也会产生临时表.
  5. 如果GROUP BY或ORDER BY的列不是来自JOIN语句第一个表.会产生临时表.
  6. 如果DISTINCT 和 ORDER BY的列没有索引,产生临时表.
  • 8.Mysql 是先执行内联表然后再进行条件查询的最后再分组

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行

相关文章

  • 2019-01-10 Mysql 记录

    1.根据查询建立合适的索引(单字段索引和联合索引),不要只设置PRIMARY索引,查询其他字段时会进行全表扫描 2...

  • 2019-01-10

    2019-01-10 周四 晴 ...

  • 如何查看mysql数据库操作日志记录

    如何查看mysql数据库操作日志记录 首先确认mysql日志记录是否启用mysql> show variables...

  • mysql 开启慢查询及其用mysqldumpslow做日志分析

    mysql 开启慢查询 mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过...

  • Mysql 慢查询日志

    Mysql 慢查询日志 慢查询日志 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中...

  • MySQL慢查询日志如何开启以及分析

    1、MySQL慢查询日志是什么 (1)MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中...

  • Mac MySql命令行

    以下都是记录自己在使用mysql中遇到的命令行进行记录:mysql.server start // 启动mysql...

  • 学习MySQL---ing

    @[toc] Mac MySQL使用教程 本文记录在我的GitHub 记录使用Homebrew安装Mysql全过...

  • MySQL 慢查询分析实践

    mysql默认未开启慢查询记录功能;默认慢查询时间为10秒。 一、mysql开启慢查询日志记录 二、利用mysql...

  • Mysql 游标总结

    Mysql 游标总结 在MySql中的查询语句能返回多条记录结果,那么表达式中如何遍历这些记录结果?在MySql中...

网友评论

      本文标题:2019-01-10 Mysql 记录

      本文链接:https://www.haomeiwen.com/subject/fzeorqtx.html