П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180636 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79085 раз(а).

Учебник HTML.
Просмотров 75822 раз(а).

Руководство по PHP5.
Просмотров 46876 раз(а).

Хостинг через призму DNS.
Просмотров 54326 раз(а).

Подборка текстов стандартных документов.
Просмотров 46689 раз(а).

Учебник PHP - Самоучитель
Просмотров 52902 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53512 раз(а).

Внешние атаки...
Просмотров 43258 раз(а).

Учебник PHP.
Просмотров 38784 раз(а).

SSI в примерах.
Просмотров 28692 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 8. Интерфейсы для MySQL
Пред.     След.

8.4. Интерфейс C для MySQL

8.4.1. Типы данных C API
8.4.2. Обзор функций интерфейса C
8.4.3. Описание функций интерфейса C
8.4.3.1. mysql_affected_rows()
8.4.3.2. mysql_change_user()
8.4.3.3. mysql_character_set_name()
8.4.3.4. mysql_close()
8.4.3.5. mysql_connect()
8.4.3.6. mysql_create_db()
8.4.3.7. mysql_data_seek()
8.4.3.8. mysql_debug()
8.4.3.9. mysql_drop_db()
8.4.3.10. mysql_dump_debug_info()
8.4.3.11. mysql_eof()
8.4.3.12. mysql_errno()
8.4.3.13. mysql_error()
8.4.3.14. mysql_escape_string()
8.4.3.15. mysql_fetch_field()
8.4.3.16. mysql_fetch_field_direct()
8.4.3.17. mysql_fetch_fields()
8.4.3.18. mysql_fetch_lengths()
8.4.3.19. mysql_fetch_row()
8.4.3.20. mysql_field_count()
8.4.3.21. mysql_field_seek()
8.4.3.22. mysql_field_tell()
8.4.3.23. mysql_free_result()
8.4.3.24. mysql_get_client_info()
8.4.3.25. mysql_get_server_version()
8.4.3.26. mysql_get_host_info()
8.4.3.27. mysql_get_proto_info()
8.4.3.28. mysql_get_server_info()
8.4.3.29. mysql_info()
8.4.3.30. mysql_init()
8.4.3.31. mysql_insert_id()
8.4.3.32. mysql_kill()
8.4.3.33. mysql_list_dbs()
8.4.3.34. mysql_list_fields()
8.4.3.35. mysql_list_processes()
8.4.3.36. mysql_list_tables()
8.4.3.37. mysql_num_fields()
8.4.3.38. mysql_num_rows()
8.4.3.39. mysql_options()
8.4.3.40. mysql_ping()
8.4.3.41. mysql_query()
8.4.3.42. mysql_real_connect()
8.4.3.43. mysql_real_escape_string()
8.4.3.44. mysql_real_query()
8.4.3.45. mysql_reload()
8.4.3.46. mysql_row_seek()
8.4.3.47. mysql_row_tell()
8.4.3.48. mysql_select_db()
8.4.3.49. mysql_shutdown()
8.4.3.50. mysql_stat()
8.4.3.51. mysql_store_result()
8.4.3.52. mysql_thread_id()
8.4.3.53. mysql_use_result()

8.4.4. Описания функций C, связанных с потоками
8.4.4.1. my_init()
8.4.4.2. mysql_thread_init()
8.4.4.3. mysql_thread_end()
8.4.4.4. mysql_thread_safe()

8.4.5. Описания функций C, доступных во встраиваемом сервере
8.4.5.1. mysql_server_init()
8.4.5.2. mysql_server_end()

8.4.6. Основные вопросы и проблемы в использовании интерфейса C
8.4.6.1. Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?
8.4.6.2. Какие результаты можно получить из запроса?
8.4.6.3. Как получить уникальный идентификатор для последней внесенной строки?
8.4.6.4. Проблемы линкования с интерфейсом C

8.4.7. Сборка клиентских программ
8.4.8. Как создать клиентскую программу с потоками
8.4.9. libmysqld, встраиваемая библиотека сервера MySQL
8.4.9.1. Обзор библиотеки встраиваемого сервера MySQL
8.4.9.2. Компиляция программ с libmysqld
8.4.9.3. Ограничения при использовании встраиваемого сервера MySQL
8.4.9.4. Использование файлов опций с встраиваемым сервером
8.4.9.5. Что осталось сделать по встраиваемомуому серверу (TODO)
8.4.9.6. Пример простого встраиваемого сервера
8.4.9.7. Лицензирование встраиваемого сервера

Исходный код программного интерфейса (API) C распространяется вместе с MySQL. Он включает в себя библиотеку mysqlclient и обеспечивает возможность доступа к базе данных программам на С.

Многие клиенты исходного дистрибутива MySQL написаны на C. Они являются хорошими примерами для демонстрации использования интерфейса C. Их можно найти их в каталоге clients исходного дистрибутива MySQL.

Большинство других клиентских интерфейсов (за исключением Java) для соединения с сервером MySQL используют библиотеку mysqlclient. Это означает, что, например, можно извлечь определенную выгоду, используя те же переменные окружения, что и в других клиентских программах, поскольку на них есть ссылки из библиотеки (see Раздел 4.8, «Клиентские сценарии и утилиты MySQL», где приведен список этих переменных).

Клиент имеет максимальный размер буфера связи. Начальный размер этого буфера составляет 16 Kб и автоматически увеличивается до максимального значения 16 Mб. Поскольку размеры буфера увеличиваются только при подтверждении запроса на это, то просто увеличение максимального предела по умолчанию само по себе не обеспечит увеличения используемых ресурсов. Проверка этого размера в основном используется для ошибочных запросов и коммуникационных пакетов.

Буфер связи должен быть достаточно большим, чтобы вмещать целую SQL-команду (для потока клиент-сервер) и целую строку возвращенных данных (для потока сервер-клиент). Буфер связи для каждого из потоков динамически увеличивается до максимального значения, чтобы обработать любой запрос или строку. Например, для данных типа BLOB объемом до 16 Mб необходим предел буфера связи по меньшей мере в 16 Mб (как для сервера, так и для клиента). Максимальное значение по умолчанию для клиента составляет 16 Mб, а для сервера максимум по умолчанию равен 1Mб. Можно увеличить этот объем, изменив величину параметра max_allowed_packet при запуске сервера (see Раздел 5.5.2, «Настройка параметров сервера»).

Сервер MySQL сжимает каждый буфер связи до величины net_buffer_length байтов после каждого запроса. Для клиентов размер буфера, связанного с соединением, не уменьшается, пока не будет закрыто данное соединение и при этом не будет освобождена выделенная клиенту память.

Программирование с учетом потоков описано в разделе See Раздел 8.4.8, «Как создать клиентскую программу с потоками». При создании автономного приложения, включающего и "сервер", и "клиент" в одной и той же программе (и не взаимодействующего с внешним сервером MySQL), обращайтесь к разделу See Раздел 8.4.9, «libmysqld, встраиваемая библиотека сервера MySQL».


Назад Начало Главы Вперед

Пред. Глава След. Глава
Глава 7. Типы таблиц MySQL Начало Книги Глава 9. Расширение MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru