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 ...
随机推荐
- 【CF809D】Hitchhiking in the Baltic States(Splay,动态规划)
[CF809D]Hitchhiking in the Baltic States(Splay,动态规划) 题面 CF 洛谷 题解 朴素\(dp\):设\(f[i][j]\)表示当前考虑到第\(i\)个 ...
- [SHOI2001]化工厂装箱员(dp?暴力:暴力)
118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须把不同纯度 ...
- Java中数组判断元素存在几种方式比较详解
1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String contai ...
- servlet 上下文
一.应用需求: 如何统计网站在线人数? 使用ServletContext. 二.ServletContext详解: 1.是不同于session和cookie,是可以让所有客户端共同访问的内容,是在服务 ...
- 【转】服务化框架技术选型与京东JSF解密
[京东技术]声明:本文转载自微信公众号“开涛的博客”,转载务必声明. 作者:章耿,原京东资深架构师,曾负责京东服务框架,配置中心等基础平台.近十年工作经验,专注于基础中间件等底层技术架构,对分布式系统 ...
- P1966 火柴排队
这道题需要小小的思考一波 (然而我思考了两节课) 好,我们先得出一个结论:a中第k大的与b中第k大的一定要排在一起,才能保证最小. 然后发现:挪a,b其实没有区别,故我们固定a,挪b. 然后我们就思考 ...
- 修改 iis 的端口号: 80 与 443
来自:https://support.microsoft.com/en-us/help/149605/how-to-change-the-tcp-port-for-iis-services Micro ...
- Solr7.1--- 高亮查询
由于测试数据比较少,昨天用Java爬了简书的几百篇文章,唉,又特么两点多睡的.如果你需要这些测试文件GitHub. 如果你看过我前面的文章,直接打开db-data-config.xml文件,添加一个e ...
- Luogu P4015 运输问题
题目链接 \(Click\) \(Here\) 继续颓网络流\(hhhhh\),虽然这次写的是个大水题,但是早上水一个网络流果然还是让人心情舒畅啊- 最大费用最大流不用非得反着费用建边.只要没有正环, ...
- (点到线段的最短距离)51nod1298 圆与三角形
1298 圆与三角形 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). 收起 ...