IT技术博客大学习 共学习 共进步

Mysql的一些记录

Incessant 2009-10-11 22:42:06 累计浏览 3,382 次
本机暂存
年纪大了,很多东西容易忘记,就当做流水记录下来吧。

    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范围来不断循环处理,这种处理有点出乎我的意料,写的很不错。

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,161)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,321)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,080)
  4. Mysql监控指南 (累计阅读 21,201)
  5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,180)
  6. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 12,980)
  7. 15个最好的免费开源电子商务平台 (累计阅读 12,460)
  8. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,480)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,421)
  10. 深入浅出INNODB MVCC机制与原理 (累计阅读 9,620)