Mysql的一些记录
1.Mysql中,对于视图view,稍微复杂一点点的语法,比如视图定义中存在union,mysql的select查询就不走索引,走全表扫描。
2.Innodb存储引擎:索引存储为键数据+PRIMARY KEY,比如id是主键,建status索引的话,索引数据存储为status+id,这样的话select查询时如果排序的话,尽量根据id来排序。
3.Mysql sql_mode分为严格模式和非严格模式,非严格模式(即不启用STRICT_TRANS_TABLES或STRICT_ALL_TABLES模式)下,对于非法或丢失的值,MySQL将插入调整后的值并给出警告,注意,即使数据错误,mysql也会写到数据库中并给出警告。而对于严格模式,简单的说就是当在列中插入不正确的值时“给出错误而不是警告”,直接报错。
4.Varchar值只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节),当值保存和查询时如果尾部存在空格仍保留,而char在查询时会从CHAR列删除了尾部的空格。
5.木匠提到的问题,也是我非常关注的,在对商品进行编辑时,因为很难断定哪列发生了更新,只好对一行所有记录进行update,50多个字段啊,我还没有看到好的办法,还需要继续研究。
http://zhu1.blogspot.com/2009/03/skip-unchanged-columns-when-update.html
6.Mysql innodb备份开始并没有置一个显著的标注,做恢复(recover)时又没有办法判断要从哪儿开始恢复,非常麻烦。
其实可以通过参数flush-log,让其在备份开始前先刷新bin log,产生一个新的log,然后开始备份。
single-transaction:使用一致性地读,不会锁表,并且保证mysqldump所看见的数据不会更改。
mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > backup_sunday_1_PM.sql。
注意:这种备份只适用于innodb事务型存储引擎
7.对于Sns动态,帮派的设计有了新的进展,对聚合的数据处理有一些突破,当然重要的还是业务方做了妥协,什么叫聚合?
8.这两天在检查开发写的数据迁移模式,根据id范围来不断循环处理,这种处理有点出乎我的意料,写的很不错。
建议继续学习:
- 30分钟3300%性能提升――python+memcached网页优化小记 (阅读:11853)
- WEB系统需要关注的一些点 (阅读:10156)
- 基于SSD的数据库性能优化 (阅读:7177)
- jQuery性能优化指南 (阅读:7145)
- 一次简单C程序的性能优化 (阅读:5451)
- mysql sql 百万级数据库优化方案 (阅读:4846)
- 一次神奇的MySQL优化 (阅读:4687)
- PHP最佳实践 (阅读:4647)
- Linux 64位, MySQL, Swap & Memory 优化 (阅读:4299)
- PHP 性能优化技巧-google (阅读:4188)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Incessant 来源: Incessant
- 标签: 优化
- 发布时间:2009-10-11 22:42:06
- [418] 招聘技巧一二
- [13] linux内核研究笔记(一)内存管理 – p
- [13] 个人开公司的流程,以后用得着
- [11] DBA有什么个人前途?
- [10] 30分钟3300%性能提升――python+
- [10] oracle技术方面的路线
- [10] Hermes:来自腾讯的实时检索分析平台
- [10] ps - 按进程消耗内存多少排序
- [10] 我对技术方向的一些反思
- [10] 我的程序员之路