Я использую MySQL в проекте ASP.NET, над которым я сейчас работаю, я провел несколько тестов для проверки производительности поставщика MySQL .NET, но, к сожалению, я не очень доволен результатами.
Очень простой цикл, который только открывает соединение, был в 10 раз быстрее в SQL Server:
// MySQL
const string CONNECTION_STRING =
"server=localhost;database=testdb;user id=root;password=mypassword;max pool size=250;";
for (int i = 0; i < 5000; i++)
{
using (MySqlConnection con = new MySqlConnection(CONNECTION_STRING))
{
con.Open();
}
}
// SQL Server
const string CONNECTION_STRING = "Data Source=localhost;Initial Catalog=testdb;Integrated Security=True;max pool size=250;";
for (int i = 0; i < 5000; i++)
{
using (SqlConnection con = new SqlConnection(CONNECTION_STRING))
{
con.Open();
}
}
SQL Server намного быстрее во всем остальном (выбор, обновление, вставка и т. Д.). Я делаю что-то не так? Есть ли какие-либо переменные сервера, которые я должен изменить?
Подробнее:
- Я запускаю MySQL в Windows (5.0.51a-community-nt)
- SQL Server 2005 использовался в тесте
- Технические характеристики: Windows XP SP2, двухъядерный процессор Intel 1,6 ГГц, 1024 МБ ОЗУ
Это конфигурация MySQL:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
Спасибо за любые предложения ...