Rumah pangkalan data tutorial mysql 有关mysql优化的一些东东整理

有关mysql优化的一些东东整理

Jun 07, 2016 pm 05:55 PM
pengoptimuman mysql

有关mysql优化的一些东东,自己整理的,网上搜集的,供朋友们学习参考吧

1.查询帮助 ? contents
2.使用合成的散列值,分离BLOB或者TEXT
3.货币使用定点数(decimal或者numberic)
4.sql_mode?
5.order by rand() limit 1000;
6.优化show status like 'Com' Com_select Com_insert等查看插入多还是查询多
7.Handler_read_key 的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用.Handler_read_rnd_next 的值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明表索引不正确或写入的查询没有利用索引.
8.定期分析表 ANALYZE TABLE CHECK TABLE CHECKSUM TABLE
9.优化表 OPTIMIZE TABLE
10.导入大数据:Myisam ALTER TABLE tblname DISABLE KEYS loading the data ALTER TABLE tblname ENABLE KEYS;
Innodb SET UNIQUE_CHECKS=0 SET AUTOCOMMIT=0
11.优化insert:LOAD DATA INFILE replace ignore
12.优化group by ORDER BY NULL
13.show status like 'Table%'; show status like 'innodb_row_lock%';
14.CREATE TABLE innodb_monitor(a INT) ENGINE=INNODB;
15.影响Mysql 性能的重要参数:
key_buffer_size : 说明:键缓存(变量key_buffer_size) 被所有线程共享;服务器使用的其它缓存则根据需要分配。此参数只适用于myisam 存储引擎。
table_cache:数据库中打开表的缓存数量。table_cache 与max_connections 有关。例如,对于200 个并行运行的连接,应该让表的缓至少有200 * N,这里N 是可以执行的查询的一个联接中表的最大数量。还需要为临时表和文件保留一些额外的文件描述符。
innodb_buffer_pool_size:缓存InnoDB 数据和索引的内存缓冲区的大小。你把这个值设得越高,访问表中数据需要得磁盘I/O 越少。

innodb_flush_log_at_trx_commit:0|1|2
innodb_additional_mem_pool_size:1M
innodb_table_locks:0|1
innodb_lock_wait_timeout:
innodb_support_xa:通过该参数设置是否支持分布式事务,默认值是ON 或者1,表示支持分布式事务。如果确认应用中不需要使用分布式事务,则可以关闭这个参数,减少磁盘刷新的次数并获得更好的InnoDB 性能。
innodb_doublewrite:
innodb_log_buffer_size:
innodb_log_file_size:

1.数据库的设计
尽量把数据库设计的更小的占磁盘空间.
1).尽可能使用更小的整数类型.(mediumint就比int更合适).
2).尽可能的定义字段为not null,除非这个字段需要null.(这个规则只适合字段为KEY的情形)
3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char.(CHAR 总是比VARCHR快)
4).表的主索引应该尽可能的短.这样的话每条纪录都有名字标志且更高效.
5).只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.如果总是需要用到很多字段,首先就应该多复制这些字段,使索引更好的压缩。
(这条只适合MYISAM引擎的表,对于INNODB则在保存记录的时候关系不大,因为INNODB是以事务为基础的,如果想快速保存记录的话,特别是大批量的导入记录的时候)
6).所有数据都得在保存到数据库前进行处理。
7).所有字段都得有默认值。
8).在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况下更是如此。
(具体的表现为:MYISAM表的MERGE类型,以及MYISAM和INNODB通用的分区,详情见手册)
9).不会用到外键约束的地方尽量不要使用外键。

2.系统的用途
1).及时的关闭对MYSQL的连接。
2).explain 复杂的SQL语句。(这样能确定你的SELECT 语句怎么优化最佳)
3).如果两个关联表要做比较话,做比较的字段必须类型和长度都一致.(在数据庞大的时候建立INDEX)
4).LIMIT语句尽量要跟order by或者 distinct.这样可以避免做一次full table scan.
5).如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename.
不过有一个问题,truncate 不会在事务处理中回滚。因为她要调用create table 语句。
(Truncate Table 语句先删除表然后再重建,这个是属于文件级别的,所以自然快N多)
实测例子:
song2为INNODB表。
代码如下:
mysql> select count(1) from song2;
+----------+
| count(1) |
+----------+
| 500000 |
+----------+
1 row in set (0.91 sec)
mysql> delete from song2;
Query OK, 500000 rows affected (15.70 sec)
mysql> truncate table song2;
Query OK, 502238 rows affected (0.17 sec)

6).能使用STORE PROCEDURE 或者 USER FUNCTION的时候.(ROUTINE总是减少了服务器端的开销)
7).在一条insert语句中采用多重纪录插入格式.而且使用load data infile来导入大量数据,这比单纯的indert快好多.(在MYSQL中具体表现为:INSERT INTO TABLEQ VALUES (),(),...();)
(还有就是在MYISAM表中插入大量记录的时候先禁用到KEYS后面再建立KEYS,具体表现语句:
ALTER TABLE TABLE1 DISABLE KEYS;ALTER TABLE TABLE1 ENABLE KEYS;
而对于INNNODB 表在插入前先 set autocommit=0;完了后:set autocommit=1;这样效率比较高。)
8).经常OPTIMIZE TABLE 来整理碎片.
9).还有就是date 类型的数据如果频繁要做比较的话尽量保存在unsigned int 类型比较快。

3.系统的瓶颈
1).磁盘搜索.
并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间。
2).磁盘读写(IO)
可以从多个媒介中并行的读取数据。
3).CPU周期
数据存放在主内存中.这样就得增加CPU的个数来处理这些数据。
4).内存带宽
当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成了瓶颈。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara mengoptimumkan fungsi AVG melalui MySQL untuk meningkatkan prestasi Cara mengoptimumkan fungsi AVG melalui MySQL untuk meningkatkan prestasi May 11, 2023 am 08:00 AM

Cara meningkatkan prestasi dengan mengoptimumkan fungsi AVG dalam MySQL MySQL ialah sistem pengurusan pangkalan data hubungan popular yang mengandungi banyak fungsi dan fungsi yang berkuasa. Fungsi AVG digunakan secara meluas dalam mengira purata, tetapi kerana fungsi ini perlu merentasi keseluruhan set data, ia akan menyebabkan masalah prestasi dalam kes data berskala besar. Artikel ini akan memperkenalkan secara terperinci cara mengoptimumkan fungsi AVG melalui MySQL untuk meningkatkan prestasi. 1. Menggunakan indeks Indeks adalah bahagian terpenting dalam pengoptimuman MySQL.

Analisis pengoptimuman MySQL dan pengalaman projek keselamatan dalam aplikasi e-dagang Analisis pengoptimuman MySQL dan pengalaman projek keselamatan dalam aplikasi e-dagang Nov 03, 2023 am 10:42 AM

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas dalam bidang e-dagang. Dalam aplikasi e-dagang, adalah penting untuk mengoptimumkan dan menjamin MySQL. Artikel ini akan menganalisis pengalaman projek pengoptimuman dan keselamatan MySQL dalam aplikasi e-dagang. 1. Reka bentuk seni bina pangkalan data pengoptimuman prestasi: Dalam aplikasi e-dagang, reka bentuk pangkalan data adalah kuncinya. Reka bentuk struktur jadual dan reka bentuk indeks yang munasabah boleh meningkatkan prestasi pertanyaan pangkalan data. Pada masa yang sama, menggunakan teknologi pemisahan dan pembahagian jadual boleh mengurangkan jumlah data dalam satu jadual dan meningkatkan kecekapan pertanyaan.

Pengoptimuman MySQL berdasarkan enjin TokuDB: meningkatkan prestasi penulisan dan pemampatan Pengoptimuman MySQL berdasarkan enjin TokuDB: meningkatkan prestasi penulisan dan pemampatan Jul 25, 2023 pm 11:45 PM

Pengoptimuman MySQL berdasarkan enjin TokuDB: meningkatkan prestasi penulisan dan pemampatan Pengenalan: Sebagai sistem pengurusan pangkalan data hubungan yang biasa digunakan, MySQL menghadapi peningkatan tekanan penulisan dan keperluan penyimpanan dalam konteks era data besar. Untuk menghadapi cabaran ini, enjin TokuDB wujud. Artikel ini akan memperkenalkan cara menggunakan enjin TokuDB untuk meningkatkan prestasi penulisan dan prestasi mampatan MySQL. 1. Apakah enjin TokuDB? Enjin TokuDB ialah enjin berorientasikan data besar yang direka untuk mengendalikan penulisan tinggi

Bagaimana untuk mencapai pengoptimuman peringkat rendah MySQL: petua dan amalan terbaik untuk pengoptimuman lanjutan bagi pernyataan SQL Bagaimana untuk mencapai pengoptimuman peringkat rendah MySQL: petua dan amalan terbaik untuk pengoptimuman lanjutan bagi pernyataan SQL Nov 08, 2023 pm 04:32 PM

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang biasa digunakan untuk pembangunan aplikasi web dan penyimpanan data. Dalam aplikasi praktikal, pengoptimuman asas MySQL adalah amat penting, antaranya pengoptimuman lanjutan pernyataan SQL adalah kunci untuk meningkatkan prestasi pangkalan data. Artikel ini akan memperkenalkan beberapa petua dan amalan terbaik untuk melaksanakan pengoptimuman asas MySQL, serta contoh kod khusus. Tentukan syarat pertanyaan Apabila menulis pernyataan SQL, anda mesti terlebih dahulu mentakrifkan syarat pertanyaan dan elakkan menggunakan pertanyaan kad bebas tanpa had, iaitu, elakkan menggunakan "%" untuk membuka pertanyaan.

Bagaimana untuk mengoptimumkan pengurusan nombor sambungan MySQL Bagaimana untuk mengoptimumkan pengurusan nombor sambungan MySQL Mar 16, 2024 am 08:12 AM

Bagaimana untuk mengoptimumkan pengurusan nombor sambungan MySQL MySQL ialah sistem pengurusan pangkalan data hubungan popular yang digunakan secara meluas dalam pelbagai laman web dan aplikasi. Dalam proses permohonan sebenar, pengurusan nombor sambungan MySQL adalah isu yang sangat penting, terutamanya dalam situasi konkurensi yang tinggi Pengurusan bilangan sambungan yang munasabah boleh meningkatkan prestasi dan kestabilan sistem. Artikel ini akan memperkenalkan cara mengoptimumkan pengurusan nombor sambungan MySQL, termasuk contoh kod terperinci. 1. Fahami pengurusan nombor sambungan Dalam MySQL, bilangan sambungan merujuk kepada bilangan sambungan yang boleh disambungkan oleh sistem pada masa yang sama.

Cara melaksanakan pengoptimuman asas MySQL: teknik dan prinsip biasa untuk pengoptimuman pernyataan SQL Cara melaksanakan pengoptimuman asas MySQL: teknik dan prinsip biasa untuk pengoptimuman pernyataan SQL Nov 08, 2023 pm 08:19 PM

Pangkalan data MySQL ialah pangkalan data hubungan biasa Apabila jumlah data dalam pangkalan data meningkat dan keperluan pertanyaan berubah, pengoptimuman asas menjadi sangat penting. Dalam proses pengoptimuman asas MySQL, pengoptimuman pernyataan SQL adalah tugas yang penting. Artikel ini akan membincangkan teknik dan prinsip biasa untuk pengoptimuman pernyataan SQL dan memberikan contoh kod khusus. Pertama sekali, pengoptimuman pernyataan SQL perlu mempertimbangkan aspek berikut: pengoptimuman indeks, pengoptimuman pernyataan pertanyaan, prosedur tersimpan dan pengoptimuman pencetus, dsb. Dalam aspek ini, kita akan ada

Cara mengkonfigurasi dan mengoptimumkan teknologi penimbalan dua tulis MySQL dengan betul Cara mengkonfigurasi dan mengoptimumkan teknologi penimbalan dua tulis MySQL dengan betul Jul 25, 2023 pm 01:01 PM

Cara mengkonfigurasi dan mengoptimumkan teknologi penimbalan dua tulis MySQL dengan betul Pengenalan: Teknologi penimbalan dua tulis MySQL ialah teknologi penting yang meningkatkan keselamatan dan prestasi data. Artikel ini akan memperkenalkan cara mengkonfigurasi dan mengoptimumkan teknologi penimbalan dua tulis MySQL dengan betul untuk melindungi data dan meningkatkan prestasi pangkalan data dengan lebih baik. 1. Apakah teknologi penimbalan tulis dua kali? Teknologi penimbalan tulis dua kali ialah teknologi pengoptimuman I/O MySQL. Apabila MySQL melakukan operasi tulis, pertama

Koleksi lengkap penyelesaian kepada masalah MySQL biasa Koleksi lengkap penyelesaian kepada masalah MySQL biasa Jun 15, 2023 am 09:51 AM

MySQL ialah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas untuk menyimpan dan mengurus sejumlah besar data. Walau bagaimanapun, apabila menggunakan MySQL, anda mungkin menghadapi pelbagai masalah, daripada ralat sintaks mudah kepada isu prestasi dan gangguan yang lebih kompleks. Dalam artikel ini, kami akan meneroka beberapa masalah dan penyelesaian MySQL yang paling biasa. Masalah Sambungan Masalah sambungan adalah perkara biasa. Jika anda tidak dapat menyambung ke pelayan MySQL, sila semak perkara berikut: 1) Sama ada pelayan MySQL sedang berjalan 2) Sama ada sambungan rangkaian adalah normal 3) MySQ

See all articles