数据库引擎

MySQL5.0支持的存储引擎包括MyISAM,InnoDB、MEMORY、MERGE、BDB等等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

MyISAM

  MyISAM不支持事务,也不支持外键,优势是访问速度快。对事务完整性没有要求,并且查询插入较多的应用基本上都可以使用这个引擎来建表。锁机制方面,MyISAM支持表锁。

InnoDB

  InnoDB则提供了具有提交,回滚和崩溃恢复能力的事务安全。相比MyISAM,InnoDB的写的处理效率较差并且会占用更多的磁盘空间来保留数据和索引。MySQL支持外键的只有InnoDB。InnoDB支持行锁。

数据类型的选择

char和varchar

char长度固定而varchar可变,因此char处理速度快,但是浪费存储空间,varchar则相反。但是随着版本的更新varchar的性能也在改变。

对于MyISAM存储引擎,建议使用固定长度的数据列代替可变长度的数据列。

对于InnoDB存储引擎:建议使用varchar。由于InnoDB的数据表里的数据行都使用指向数据列值的头指针,并没有区分固定长度和可变长度,因此性能没多大差别,但是存储的总量有差,因此选择varchar。

设置索引的原则

搜索的索引列不一定是所有选择的列。最适合索引的列是出现在where子句中的列,或连接子句中指定的列,而不是出现在select关键字后选择列表的列。

使用索引。索引列的基数越大,索引的效果越好。如果只用来记录性别只含有F和M只能得出一半的行,效果并不好。

使用短索引。较小索引涉及的磁盘IO较少,并且对于较短的键值,索引高速缓存能够容纳更多。

最左前缀原则。

不要过度使用索引。 索引需要维护。

优化SQL语句的一般步骤

1.通过show status命令了解SQL的执行频率

Com_xxx表示 每个xxx语句的执行频率  例如:Com_select  Com_insert

Connections :试图连接MySQL服务器的次数等等

2.定位执行效率较低的SQL语句

通过慢查询日志定位  使用show processlist命令查看当前线程,对一些锁表操作进行优化。

3.通过explain分析低效SQL的执行计划

4.确定问题并采取相应的优化措施。

以上仅仅是大概的流程...详细流程有空再写。

MySQL的随笔的更多相关文章

  1. MySQL使用随笔

    001 查看版本 mysql --version mysql > select version(); mysql > status; 002 新建MySQL用户.授权 insert int ...

  2. Mysql查询优化随笔记录

    select SQL_CALC_FOUND_ROWS * from (select * from  oses_vehdata201606 union all  select * from  oses_ ...

  3. 深入浅出mysql全文随笔

    进入mysql :mysql -uroot -p 1.DDL(Data Definition Languages)语句:数据定义语言 2.DML(Data Manipulation Language) ...

  4. MySQL学习随笔记录

    安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...

  5. MYSQL练习随笔

    解法练习 案例1.子查询练习 字段 说明film_id 电影idtitle 电影名称description 电影描述信息category_id 电影分类idname 电影分类名称last_update ...

  6. MySQL -2- 体系结构--随笔小记

    简介与安装NoSQLRDBMS版本安装方式二进制安装,源码安装体系结构CS模型TCP/IPsocketmysql master thread 实例mysqld 的程序构成连接层 协议.验证.链接线程S ...

  7. MySQL/MariaDB随笔二

    mariaDB的二进制安装:系统版本和MariaDB版本 [root@ ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@ ~ ...

  8. MySQL/MariaDB随笔一

    1.yum 安装后先跑一下系统自带的安全脚本,否则数据库很不安全,任何人都可以登录 [root@xixi ~]# mysql_secure_installation NOTE: RUNNING ALL ...

  9. mysql时间随笔

    SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s') FROM `order`; select date_add(FROM_UNIXTIME(cr ...

随机推荐

  1. Android工程图片资源命名禁忌

    Android工程中,res\drawable\ 文件夹下所有的图片资源文件命名,不允许: 1. 大写字母 从Eclipse的这个报错可以知道资源文件的命名规则. Invalid file name: ...

  2. 【BZOJ3167】[HEOI2013]SAO(动态规划)

    [BZOJ3167][HEOI2013]SAO(动态规划) 题面 BZOJ 洛谷 题解 显然限制条件是一个\(DAG\)(不考虑边的方向的话就是一棵树了). 那么考虑树型\(dp\),设\(f[i][ ...

  3. 【BZOJ2324】[ZJOI2011]营救皮卡丘(网络流,费用流)

    [BZOJ2324][ZJOI2011]营救皮卡丘(网络流,费用流) 题面 BZOJ 洛谷 题解 如果考虑每个人走的路径,就会很麻烦. 转过来考虑每个人破坏的点集,这样子每个人可以得到一个上升的序列. ...

  4. [luogu3810][bzoj3262]陌下花开【cdq分治】

    题目描述 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),用三个整数表示.现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当且仅Sa&g ...

  5. ELK部署详解--logstash

    logstash.yml # Settings file in YAML## Settings can be specified either in hierarchical form, e.g.:# ...

  6. mysql5.6做单向主从复制Replication

    原理场景:MySQL从3.23版本开始提供复制功能.指的是将主数据库的DDL和DML操作通过二进制日志传到从服务器(也叫从库),然后在从库上对这些日志重新执行, 从而使得从库和主库的数据保持同步. 优 ...

  7. hdu 1503 Advanced Fruits(LCS输出路径)

    Problem Description The company "21st Century Fruits" has specialized in creating new sort ...

  8. springboot jar包运行中获取资源文件

    1. 今天晚上写了一个程序,基于Spring boot的一个小网站,发现使用FileUtils.class.getResource(path)来获取jar包中的资源文件并不能成功,其路径很奇怪 fil ...

  9. netsh interface portproxy的一个简单例子

    netsh interface portproxy的微软帮助文档地址: https://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx ...

  10. linux free命令

    Linux上的free命令详解 free命令的所有输出值都是从/proc/meminfo中读出的 total used free shared buffers cached Mem: -/+ buff ...