刚刚入职不久,一个陪伴项目组走过3年的DBA离职,在最后的一天给我们培训了下,下面是记录的一些要点,MySQL的使用、表设计学问还是很大的,以后还会陆续学习数据库部分的相关知识。
 
1 insert要写字段名,不能光values,避免库表结构变化 
 
2 不要使用select *,写出确切字段,性能考虑,减少IO,MYSQL优化
 
3 尽量少用联表查询
 
4 不能使用联表更新,尽量少用load data
 
5 数据约束尽量由程序保证
 
6 大数据量排序等操作最好由程序完成
 
7 所有字段定位为not null,数值型用0代替,字符型用"代替
 
8 库、表命名方式,按C风格,表名小写,两个 如beiker_sms_template
 
9 50字节以下的直接使用char,不要使用varchar(update delete会增加开销,数据文件碎片搞,文件系统寻址效率低)
 
10 不同表相同字段需要使用相同的字段名,如user_id
 
11 字段加上comment
 
12 杜绝只增不减的表,要定期删除无效数据
 
13 尽量使用主键
 
14 使用前缀索引
 
create table xxx (
id int(20) 
name varchar(255)
value varchr(255)
NOT NULL DEFAULT ‘0000-00-00 00:00:00′
PRIMARY KEY(‘id’)
KEY `userid` (`userid,`’value’,'id’)
)
 
select * from xxx where userid = xx and value = 
 
提高运行效率
 
15 对于innodb来说,使用主键锁的是一行,使用索引锁的可能不值一行
 
16 对于MyISAM 在进行大批量插入前可以将索引关闭,等全部插入完毕后再开启索引,进行索引更新
 
alter table xxx disable keys; 
insert …… insert效率很高
endable keys; 耗时的是分析索引
 
17 单表数据量建议少于2KW,否则存在性能拐点,需要拆表
 
18 union操作尽量少用,必须的情况下用union all,而不要使用union,两次结果重复的行去除掉,CPU IO消耗会少很多,数据量小的话没事
 
19 not in不会使用索引,建议不要使用in,尽量程序做
 
20 不要用ctrl c停止一个脚本 用kill 否则主从同步会不一致。
0
 

一个DBA对于开发人员使用MySQL的tips的更多相关文章

  1. 阿里云数据库实例的一个db被开发人员删除了 如何恢复

    1没有 逻辑备份的话. 如下操作即可 可以将那个临时实例的需要导的db用逻辑备份出来恢复到主实例就行了 好多朋友都在问,RDS中把数据恢复到7天内任意时间点的功能在哪里啊? 其实挺简单的,只需要五步操 ...

  2. DBA_Oracle Database 11g 面向 DBA 和开发人员的重要特性

     2015-01-23 Created By BaoXinjian

  3. 每一个开发人员都应该有一款自己的App

    [谋哥每天一干货]          这篇文章不是鸡汤,是谋哥自己的感悟了. 谋哥近期每日一干货,坚持每天写,才发现这个事情你要是能坚持一年超级难.365天无论刮风下雨.心情好或不好.生病或生气.每天 ...

  4. Web开发人员vs网页设计师

    Web开发人员vs网页设计师 我们都遇到过,但实际的区别是什么?如果您是该领域的新手,请阅读详细内容,这些内容比您想象的更重要. 经过几周(或几个月)的规划和准备,进行市场调查,与其他企业家交谈,现在 ...

  5. Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

    Qt/C++开发人员眼中的Obj-C      对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这 ...

  6. [置顶] think in java interview-高级开发人员面试宝典(一)

    “生死六重门” 无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文! 相信这篇文章对你的职业生涯和阶值观会造成重大的改变! 如果你是一名PM或者是管理者正在物色合适的开发 ...

  7. 为Android开发人员定制的搜索引擎

    我在谷歌上定制了一个专门针对Android开发人员的搜索引擎.载入慢的童鞋考虑FanQiang吧,作为技术人员使用Google才是王道. 在此推荐给大家:cx=01590883735180208228 ...

  8. think in java interview-高级开发人员面试宝典(一)

    "生死六重门" 无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文! 相信这篇文章对你的职业生涯和阶值观会造成重大的改变! 如果你是一名PM或者是管理 ...

  9. 开发人员不得不知的MySQL索引和查询优化

    转载:https://blog.csdn.net/enmotech/article/details/88809822 本文主要总结了慢查询优化的过程中常用的以及不合理的操作,适合有 MySQL 基础的 ...

随机推荐

  1. bzoj 2878: [Noi2012]迷失游乐园【树上期望dp+基环树】

    参考:https://blog.csdn.net/shiyukun1998/article/details/44684947 先看对于树的情况 设d[u]为点u向儿子走的期望长度和,du[u]为u点的 ...

  2. bzoj 1677: [Usaco2005 Jan]Sumsets 求和【dp】

    设f[i]为i的方案数,f[1]=1,考虑转移,如果是奇数,那么就是f[i]=f[i-1]因为这1一定要加:否则f[i]=f[i-1]+f[i>>1],就是上一位+1或者i/2位所有因子乘 ...

  3. php 批量检测bom头,去除bom头工具

    <?php //有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码 if (isset ( $_GET ['dir'] )) { //confi ...

  4. 规范化创建一个vs2017 Mvc框架项目

    vs2107 + dapper + MiniUi 标准化分层封装使 3.1 规范化创建一个vs2017 Mvc框架项目 此时创建的项目勾选 添加单元测试. 添加一个类库,主要用于实体类操作,类库名称 ...

  5. git 详细部署及其应用

    第1章 版本控制系统 自动生成备份.随时回滚.知道改动的地方. 1.1 svn和git的区别 1.1.1 svn 集中式的版本控制系统,只有一个中央数据仓库,如果中央数据库仓库挂了或者不可访问,所有的 ...

  6. webservice 权限控制

    webservice 如何限制访问,权限控制?1.服务器端总是要input消息必须携带用户名.密码信息 如果不用cxf框架,SOAP消息(xml片段)的生成.解析都是有程序员负责 2.拦截器 为了让程 ...

  7. Windows Server 2008 R2关闭FTP服务

    公司在ZJ的项目给了一台互联网可以访问的测试服务器,但是只给了三个访问端口,而且还做了映射. 映射信息如下:[1050->3389,1051->50000,1053->21] 其中1 ...

  8. Previous operation has not finished; run 'cleanup' if it was interrupted.SVN报错

    原因: 错误的原因是SVN管理的文件夹改名.删除文件太过频繁,导致有操作挂起了. 解决方式: 1.百度sqlite3.exe并下载. 2.将该文件解压到项目根目录下的.svn文件夹中. 3.打开cmd ...

  9. jQuery实现文字横向滚动效果

    HTML代码: <div id="aaa" style="width:100px; position:relative; white-space:nowrap; o ...

  10. Spring.Net学习笔记(二)-数据访问器

    Spring对ADO.NET也提供了支持,依赖与程序集Spring.Data.dll IDbProvider IDbProvider定义了数据访问提供器的基础,配置如下 <?xml versio ...