- 1 MySQL 简介
- MySQL 版本和产品线说明
- MySQL 安装
- 2 MySQL 基础教程
- 2.1 SQL 语法:SELECT/INSERT/UPDATE/DELETE
- 2.2 MySQL 列类型
- 2.3 使用用户变量
- 2.4 MySQL 的日期和时间管理
- 2.5 集合运算
- 3 MySQL 高级教程
- 3.1 触发器
- 3.2 视图
- 3.3 复制 Replication~主从库配置
- 3.4 分区存储
- 本章参考
- 4 MySQL 优化
- 4.1 优化数据库结构
- 4.2 优化 SQL 语句
- 4.3 优化索引
- 4.4 优化数据库服务器 mysql_serverd
- 4.5 修改配置文件 my.cnf/my.ini
- 5 MySQL 管理
- 5.1 MySQL 管理常用命令
- 5.2 MySQL 权限管理
- 5.3 MySQL 备份和恢复
- 5.4 MySQL 数据库安全
- 常见问题 FAQ
- 使用的常见问题
- MySQL 字符集乱码
- MySQL 存储二进制图片
- 参考资料
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4 MySQL 优化
当使用 MyISAM 存储引擎时,MySQL 使用极快速的表锁定,以便允许多次读或一次写。使用该存储引擎的最大问题出现在同一个表中进行混合稳定数据流更新与慢速选择。如果这只是某些表的问题,你可以使用另一个存储引擎。参见 第 15 章: 存储引擎和表类型 。
MySQL 可以使用事务表和非事务表。为了更容易地让非事务表顺利工作(如果出现问题不能回滚),MySQL 采用下述规则。请注意这些规则只适用于不运行在严格模式下或为 INSERT 或 UPDATE 使用 IGNORE 规定程序时。
- 所有列有默认值。请注意当运行在严格 SQL 模式(包括 TRADITIONAL SQL 模式) 时,必须为 NOT NULL 列指定默认值。
- 如果向列内插入不合适的或超出范围的值,MySQL 将该列设定为“最好的可能的值”,而不是报告错误。对于数字值,为 0、可能的最小值或最大值。 对于字符串,为空字符串或列内可以保存的字符串。请注意当运行在严格模式或 TRADITIONAL SQL 模式时该行为不 适用。
- 所有表达式的计算结果返回一个表示错误状况的信号。例如,1/0 返回 NULL。(使用 ERROR_FOR_DIVISION_BY_ZERO SQL 模式可以更改该行为)。
如果正使用非事务表,不应该使用 MySQL 来检查列的内容。一般情况,最安全的(通常是最快的) 方法径是让应用程序确保只向数据库传递合法值。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论