MySQL的随笔
数据库引擎
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的随笔的更多相关文章
- MySQL使用随笔
001 查看版本 mysql --version mysql > select version(); mysql > status; 002 新建MySQL用户.授权 insert int ...
- Mysql查询优化随笔记录
select SQL_CALC_FOUND_ROWS * from (select * from oses_vehdata201606 union all select * from oses_ ...
- 深入浅出mysql全文随笔
进入mysql :mysql -uroot -p 1.DDL(Data Definition Languages)语句:数据定义语言 2.DML(Data Manipulation Language) ...
- MySQL学习随笔记录
安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...
- MYSQL练习随笔
解法练习 案例1.子查询练习 字段 说明film_id 电影idtitle 电影名称description 电影描述信息category_id 电影分类idname 电影分类名称last_update ...
- MySQL -2- 体系结构--随笔小记
简介与安装NoSQLRDBMS版本安装方式二进制安装,源码安装体系结构CS模型TCP/IPsocketmysql master thread 实例mysqld 的程序构成连接层 协议.验证.链接线程S ...
- MySQL/MariaDB随笔二
mariaDB的二进制安装:系统版本和MariaDB版本 [root@ ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@ ~ ...
- MySQL/MariaDB随笔一
1.yum 安装后先跑一下系统自带的安全脚本,否则数据库很不安全,任何人都可以登录 [root@xixi ~]# mysql_secure_installation NOTE: RUNNING ALL ...
- mysql时间随笔
SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s') FROM `order`; select date_add(FROM_UNIXTIME(cr ...
随机推荐
- Web页面执行shell命令
本文以apache为web服务器为例 安装apache服务yum -y install httpd 启动apachesystemctl restart httpd 创建shell脚本cd /var/w ...
- 洛谷P4907【CYH-01】小奔的国庆练习赛 :$A$换$B$ $problem$(DFS,剪枝)
洛谷题目传送门 顺便提一下题意有一个地方不太清楚,就是如果输出No还要输出最少需要添加多少张牌才能满足要求.蒟蒻考完以后发现四个点Too short on line 2... 比较需要技巧的搜索 既然 ...
- zabbix3.2添加web页面监控(Web monitoring)
应用场景: 存在一种情况:nginx或者httpd服务本身运行正常,但是网页挂了,类似于网页被黑,或者40X之类的... 可以用zabbix把web页面访问也监控起来,第一时间得知web崩溃信息并做相 ...
- 牛客练习赛43 Tachibana Kanade Loves Game (简单容斥)
链接:https://ac.nowcoder.com/acm/contest/548/F来源:牛客网 题目描述 立华奏是一个天天打比赛的萌新. 省选将至,萌新立华奏深知自己没有希望进入省队,因此开始颓 ...
- ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies (打表找规律+快速幂)
题目链接:https://nanti.jisuanke.com/t/31716 题目大意:有n个孩子和n个糖果,现在让n个孩子排成一列,一个一个发糖果,每个孩子随机挑选x个糖果给他,x>=1,直 ...
- HTML 5 canvas globalCompositeOperation 属性
做一个canvas鼠标跟随动画的时候用到了,就copy w3c的解释整理一番: globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上. 源 ...
- 第一次有人把5G讲的这么简单明了
第一次有人把5G讲的这么简单明了 鲜枣课堂 纯洁的微笑 今天 关于5G通信,常见的文章都讲的晦涩难懂,不忍往下看,特转载一篇,用大白话实现5G入门. 简单说,5G就是第五代通信技术,主要特点是波长为毫 ...
- spring boot 连接mysql mongodb with jpa
https://github.com/bigben0123/gs-accessing-data-mysql-mongo-jpa
- apache StringUtils 工具类
// org.apache.commons.lang3.StringUtils // 1.IsEmpty/IsBlank - checks if a String contains text 检查是否 ...
- iview tree 获取选中子节点的整条数据链
这样子获取到数据是,checked等于true的,获取不到他的父级,父级的父级 解决办法代码如下: //需要有一个唯一ID //==================================== ...