个人经验总结:MySQL数据库优化技巧集锦
据文件。如果表被两个线程使用或在同一条查询中使用两次,MyIASM将共享索引文件而是打开数据文件的另一个实例。
如果所有在高速缓存中的表都在使用,缓存将临时增加到比表缓存尺寸大些。如果是这样,下一个被释放的表将被关闭。 你可以通过检查mysqld的Opened_tables变量以检查表缓存是否太小。如果该值太高,你应该增大表高速缓存。
对数据使用优化的列。 如果可能使用定长行。 使用不同的锁定类型(SELECT HIGH_PRIORITY,INSERT LOW_PRIORITY) Auto_increment REPLACE (REPLACE INTO table_name VALUES (...)) INSERT DELAYED LOAD DATA INFILE / LOAD_FILE() 使用多行INSERT一次插入多行。 SELECT INTO OUTFILE LEFT JOIN, STRAIGHT JOIN LEFT JOIN ,结合IS NULL ORDER BY可在某些情况下使用键码。 如果只查询在一个索引中的列,将只使用索引树解决查询。 联结一般比子查询快(对大多数SQL服务器亦如此)。 LIMIT SELECT * from table1 WHERE a > 10 LIMIT 10,20 DELETE * from table1 WHERE a > 10 LIMIT 10 foo IN (常数列表) 高度优化。 GET_LOCK()/RELEASE_LOCK() LOCK TABLES INSERT和SELECT可同时运行。 UDF函数可装载进一个正在运行的服务器。 压缩只读表。 CREATE TEMPORARY TABLE CREATE TABLE .. SELECT 带RAID选项的MyIASM表将文件分割成很多文件以突破某些文件系统的2G限制。 Delay_keys 复制功能
二十二、MySQL何时使用索引
当使用不以通配符开始的LIKE
在进行联结时从另一个表中提取行时
找出指定索引的MAX()或MIN()值
一个键码的前缀使用ORDER BY或GROUP BY
在所有用在查询中的列是键码的一部分时间
二十三、MySQL何时不使用索引
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |