SQL优化(2)
建表时候数据库引擎的选择也可以达到优化的效果
InnoDB:
基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
MyISAM:在磁盘上存储为三个文件
.frm文件存储表定义。
数据文件的扩展名为.MYD (MYData)。
索引文件的扩展名是.MYI (MYIndex)。
InnoDB提供事务支持事务,外部键等高级数据库功能
MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持
对于MyISAM数据库,需要定时清理
optimize table 表名
数据库参数配置:
最重要的参数就是内存,主要用到的innodb引擎,调大下面的两个参数:
innodb_additional_men_pool_size=64M
innodb_buffer_pool_size = 1G
对于MyISAM,需要调整key_buffer_size,当然调整参数还是要看状态,用show_status语句查看当前状态,
以决定调整哪些参数
优化group by语句
group by的时候默认会对数据进行排序,这时候可以采用order by null可以禁止排序
某些情况下,可以使用连接来代替子查询。因为在mysql中join方式不需要在内存中创建临时表,效率较高
在精度要求高的应用中,建议使用定点数(decimal)来存储数值,以保证结果的准确性。
create table sal(t1 float(10,2));
create table sal2(t2 decimal(10,2));
表的水平划分
以一个标准去划分表
表的垂直划分
数据库存储图片路径,图片放置在另外的服务器上(图床)
读写分离:
http://blog.csdn.net/cutesource/article/details/5710645
对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。
这句话阐述了优点和缺点及何时使用。
5.5版本的mysql数据存储的位置--》 C:\ProgramData\MySQL\MySQL Server 5.5\data\test
可以参见my.ini中的配置
SQL优化(2)的更多相关文章
- SQL优化案例—— RowNumber分页
将业务语句翻译成SQL语句不仅是一门技术,还是一门艺术. 下面拿我们程序开发工程师最常用的ROW_NUMBER()分页作为一个典型案例来说明. 先来看看我们最常见的分页的样子: WITH CTE AS ...
- sql 优化
1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,from子句中写在最后的表(基础表driving table)将被最先处 ...
- SQL 优化总结
SQL 优化总结 (一)SQL Server 关键的内置表.视图 1. sysobjects SELECT name as '函数名称',xtype as XType FROM s ...
- (转)SQL 优化原则
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...
- sql优化阶段性总结以及反思
Sql优化思路阶段性心得: 这段时间的优化做了好几个案例,其实有很多的类似点,都是好几张大表的相互连接,然后执行长达好几个小时,甚至都跑不出来. 自己差不多的思路就是Parallel full tab ...
- mysql sql优化实例
mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...
- SQL优化技巧
我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关 ...
- ORACLE常用SQL优化hint语句
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...
- SQL优化有偿服务
本人目前经营MySQL数据库的SQL优化服务,100块钱一条.具体操作模式 其中第一条,可以通过在微信朋友圈转发链接中的信息(http://www.yougemysqldba.com/discuz/v ...
- 【MySQL】SQL优化系列之 in与range 查询
首先我们来说下in()这种方式的查询 在<高性能MySQL>里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的. ...
随机推荐
- Codeforces Round #341 (Div. 2) ABCDE
http://www.cnblogs.com/wenruo/p/5176375.html A. Wet Shark and Odd and Even 题意:输入n个数,选择其中任意个数,使和最大且为奇 ...
- 高并发Web服务的演变:节约系统内存和CPU
一.越来越多的并发连接数 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置.虽然现 ...
- light oj 1294 - Positive Negative Sign
1294 - Positive Negative Sign PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
- [转]JQuery判断浏览器类型版本1.9和2.0之后的区别
转至:http://zhidao.baidu.com/link?url=Nzk2aSxBKRZKYg9Evqn8hLwMyXTI-4jza-zCAZq4Vd6hWCOHIvuBX6yj8hzDYDrf ...
- pycharm的使用技巧
本文将持续更新一些关于在使用pycharm的过程中的小技巧: 多行缩进/取消缩进 选中需要更改的代码,按 shift + tab 多行注释/取消注释 选中需要更改的代码,按 ctrl + / 滚轮 ...
- Oracle- 初识
我一直没用过ORACLE.今天总算装上了,说一下我装的过程,感觉还是有点折腾的. 一.我装的是ORACLE 9版本,从网上下载的总大小1.3G.是三个压缩包. 首先我解压三个压缩包后,使用UltraI ...
- 验证(Verification)与确认(Validation)的差别
验证(Verification)与确认(Validation)的差别 说法一: (2)“验证(Verification)”的涵义 通过提供客观证据对规定要求已得到满足的认定. (2)“确认(Valid ...
- TransactionScope
最近发现微软自带的TransactionScope(.Net Framework 2之后)是个好东东,提供的功能也很强大. 首先说说TransactionScope是什么,并能为我们做什么事情.其实看 ...
- stl之deque双端队列容器
deque与vector很相似,不仅能够在尾部插入和删除元素,还能够在头部插入和删除. 只是当考虑到容器元素的内存分配策略和操作性能时.deque相对vector较为有优势. 头文件 #include ...
- [React] Creating a Stateless Functional Component
Most of the components that you write will be stateless, meaning that they take in props and return ...