mysql开发中遇到的坑_mysql优化过程中遇见的坑(mysql优化问题特别注意)
单条查询最后添加 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优化问题特别注意)相关推荐
- 网络推广软文浅谈网站优化过程中图片的优化技巧和注意事项!
在网站优化的过程中,网络推广软文介绍到不仅要做好关键词的优化,也更要做好图片优化,在网站不断地利用图文模式时,做好图片优化对网站的排名提升也有很大的帮助.那么对于图片优化都有哪些技巧呢?下面网络推广软 ...
- 【转】C 编译器优化过程中的 Bug
C 编译器优化过程中的 Bug 一个朋友向我指出一个最近他们发现的 GCC 编译器优化过程(加上 -O3 选项)里的 bug,导致他们的产品出现非常诡异的行为.这使我想起以前见过的一个 GCC bug ...
- day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法
在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...
- 重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决
在安装过程中所遇到的问题有: 1.my-default.cnf文件找不到 2.mysql启动报错 3.mysql临时密码无法登录 安装环境centos 6.0 下载数据库: [root@CLangua ...
- 网站SEO优化过程中的几个注意事项
以往大部分网站站长做网站SEO优化就是单纯为了流量.排名,从而赚取一定的广告费用分成.但是随着近几年自媒体时代的到来,不管是搜索引擎还是对于用户来说,内容是越来越得到重视.所以SEOer在网站SEO优 ...
- sql优化基数和耗费_基数估计在SQL Server优化过程中的位置
sql优化基数和耗费 In this blog post, I'm going to look at the place of the Cardinality Estimation Process i ...
- seo模拟点击软件_网站外链在SEO优化过程中不可或缺 - 360排名点击软件
原出处:超级排名系统 原文链接:网站外链在SEO优化过程中不可或缺 - 超级排名系统 在网站优化的路上,要充分考虑到优质外链的含义,但是很多站长虽然近似疯狂的发外链,贴外链.几乎所到之处都可以留下外链 ...
- 开发知识竞赛答题活动小程序过程中使用到的实用工具库介绍
前言 我在做知识竞赛答题活动小程序经常需要处理一些比较基础的事情,比如时间.数组.数字.对象.字符串等处理,自己造轮子的话成本会比较高.这时候我们可以去找一些别人已经写好的开源模块或者开源库,我们直接 ...
- 网站SEO优化过程中遇到关键词排名异常的解决办法
在优化seo网站时,不可避免地会遇到一些问题.排名异常等问题需要引起我们的注意.那么,当我们遇到异常排名时,我们应该如何进行后续操作?我今天战神SEO快排要和你谈谈.这个问题. 实际上,这非常简单.我 ...
- MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...
### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...
最新文章
- Survey | 基于生成模型的分子设计
- 别忽视新冠轻症,它会损害你的记忆力
- 汇编复制字符串小程序笔记
- 学习笔记:App-V测试错误代码4505CD-1690150A-20000194
- php管理员登陆问题,discuz论坛管理员无法登录后台的原因和解决方法
- 延迟摄影渲染工具LRTimelapse 6 for Mac
- Jmeter-配置元件
- 26.卷1(套接字联网API)---线程
- 使用国内源来安装pytorch(速度很快)
- JAVA获取汉字拼音首字母
- android 下载apk 安装程序,Android实现APK下载安装
- 条件运算符 c语言,C语言 —— 条件运算符
- 阿里技术专家楚衡:架构制图的工具与方法论
- 我的世界java版和基岩版是什么意思_我的世界基岩版是什么意思
- 【Linux CentOS系统】Matplotlib不显示Times New Roman
- 基于ssm外卖点餐系统源码
- 基于LM334芯片的恒流源调试
- 量子计算机算法与应用研究论文(转载务必注明出处)
- Java中什么是JRE?什么是JRE?
- PHP开发手机自动拨号软件
热门文章
- tensorflow gpu windows配置步骤教学
- 2 Hadoop的安装与配置
- 【国际专场】laravel多用户平台(SaaS, 如淘宝多用户商城)的搭建策略
- 使用Chrome开发者工具调试Android端内网页(微信,QQ,UC,App内嵌页等)
- Kali渗透测试——利用metasploit攻击靶机WinXP SP1
- JavaScript-基础入门.0014.JavaScript内置对象
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 13.中英文版本切换设计
- =======================================以前的======================================
- Swing-BoxLayout用法-入门
- 向周鸿祎的360安全浏览器学互联网产品运营和推广