设计合理的数据表结构
1:选择合适的数据类型,如果能定长,尽量定长
2:不要使用无法加索引的类型为关键字段,比如text类型
3:为了避免联表查询,有时候可以适当的数据冗余,比如邮箱,名字这些不容易更改的数据
4:选择合适的表引擎,有时候MyISANM适合,有时候InnoDB适合,
5:为了保证查询性能,最好保证每个表建立auto_increatment字段,建立合适的数据库索引
6:最好给每个字段都设置default值
索引建立原则
1:一般针对数据分散的关键字进行建立索引,比如ID,QQ,像性别,状态值建立索引没有意义。
2:尽量使用短索引,一般对int,char/varchar.date/time等类型的字段建立索引
3:需要的时候建立联合索引,但是要注意查询SQL语句的编写
4:一般建议每条记录最好有一个能够快速定位独一无二定位的唯一标识(索引)、
5:不要过度索引,单表建立的索引不要超过5个,负责更新索引很耗时
编写高效的SQL
1:能够快速缩小结果集的where条件写在前面,如果有恒量条件也尽量放在前面。
2:尽量避免group by,distinct,in,or等语句的使用,避免使用联表查询和子查询,因为将使执行效率大大下降。
3:能够使用索引的字段尽量进行合理的有效排列,如果使用了联合索引,请注意提取字段的前后顺序。
4:针对索引字段使用,大小等的比较,if null 和between 将会使用索引,使用like 'abc%'将能够使用索引,
5:如果在SQL中使用了MySQL的部分自带函数,索引将失效,同时将无法使用MYSQL的query Cache,比如letf(),SUBSTR().TO_DAYS(),DATE_FORMAT()等,如果使用了OR或者In,索引也将失效。
常用技巧分享
1:使用 SHOW PROCESSLIST来查看当前MYSQL服务器线程的执行情况,是否锁表,查看相应的SQL语句。
2:设置 my.ini中的long-query-time和log-slow-queries能够记录服务器中那些SQL执行较慢,
3:使用DESC TABLE xxx来查看表结构,使用SHOW INDEX FROM xxx来查看表索引。
4:使用LAOD DATA倒入数据比INSERT INTO快多了。
5:SELECT count() From Tbl在你InnoDb中要扫描整个表来计算有多少行,但是MyISAM只要简单的读取保存好的行数即可,注意的是,当count()语句包含where条件时,两种表的操作是一样的。
Select查询速度
要想是一个较慢的select where更快,应首先检查是否能够增加一个索引,你可以使用explain语句来确定select语句使用那些索引。
为了帮助MySQL更好的优化查询,在一个装载数据后的表上运行 ANALYZE TABLE或myisamchk –analyze。这样为每一个索引更新指出有相同值得行的平均行数的值,(当然,如果只有一个索引,这总是1),Mysql采用这种方式来决定当你连接两个基于非常量表达式的表时,该采用哪个索引,你可以使用SHOW INDEX FROM tbl_name并检查cardinality值来检查表,分析结果

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具