表示 进入内容 134011341015677
« 先前的 10 新的记录 | 下一步 10 较早的记录 »
mysql常见操作汇总

sql优化小结:之前3m+,现在 300ms~400ms解决思路:去掉冗余的查询条件,尽量使用3星索引。 更改字段长度,字段imei 由varchar(1024)更改为varchar(45) ,索引中涉及到imei字段的由imei(255)变为imei梳理api接口使用中查询所需字段,优化查询条件,将一些不需要的查询参数去掉。

【mysql】  【innodb】  【函数】  【Server】  【索引】  【index】   …

[获取更多]
什么情况下会用到临时表

   MySQL在以下几种情况会创建临时表:

1、UNION查询;
2、用到TEMPTABLE算法或者是UNION查询中的视图;
3、ORDER BY和GROUP BY的子句不一样时;
4、表连接中,ORDER BY的列不是驱动表中的;
5、DISTINCT查询并且加上ORDER BY时;
6、SQL中用到SQL_SMALL_RESULT选项时;
7、FROM中的子查询;
8、子查询或者semi-join时创建的表;

   EXPLAIN 查看执行计划结果的 Extra 列中,如果包含 Using Temporary 就表示会用到临时表。

   当然了,如果临时表中需要存储的数据量超过了上限( tmp-table-size 或 …

[获取更多]
老叶观点:MySQL开发规范之我见

   大多数MySQL规范在网上也都能找得到相关的分享,在这里要分享的是老叶个人认为比较重要的,或者容易被忽视的,以及容易被混淆的一些地方。

   1、默认使用InnoDB引擎

   【老叶观点】已多次呼吁过了,InnoDB适用于几乎99%的MySQL应用场景,而且在MySQL 5.7的系统表都改成InnoDB了,还有什么理由再死守MyISAM呢。

   此外,频繁读写的InnoDB表,一定要使用具有自增/顺序特征的整型作为显式主键。

   【参考】:[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键

   2、字符集选择utf-8

  …

[获取更多]
老叶观点:MySQL开发规范之我见

大多数MySQL规范在网上也都能找得到相关的分享,在这里要分享的是老叶个人认为比较重要的,或者容易被忽视的,以及容易被混淆的一些地方。

1、默认使用InnoDB引擎
【老叶观点】已多次呼吁过了,InnoDB适用于几乎99%的MySQL应用场景,而且在MySQL 5.7的系统表都改成InnoDB了,还有什么理由再死守MyISAM呢。

此外,频繁读写的InnoDB表,一定要使用具有自增/顺序特征的整型作为显式主键。

参考】:[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键

 

2、字符集选择utf-8

[获取更多]
MySQL的SQL解析器和存储引擎层

客户端通过以SQL语句的形式发送请求给服务器端从而从表中获取数据或对表数据进行修改。而服务端程序使用以下两层处理模型以执行每个语句请求:dbdao.com

  • 上层包括SQL解析器(parser)和优化器(optimizer)。

  • 下层包括了一组存储引擎。

需要注意的是,SQL层并不依赖于存储引擎管理的表。这意味着客户端通常不需要考虑哪个引擎被涉及处理其SQL语句,也不用考虑访问和更新的表是受到哪个引擎的管理。当然也有例外:

  • CREATE TABLE语句有ENGINE项可用于在建立表时启用你所定义的存储引擎。ALTER TABLE语句也含有一个ENGINE项可以使你能将原表转换使用一个不同的存储引擎。

[获取更多]
MySQL的内存使用

MySQL Server内存使用中包括了用于管理与客户端之间进行沟通和处理数据库内容Server所建立的数据结构。它会在运行时为许多类型的信息分配内存,如:

  • 线程(Thread Handler):

线程在MySQL(或其它程序)中被用于将应用的执行分成多个同步运行的任务。对每个连接到MySQL Server的客户端,Server都会建立一个独立的线程来进行连接处理。MySQL Server为了避免一些可能产生的性能问题,会分配一块小的缓存给这些线程,在客户端断开后,被分配的缓存仍然会被保持。任何新的连接会首先通过此缓存来实例化线程,而不是重新建立一个新线程。这样就能确保内存消耗始终处于最低状态。

  • 缓存(Buffers / Cache)

MySQL …

[获取更多]
mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

原文:mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录 mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录,需要的朋友可以参考下。

【mysql】  【索引】   点击查看原文>

mac系统上使用压缩包版的mysql(非安装版)

mac本换了块固态硬盘,一切重新装过,mysql嫌官网下载太慢,直接百度 "mysql mac",第一个就是: 不料下载完后,发现这是一个压缩包版,并没有安装程序。网上搜索了一下,需要手动命令行安装,记录于此: 1.

【mac】  【mysql】   点击查看原文>

怎么将oracle的sql文件转换成mysql的sql文件-- 费元星

http://jingyan.baidu.com/article/ca41422fe01f251eaf99ed6e.html未来星开发团队--狒狒 QQ:9715234

【mysql】  【Oracle】  【SQL】  【html】   点击查看原文>

MySQL 5.7版本新特性连载(四)

本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化。

1、SQL MODE变化
a. 默认启用 STRICT_TRANS_TABLES 模式;
b. 对 ONLY_FULL_GROUP_BY 模式实现了更复杂的特性支持,并且也被默认启用;
c. 其他被默认启用的sql mode还有 NO_ENGINE_SUBSTITUTION;

【iMySQL建议】
对广大MySQL使用者而言,以往不是那么严格的模式还是很方便的,在5.7版本下可能会觉得略为不适,慢慢习惯吧。比如向一个20字符长度的VARCHAR列写入30个字符,在以前会自动截断并给个提示告警,而在5.7版本下,则直接抛出错误了。个人认为这倒是一个好的做法,避免各种奇葩的写法。

【新特性实践】

-- 查看默认的 sql_mode
[yejr@imysql.com]> select @@sql_mode;
+-----------------------------------------------------------------------------------+
| @@sql_mode | …
[获取更多]
表示 进入内容 134011341015677
« 先前的 10 新的记录 | 下一步 10 较早的记录 »