单条查询最后添加 LIMIT 1,停止全表扫描。

对于char(4) 或者vachar(4),无论是中文还是英文都是存储四个字符,注意是字符而不是字节。

如果一个字段未int类型,此类型只有0、1两个状态,需要为此建立索引吗?过度索引,影响更新速度,必须在唯一性较高的字段上建立非聚集索引。

在创建表的时候如果在业务中能保证非null的字段,建议明确标示not null 因为mysql中对null需要特殊的标示。使用not null 字段更节省空间。对接下来的索引构建也有好处。

count() 和count(name) name 代表某个字段,可以为NULL。在mysql中count()会把null统计进去、而count(name) 不会。如果统计的字段中含有null,这个两个统计的结果是不同的。

在sql语句等号左边用函数,会使该查询在该字段无法使用索引。如LENGTH(str) 函数。

索引也是需要存储到物理空间的,经常增删的表不适合建太多的索引,因为索引的维护会很耗时间。一张表最多建立15个索引。索引的长度越小越好,索引是有序的。如果查询Max()之类用索引的话,连表都不用查询了,快得飞起。

mysql中null不参与比较运算,name <>'小米' 得出的结果中不包含 name=null的情况。在业务不能保证某字段是否为null的情况,写代码的时候需要注意null的坑。保证取得的数据是对而全,然后再考虑查询速率问题。

MySQL InnoDB默认行级锁。行级锁都是基于索引的,如果一条SQL语句用不到索引是不会使用行级锁的,会使用表级锁把整张表锁住,这点需要注意。

对整数类型指定宽度,比如INT(11),没有任何卵用。INT使用32位(4个字节)存储空间,那么它的表示范围已经确定,所以INT(1)和INT(20)对于存储和计算是相同的。

UNSIGNED表示不允许负值,大致可以使正数的上限提高一倍。比如TINYINT存储范围是-128 ~ 127,而UNSIGNED TINYINT存储的范围却是0 - 255。

通常来讲,没有太大的必要使用DECIMAL数据类型。即使是在需要存储财务数据时,仍然可以使用BIGINT。比如需要精确到万分之一,那么可以将数据乘以一百万然后使用BIGINT存储。这样可以避免浮点数计算不准确和DECIMAL精确计算代价高的问题。

TIMESTAMP使用4个字节存储空间,DATETIME使用8个字节存储空间。因而,TIMESTAMP只能表示1970 - 2038年,比DATETIME表示的范围小得多,而且TIMESTAMP的值因时区不同而不同。

schema的列不要太多。原因是存储引擎的API工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列,这个转换过程的代价是非常高的。如果列太多而实际使用的列又很少的话,有可能会导致CPU占用过高。

大表ALTER TABLE非常耗时,MySQL执行大部分修改表结果操作的方法是用新的结构创建一个张空表,从旧表中查出所有的数据插入新表,然后再删除旧表。尤其当内存不足而表又很大,而且还有很大索引的情况下,耗时更久。

mysql开发中遇到的坑_mysql优化过程中遇见的坑(mysql优化问题特别注意)相关推荐

  1. 网络推广软文浅谈网站优化过程中图片的优化技巧和注意事项!

    在网站优化的过程中,网络推广软文介绍到不仅要做好关键词的优化,也更要做好图片优化,在网站不断地利用图文模式时,做好图片优化对网站的排名提升也有很大的帮助.那么对于图片优化都有哪些技巧呢?下面网络推广软 ...

  2. 【转】C 编译器优化过程中的 Bug

    C 编译器优化过程中的 Bug 一个朋友向我指出一个最近他们发现的 GCC 编译器优化过程(加上 -O3 选项)里的 bug,导致他们的产品出现非常诡异的行为.这使我想起以前见过的一个 GCC bug ...

  3. day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法

    在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...

  4. 重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决

    在安装过程中所遇到的问题有: 1.my-default.cnf文件找不到 2.mysql启动报错 3.mysql临时密码无法登录 安装环境centos 6.0 下载数据库: [root@CLangua ...

  5. 网站SEO优化过程中的几个注意事项

    以往大部分网站站长做网站SEO优化就是单纯为了流量.排名,从而赚取一定的广告费用分成.但是随着近几年自媒体时代的到来,不管是搜索引擎还是对于用户来说,内容是越来越得到重视.所以SEOer在网站SEO优 ...

  6. sql优化基数和耗费_基数估计在SQL Server优化过程中的位置

    sql优化基数和耗费 In this blog post, I'm going to look at the place of the Cardinality Estimation Process i ...

  7. seo模拟点击软件_网站外链在SEO优化过程中不可或缺 - 360排名点击软件

    原出处:超级排名系统 原文链接:网站外链在SEO优化过程中不可或缺 - 超级排名系统 在网站优化的路上,要充分考虑到优质外链的含义,但是很多站长虽然近似疯狂的发外链,贴外链.几乎所到之处都可以留下外链 ...

  8. 开发知识竞赛答题活动小程序过程中使用到的实用工具库介绍

    前言 我在做知识竞赛答题活动小程序经常需要处理一些比较基础的事情,比如时间.数组.数字.对象.字符串等处理,自己造轮子的话成本会比较高.这时候我们可以去找一些别人已经写好的开源模块或者开源库,我们直接 ...

  9. 网站SEO优化过程中遇到关键词排名异常的解决办法

    在优化seo网站时,不可避免地会遇到一些问题.排名异常等问题需要引起我们的注意.那么,当我们遇到异常排名时,我们应该如何进行后续操作?我今天战神SEO快排要和你谈谈.这个问题. 实际上,这非常简单.我 ...

  10. MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...

    ### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...

最新文章

  1. Survey | 基于生成模型的分子设计
  2. 别忽视新冠轻症,它会损害你的记忆力
  3. 汇编复制字符串小程序笔记
  4. 学习笔记:App-V测试错误代码4505CD-1690150A-20000194
  5. php管理员登陆问题,discuz论坛管理员无法登录后台的原因和解决方法
  6. 延迟摄影渲染工具LRTimelapse 6 for Mac
  7. Jmeter-配置元件
  8. 26.卷1(套接字联网API)---线程
  9. 使用国内源来安装pytorch(速度很快)
  10. JAVA获取汉字拼音首字母
  11. android 下载apk 安装程序,Android实现APK下载安装
  12. 条件运算符 c语言,C语言 —— 条件运算符
  13. 阿里技术专家楚衡:架构制图的工具与方法论
  14. 我的世界java版和基岩版是什么意思_我的世界基岩版是什么意思
  15. 【Linux CentOS系统】Matplotlib不显示Times New Roman
  16. 基于ssm外卖点餐系统源码
  17. 基于LM334芯片的恒流源调试
  18. 量子计算机算法与应用研究论文(转载务必注明出处)
  19. Java中什么是JRE?什么是JRE?
  20. PHP开发手机自动拨号软件

热门文章

  1. tensorflow gpu windows配置步骤教学
  2. 2 Hadoop的安装与配置
  3. 【国际专场】laravel多用户平台(SaaS, 如淘宝多用户商城)的搭建策略
  4. 使用Chrome开发者工具调试Android端内网页(微信,QQ,UC,App内嵌页等)
  5. Kali渗透测试——利用metasploit攻击靶机WinXP SP1
  6. JavaScript-基础入门.0014.JavaScript内置对象
  7. [连载]《C#通讯(串口和网络)框架的设计与实现》- 13.中英文版本切换设计
  8. =======================================以前的======================================
  9. Swing-BoxLayout用法-入门
  10. 向周鸿祎的360安全浏览器学互联网产品运营和推广